Browse Source

avcodec/videotoolbox: pass through hevc param changes to the decoder

This includes the SEI_PREFIX/SEI_SUFFIX NALUs, which can contain
updates like HEVC_SEI_TYPE_ACTIVE_PARAMETER_SETS. Previously, hevc
samples with this SEI present would not playback correctly.

See for example https://github.com/lhc70000/iina/issues/1123

Signed-off-by: Aman Gupta <aman@tmm1.net>
tags/n4.0
Aman Gupta 7 years ago
parent
commit
68ef503bb5
1 changed files with 9 additions and 0 deletions
  1. +9
    -0
      libavcodec/videotoolbox.c

+ 9
- 0
libavcodec/videotoolbox.c View File

@@ -654,6 +654,14 @@ static int videotoolbox_h264_end_frame(AVCodecContext *avctx)
return ret;
}

static int videotoolbox_hevc_decode_params(AVCodecContext *avctx,
int type,
const uint8_t *buffer,
uint32_t size)
{
return ff_videotoolbox_h264_decode_slice(avctx, buffer, size);
}

static int videotoolbox_hevc_end_frame(AVCodecContext *avctx)
{
HEVCContext *h = avctx->priv_data;
@@ -1040,6 +1048,7 @@ AVHWAccel ff_hevc_videotoolbox_hwaccel = {
.alloc_frame = ff_videotoolbox_alloc_frame,
.start_frame = ff_videotoolbox_h264_start_frame,
.decode_slice = ff_videotoolbox_h264_decode_slice,
.decode_params = videotoolbox_hevc_decode_params,
.end_frame = videotoolbox_hevc_end_frame,
.frame_params = videotoolbox_frame_params,
.init = videotoolbox_common_init,


Loading…
Cancel
Save