mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-23 19:30:05 +00:00
Merge commit 'c3f0357bdf7d3c542aad2c58b94184b9f56edc41'
* commit 'c3f0357bdf7d3c542aad2c58b94184b9f56edc41': hevcdec: move the MD5 context out of HEVCSEIPictureHash back into HEVCContext Merged-by: James Almer <jamrial@gmail.com>
This commit is contained in:
commit
b1ab02895b
@ -23,8 +23,6 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "libavutil/md5.h"
|
||||
|
||||
#include "get_bits.h"
|
||||
|
||||
/**
|
||||
@ -60,7 +58,6 @@ typedef enum {
|
||||
} HEVC_SEI_Type;
|
||||
|
||||
typedef struct HEVCSEIPictureHash {
|
||||
struct AVMD5 *md5_ctx;
|
||||
uint8_t md5[3][16];
|
||||
uint8_t is_md5;
|
||||
} HEVCSEIPictureHash;
|
||||
|
@ -3035,7 +3035,7 @@ static int verify_md5(HEVCContext *s, AVFrame *frame)
|
||||
int h = (i == 1 || i == 2) ? (height >> desc->log2_chroma_h) : height;
|
||||
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++) {
|
||||
const uint8_t *src = frame->data[i] + j * frame->linesize[i];
|
||||
#if HAVE_BIGENDIAN
|
||||
@ -3045,9 +3045,9 @@ static int verify_md5(HEVCContext *s, AVFrame *frame)
|
||||
src = s->checksum_buf;
|
||||
}
|
||||
#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)) {
|
||||
av_log (s->avctx, AV_LOG_DEBUG, "plane %d - correct ", i);
|
||||
@ -3200,7 +3200,7 @@ static av_cold int hevc_decode_free(AVCodecContext *avctx)
|
||||
|
||||
pic_arrays_free(s);
|
||||
|
||||
av_freep(&s->sei.picture_hash.md5_ctx);
|
||||
av_freep(&s->md5_ctx);
|
||||
|
||||
av_freep(&s->cabac_state);
|
||||
|
||||
@ -3275,8 +3275,8 @@ static av_cold int hevc_init_context(AVCodecContext *avctx)
|
||||
|
||||
s->max_ra = INT_MAX;
|
||||
|
||||
s->sei.picture_hash.md5_ctx = av_md5_alloc();
|
||||
if (!s->sei.picture_hash.md5_ctx)
|
||||
s->md5_ctx = av_md5_alloc();
|
||||
if (!s->md5_ctx)
|
||||
goto fail;
|
||||
|
||||
ff_bswapdsp_init(&s->bdsp);
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <stdatomic.h>
|
||||
|
||||
#include "libavutil/buffer.h"
|
||||
#include "libavutil/md5.h"
|
||||
|
||||
#include "avcodec.h"
|
||||
#include "bswapdsp.h"
|
||||
@ -406,6 +407,7 @@ typedef struct HEVCContext {
|
||||
|
||||
HEVCParamSets ps;
|
||||
HEVCSEI sei;
|
||||
struct AVMD5 *md5_ctx;
|
||||
|
||||
AVBufferPool *tab_mvf_pool;
|
||||
AVBufferPool *rpl_tab_pool;
|
||||
|
Loading…
Reference in New Issue
Block a user