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

Reply via email to