Browse Source

avcodec/hevc_ps: add a function to uninitialize parameter set buffers

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
tags/n4.0
James Almer 8 years ago
parent
commit
9462b2b820
2 changed files with 18 additions and 0 deletions
  1. +16
    -0
      libavcodec/hevc_ps.c
  2. +2
    -0
      libavcodec/hevc_ps.h

+ 16
- 0
libavcodec/hevc_ps.c View File

@@ -1704,6 +1704,22 @@ err:
return ret;
}

void ff_hevc_ps_uninit(HEVCParamSets *ps)
{
int i;

for (i = 0; i < FF_ARRAY_ELEMS(ps->vps_list); i++)
av_buffer_unref(&ps->vps_list[i]);
for (i = 0; i < FF_ARRAY_ELEMS(ps->sps_list); i++)
av_buffer_unref(&ps->sps_list[i]);
for (i = 0; i < FF_ARRAY_ELEMS(ps->pps_list); i++)
av_buffer_unref(&ps->pps_list[i]);

ps->sps = NULL;
ps->pps = NULL;
ps->vps = NULL;
}

int ff_hevc_compute_poc(const HEVCSPS *sps, int pocTid0, int poc_lsb, int nal_unit_type)
{
int max_poc_lsb = 1 << sps->log2_max_poc_lsb;


+ 2
- 0
libavcodec/hevc_ps.h View File

@@ -421,6 +421,8 @@ int ff_hevc_decode_nal_sps(GetBitContext *gb, AVCodecContext *avctx,
int ff_hevc_decode_nal_pps(GetBitContext *gb, AVCodecContext *avctx,
HEVCParamSets *ps);

void ff_hevc_ps_uninit(HEVCParamSets *ps);

int ff_hevc_decode_short_term_rps(GetBitContext *gb, AVCodecContext *avctx,
ShortTermRPS *rps, const HEVCSPS *sps, int is_slice_header);



Loading…
Cancel
Save