1
0
Fork 0

Revert "avcodec/hevc_ps: allocate only the required HEVCHdrParams within a VPS"

This reverts commit 456c8ebe7c.

Currently broken and causing playback glitches
This commit is contained in:
Hendrik Leppkes 2024-03-28 10:44:57 +01:00
parent b58e7afc93
commit 6914129057
Signed by: hendrik
GPG Key ID: 846079A4B0A7C1B5
2 changed files with 2 additions and 14 deletions

View File

@ -442,20 +442,13 @@ static int decode_hrd(GetBitContext *gb, int common_inf_present,
return 0;
}
static void uninit_vps(FFRefStructOpaque opaque, void *obj)
{
HEVCVPS *vps = obj;
av_freep(&vps->hdr);
}
int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx,
HEVCParamSets *ps)
{
int i,j;
int vps_id = 0;
ptrdiff_t nal_size;
HEVCVPS *vps = ff_refstruct_alloc_ext(sizeof(*vps), 0, NULL, uninit_vps);
HEVCVPS *vps = ff_refstruct_allocz(sizeof(*vps));
if (!vps)
return AVERROR(ENOMEM);
@ -544,11 +537,6 @@ int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx,
"vps_num_hrd_parameters %d is invalid\n", vps->vps_num_hrd_parameters);
goto err;
}
vps->hdr = av_calloc(vps->vps_num_hrd_parameters, sizeof(*vps->hdr));
if (!vps->hdr)
goto err;
for (i = 0; i < vps->vps_num_hrd_parameters; i++) {
int common_inf_present = 1;

View File

@ -153,7 +153,7 @@ typedef struct PTL {
typedef struct HEVCVPS {
unsigned int vps_id;
HEVCHdrParams *hdr;
HEVCHdrParams hdr[HEVC_MAX_LAYER_SETS];
uint8_t vps_temporal_id_nesting_flag;
int vps_max_layers;