#6668 closed defect (fixed)
MPEG2 decoding failed with FFMPEG-VAAPI
Reported by: | Zhong,Li | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avcodec |
Version: | git-master | Keywords: | vaapi nvdec |
Cc: | jun.zhao@intel.com | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
The decoded frames of some mpeg2 files are wrong when decoding with vaapi hwaccel. Seems it only happens when decoding interlaced files, and ffmpeg software decoder (without vaapi hwaccel) is also ok except with a dummy frame as the first frame.
How to reproduce:
./ffmpeg -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -i /root/Videos/yami_mpeg2/tcela-8-fp-dp.bits.mpeg2 -pix_fmt yuv420p tcela-8-fp-dp.bits.mpeg3_720x480.yuv
ffmpeg version N-86991-g62697878a9 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.3.0 (Ubuntu 6.3.0-12ubuntu2) 20170406
configuration: --prefix=/opt/X11R7/ --enable-vaapi --enable-libx264 --enable-libx265 --enable-gpl --disable-optimizations --enable-debug=3
libavutil 55. 74.100 / 55. 74.100
libavcodec 57.102.100 / 57.102.100
libavformat 57. 76.100 / 57. 76.100
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 99.100 / 6. 99.100
libswscale 4. 7.102 / 4. 7.102
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
libva info: Open new log file ./libav.064907.thd-0x00007cb2 for the thread 0x00007cb2
libva info: LIBVA_TRACE is on, save log into ./libav.064907.thd-0x00007cb2
libva info: LIBVA_TRACE_BUFDATA is on, dump buffer into log file
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so
libva info: Found init function vaDriverInit_0_40
libva info: va_openDriver() returns 0
[mpegvideo @ 0x56148afa5140] Estimating duration from bitrate, this may be inaccurate
Input #0, mpegvideo, from '/root/Videos/yami_mpeg2/tcela-8-fp-dp.bits.mpeg2':
Duration: 00:00:00.15, bitrate: 15000 kb/s
Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, bottom first), 720x480 [SAR 8:9 DAR 4:3], 15000 kb/s, 30 fps, 30 tbr, 1200k tbn, 60 tbc
File 'tcela-8-fp-dp.bits.mpeg3_720x480.yuv' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video (native) -> rawvideo (native))
Press [q] to stop, ? for help
libva info: Save context 0x02000000 into log file ./libav.064907.thd-0x00007cb2
Output #0, rawvideo, to 'tcela-8-fp-dp.bits.mpeg3_720x480.yuv':
Metadata:
encoder : Lavf57.76.100
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=2-31, 124416 kb/s, 30 fps, 30 tbn, 30 tbc
Metadata:
encoder : Lavc57.102.100 rawvideo
frame= 5 fps=0.0 q=-0.0 Lsize= 2531kB time=00:00:00.16 bitrate=124415.8kbits/s speed=4.77x
video:2531kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
For HW and driver information, please refer vainfo:
vainfo
libva info: Open new log file ./libav.065514.thd-0x00007cd9 for the thread 0x00007cd9
libva info: LIBVA_TRACE is on, save log into ./libav.065514.thd-0x00007cd9
libva info: LIBVA_TRACE_BUFDATA is on, dump buffer into log file
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /opt/X11R7/lib/dri/i965_drv_video.so
libva info: Found init function vaDriverInit_0_40
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva 1.8.4.pre1)
vainfo: Driver version: Intel i965 driver for Intel(R) Kabylake - 1.8.4.pre1 (1.8.3-119-g3ad9717)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSlice
VAProfileVP9Profile2 : VAEntrypointVLD
Attachments (2)
Change History (5)
by , 7 years ago
Attachment: | tcela-8-fp-dp.bits.mpeg2 added |
---|
by , 7 years ago
Attachment: | sony-ct1.bits.mpeg2 added |
---|
comment:1 by , 7 years ago
comment:2 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Commit d4996a600ca0334235a4b66beae5b5c3474535c4 and 12c4d00c10cb73f1976c8de5b23b1405803bd454 fix this issue.
The patch was posted way back in 2017,
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20170921032609.26242-1-zhong.li@intel.com/
I guess as discussed in #ffmpeg-devel nobody cared enough about mpeg2-hw decoding.
comment:3 by , 4 years ago
Keywords: | vaapi nvdec added; vaapi_mpeg.c mpeg2 removed |
---|
Patch (https://patchwork.ffmpeg.org/patch/5209/) has been sent to fix this issue.