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 |
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 |
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 --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;