On 10/09/2017 01:09, Mark Thompson wrote:
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;
}
Ok.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel