Commit b1ab0289 authored by James Almer's avatar James Almer

Merge commit 'c3f0357b'

* commit 'c3f0357b':
  hevcdec: move the MD5 context out of HEVCSEIPictureHash back into HEVCContext
Merged-by: 's avatarJames Almer <jamrial@gmail.com>
parents 9e2b0f32 c3f0357b
...@@ -23,8 +23,6 @@ ...@@ -23,8 +23,6 @@
#include <stdint.h> #include <stdint.h>
#include "libavutil/md5.h"
#include "get_bits.h" #include "get_bits.h"
/** /**
...@@ -60,7 +58,6 @@ typedef enum { ...@@ -60,7 +58,6 @@ typedef enum {
} HEVC_SEI_Type; } HEVC_SEI_Type;
typedef struct HEVCSEIPictureHash { typedef struct HEVCSEIPictureHash {
struct AVMD5 *md5_ctx;
uint8_t md5[3][16]; uint8_t md5[3][16];
uint8_t is_md5; uint8_t is_md5;
} HEVCSEIPictureHash; } HEVCSEIPictureHash;
......
...@@ -3035,7 +3035,7 @@ static int verify_md5(HEVCContext *s, AVFrame *frame) ...@@ -3035,7 +3035,7 @@ static int verify_md5(HEVCContext *s, AVFrame *frame)
int h = (i == 1 || i == 2) ? (height >> desc->log2_chroma_h) : height; int h = (i == 1 || i == 2) ? (height >> desc->log2_chroma_h) : height;
uint8_t md5[16]; uint8_t md5[16];
av_md5_init(s->sei.picture_hash.md5_ctx); av_md5_init(s->md5_ctx);
for (j = 0; j < h; j++) { for (j = 0; j < h; j++) {
const uint8_t *src = frame->data[i] + j * frame->linesize[i]; const uint8_t *src = frame->data[i] + j * frame->linesize[i];
#if HAVE_BIGENDIAN #if HAVE_BIGENDIAN
...@@ -3045,9 +3045,9 @@ static int verify_md5(HEVCContext *s, AVFrame *frame) ...@@ -3045,9 +3045,9 @@ static int verify_md5(HEVCContext *s, AVFrame *frame)
src = s->checksum_buf; src = s->checksum_buf;
} }
#endif #endif
av_md5_update(s->sei.picture_hash.md5_ctx, src, w << pixel_shift); av_md5_update(s->md5_ctx, src, w << pixel_shift);
} }
av_md5_final(s->sei.picture_hash.md5_ctx, md5); av_md5_final(s->md5_ctx, md5);
if (!memcmp(md5, s->sei.picture_hash.md5[i], 16)) { if (!memcmp(md5, s->sei.picture_hash.md5[i], 16)) {
av_log (s->avctx, AV_LOG_DEBUG, "plane %d - correct ", i); av_log (s->avctx, AV_LOG_DEBUG, "plane %d - correct ", i);
...@@ -3200,7 +3200,7 @@ static av_cold int hevc_decode_free(AVCodecContext *avctx) ...@@ -3200,7 +3200,7 @@ static av_cold int hevc_decode_free(AVCodecContext *avctx)
pic_arrays_free(s); pic_arrays_free(s);
av_freep(&s->sei.picture_hash.md5_ctx); av_freep(&s->md5_ctx);
av_freep(&s->cabac_state); av_freep(&s->cabac_state);
...@@ -3275,8 +3275,8 @@ static av_cold int hevc_init_context(AVCodecContext *avctx) ...@@ -3275,8 +3275,8 @@ static av_cold int hevc_init_context(AVCodecContext *avctx)
s->max_ra = INT_MAX; s->max_ra = INT_MAX;
s->sei.picture_hash.md5_ctx = av_md5_alloc(); s->md5_ctx = av_md5_alloc();
if (!s->sei.picture_hash.md5_ctx) if (!s->md5_ctx)
goto fail; goto fail;
ff_bswapdsp_init(&s->bdsp); ff_bswapdsp_init(&s->bdsp);
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <stdatomic.h> #include <stdatomic.h>
#include "libavutil/buffer.h" #include "libavutil/buffer.h"
#include "libavutil/md5.h"
#include "avcodec.h" #include "avcodec.h"
#include "bswapdsp.h" #include "bswapdsp.h"
...@@ -406,6 +407,7 @@ typedef struct HEVCContext { ...@@ -406,6 +407,7 @@ typedef struct HEVCContext {
HEVCParamSets ps; HEVCParamSets ps;
HEVCSEI sei; HEVCSEI sei;
struct AVMD5 *md5_ctx;
AVBufferPool *tab_mvf_pool; AVBufferPool *tab_mvf_pool;
AVBufferPool *rpl_tab_pool; AVBufferPool *rpl_tab_pool;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment