This should be ticks, not time_scale steps - it was wrong for all framerates not a multiple of 1/2. --- Apparently I only encode things with framerate a multiple of 1/2. The CBS writer catches this immediately for NTSC video - the values are out of range when multiplied by 1001.
libavcodec/vaapi_encode_h264.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index 271644ebb..1288249be 100644 --- a/libavcodec/vaapi_encode_h264.c +++ b/libavcodec/vaapi_encode_h264.c @@ -612,10 +612,8 @@ static int vaapi_encode_h264_init_picture_params(AVCodecContext *avctx, if (opt->sei & SEI_TIMING) { memset(&priv->pic_timing, 0, sizeof(priv->pic_timing)); - priv->pic_timing.cpb_removal_delay = - 2 * sps->vui.num_units_in_tick * priv->cpb_delay; - priv->pic_timing.dpb_output_delay = - 2 * sps->vui.num_units_in_tick * priv->dpb_delay; + priv->pic_timing.cpb_removal_delay = 2 * priv->cpb_delay; + priv->pic_timing.dpb_output_delay = 2 * priv->dpb_delay; priv->sei_needed = 1; } -- 2.11.0 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel