Signed-off-by: Will Kelleher <wkelleher@gogoair.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>tags/n3.1
| @@ -3155,6 +3155,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: | ||||
| @@ -1054,6 +1054,15 @@ void ff_hevc_hls_mvd_coding(HEVCContext *s, int x0, int y0, int log2_cb_size); | |||||
| 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]; | ||||
| @@ -211,6 +211,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); | |||||
| } | |||||