diff mbox series

[FFmpeg-devel,v1] lavc/qsvdec: Use FFmpeg default 1/25 framerate if can't derive it from bitstream

Message ID 20240418081509.560476-1-fei.w.wang@intel.com
State Accepted
Commit 67fc9b84272a88b5edace5ca25f493c21b02955d
Headers show
Series [FFmpeg-devel,v1] lavc/qsvdec: Use FFmpeg default 1/25 framerate if can't derive it from bitstream | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Wang, Fei W April 18, 2024, 8:15 a.m. UTC
From: Fei Wang <fei.w.wang@intel.com>

Fix error:
$ ffmpeg -hwaccel qsv -i input.h265 -f null -
...
[null @ 0x55da1a629200] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 3 >= 3

Signed-off-by: Fei Wang <fei.w.wang@intel.com>
---
 libavcodec/qsvdec.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Xiang, Haihao April 24, 2024, 5:07 a.m. UTC | #1
On Do, 2024-04-18 at 16:15 +0800, fei.w.wang-at-intel.com@ffmpeg.org wrote:
> From: Fei Wang <fei.w.wang@intel.com>
> 
> Fix error:
> $ ffmpeg -hwaccel qsv -i input.h265 -f null -
> ...
> [null @ 0x55da1a629200] Application provided invalid, non monotonically
> increasing dts to muxer in stream 0: 3 >= 3
> 
> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
> ---
>  libavcodec/qsvdec.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
> index fd9267c6f4..218ca59e08 100644
> --- a/libavcodec/qsvdec.c
> +++ b/libavcodec/qsvdec.c
> @@ -440,6 +440,11 @@ static int qsv_decode_header(AVCodecContext *avctx,
> QSVContext *q,
>      param->ExtParam    = q->ext_buffers;
>      param->NumExtParam = q->nb_ext_buffers;
>  
> +    if (param->mfx.FrameInfo.FrameRateExtN == 0 || param-
> >mfx.FrameInfo.FrameRateExtD == 0) {
> +        param->mfx.FrameInfo.FrameRateExtN = 25;
> +        param->mfx.FrameInfo.FrameRateExtD = 1;
> +    }
> +
>  #if QSV_VERSION_ATLEAST(1, 34)
>      if (QSV_RUNTIME_VERSION_ATLEAST(q->ver, 1, 34) && avctx->codec_id ==
> AV_CODEC_ID_AV1)
>          param->mfx.FilmGrain = (avctx->export_side_data &
> AV_CODEC_EXPORT_DATA_FILM_GRAIN) ? 0 : param->mfx.FilmGrain;

LGTM, will apply

Thanks
Haihao
diff mbox series

Patch

diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index fd9267c6f4..218ca59e08 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -440,6 +440,11 @@  static int qsv_decode_header(AVCodecContext *avctx, QSVContext *q,
     param->ExtParam    = q->ext_buffers;
     param->NumExtParam = q->nb_ext_buffers;
 
+    if (param->mfx.FrameInfo.FrameRateExtN == 0 || param->mfx.FrameInfo.FrameRateExtD == 0) {
+        param->mfx.FrameInfo.FrameRateExtN = 25;
+        param->mfx.FrameInfo.FrameRateExtD = 1;
+    }
+
 #if QSV_VERSION_ATLEAST(1, 34)
     if (QSV_RUNTIME_VERSION_ATLEAST(q->ver, 1, 34) && avctx->codec_id == AV_CODEC_ID_AV1)
         param->mfx.FilmGrain = (avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN) ? 0 : param->mfx.FilmGrain;