mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
hevc: Fix memory leak related to a53_caption data
Signed-off-by: Will Kelleher <wkelleher@gogoair.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit 964f07f68e1cc4e2d585615e2b1a1fade269afb0) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
069eea16d9
commit
7c43c48fda
@ -3149,6 +3149,8 @@ static av_cold int hevc_init_context(AVCodecContext *avctx)
|
|||||||
s->context_initialized = 1;
|
s->context_initialized = 1;
|
||||||
s->eos = 0;
|
s->eos = 0;
|
||||||
|
|
||||||
|
ff_hevc_reset_sei(s);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
@ -1092,6 +1092,15 @@ int ff_hevc_split_packet(HEVCContext *s, HEVCPacket *pkt, const uint8_t *buf, in
|
|||||||
int ff_hevc_encode_nal_vps(HEVCVPS *vps, unsigned int id,
|
int ff_hevc_encode_nal_vps(HEVCVPS *vps, unsigned int id,
|
||||||
uint8_t *buf, int buf_size);
|
uint8_t *buf, int buf_size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset SEI values that are stored on the Context.
|
||||||
|
* e.g. Caption data that was extracted during NAL
|
||||||
|
* parsing.
|
||||||
|
*
|
||||||
|
* @param s HEVCContext.
|
||||||
|
*/
|
||||||
|
void ff_hevc_reset_sei(HEVCContext *s);
|
||||||
|
|
||||||
extern const uint8_t ff_hevc_qpel_extra_before[4];
|
extern const uint8_t ff_hevc_qpel_extra_before[4];
|
||||||
extern const uint8_t ff_hevc_qpel_extra_after[4];
|
extern const uint8_t ff_hevc_qpel_extra_after[4];
|
||||||
extern const uint8_t ff_hevc_qpel_extra[4];
|
extern const uint8_t ff_hevc_qpel_extra[4];
|
||||||
|
@ -209,6 +209,8 @@ static inline int parse_nal_units(AVCodecParserContext *s, const uint8_t *buf,
|
|||||||
|
|
||||||
h->avctx = avctx;
|
h->avctx = avctx;
|
||||||
|
|
||||||
|
ff_hevc_reset_sei(h);
|
||||||
|
|
||||||
if (!buf_size)
|
if (!buf_size)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -373,3 +373,9 @@ int ff_hevc_decode_nal_sei(HEVCContext *s)
|
|||||||
} while (more_rbsp_data(&s->HEVClc->gb));
|
} while (more_rbsp_data(&s->HEVClc->gb));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ff_hevc_reset_sei(HEVCContext *s)
|
||||||
|
{
|
||||||
|
s->a53_caption_size = 0;
|
||||||
|
av_freep(&s->a53_caption);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user