[FFmpeg-trac] #4384(undetermined:new): H.264 dxva2 hardware decoding fails as of 22 Mar 2015
FFmpeg
trac at avcodec.org
Mon Mar 23 12:01:07 CET 2015
#4384: H.264 dxva2 hardware decoding fails as of 22 Mar 2015
-------------------------------------+-------------------------------------
Reporter: | Type: defect
JohnWarburton | Priority: normal
Status: new | Version: git-
Component: | master
undetermined | Blocked By:
Keywords: H264 DXVA2 | Reproduced by developer: 0
hwaccel |
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
Platform: Windows 8.1. Intel G45 graphics chip reported as "Mobile
Intel(R) 4 Series Express Chipset Family v2
Until yesterday, on my nightly compiles, DXVA2 hardware-accelerated
decoding of H264 worked perfectly. It now fails. I see a window full of
semi-random green blocks on opengl and SDL output devices. Hardware
decoding worked reliably and quickly until 22 March 2015.
The error messages repeat this:
[h264 @ 000000000516fd60] Failed to execute: 0x80070057
[h264 @ 000000000516fd60] hardware accelerator failed to decode picture
How to reproduce:
{{{
> ffmpeg -v debug -hwaccel auto -i http://wpc.c1a9.edgecastcdn.net/hls-
live/20C1A9/bbc_world/ls_satlink/b_828.m3u8 -f opengl OUTPUT
}}}
ffmpeg version N-71042-g83020f8
built on 22nd March 2015 from Git source
Although this command line uses an H.264 stream (BBC World News), the
effect is the same with a local H.264 file.
I get this output when using OpenGL. The SDL driver gives similar output.
{{{
ffmpeg version N-71042-g83020f8-COMPILED_BY_JohnWarburton Copyright (c)
2000-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --arch=x86_64 --target-os=mingw32 --cross-
prefix=/home/John/source/ffmpegbuild/sandbox/mingw-w64-x86_64/bin/x86_64-w64-mingw32-
--pkg-config=pkg-config --disable-doc --enable-gpl --enable-libx264
--enable-avisynth --enable-libxvid --enable-libmp3lame --enable-version3
--enable-zlib --enable-librtmp --enable-libvorbis --enable-libtheora
--enable-libspeex --enable-libopenjpeg --enable-gnutls --enable-libgsm
--enable-libfreetype --enable-libopus --disable-w32threads --enable-frei0r
--enable-filter=frei0r --enable-libvo-aacenc --enable-bzlib --enable-
libxavs --extra-cflags=-DPTW32_STATIC_LIB --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-
libschroedinger --enable-libvpx --enable-libilbc --enable-libbs2b
--prefix=/home/John/source/ffmpegbuild/sandbox/mingw-w64-x86_64/x86_64-w64-mingw32
--enable-static --disable-shared --enable-libsoxr --enable-fontconfig
--enable-libass --enable-libutvideo --enable-libbluray --enable-iconv
--enable-libtwolame --extra-cflags=-DLIBTWOLAME_STATIC --enable-libzvbi
--enable-libcaca --enable-libmodplug --extra-libs=-lstdc++ --enable-opengl
--extra-libs=-lpng --enable-libvidstab --enable-libx265 --enable-decklink
--extra-libs=-loleaut32 --enable-libcdio --enable-libbluray --extra-
cflags= --extra-version=COMPILED_BY_JohnWarburton --extra-cflags=
--enable-nonfree --enable-libfdk-aac --disable-libfaac --disable-
decoder=aac --enable-runtime-cpudetect
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 29.100 / 56. 29.100
libavformat 56. 26.101 / 56. 26.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 13.101 / 5. 13.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument 'debug'.
Reading option '-hwaccel' ... matched as option 'hwaccel' (use HW
accelerated decoding) with argument 'auto'.
Reading option '-i' ... matched as input file with argument
'http://wpc.c1a9.edgecastcdn.net/hls-
live/20C1A9/bbc_world/ls_satlink/b_828.m3u8'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'opengl'.
Reading option 'OUTPUT' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file http://wpc.c1a9.edgecastcdn.net
/hls-live/20C1A9/bbc_world/ls_satlink/b_828.m3u8.
Applying option hwaccel (use HW accelerated decoding) with argument auto.
Successfully parsed a group of options.
Opening an input file: http://wpc.c1a9.edgecastcdn.net/hls-
live/20C1A9/bbc_world/ls_satlink/b_828.m3u8.
}}}
Then, after the stream is parsed, this happens:
{{{
Input #0, hls,applehttp, from 'http://wpc.c1a9.edgecastcdn.net/hls-
live/20C1A9/bbc_world/ls_satlink/b_828.m3u8':
Duration: N/A, start: 51932.388044, bitrate: N/A
Program 0
Metadata:
variant_bitrate : 0
Stream #0:0, 21, 1/90000: Video: h264 (Constrained Baseline), 2
reference frames ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg,
left), 720x404 (720x416) [SAR 404:405 DAR 16:9], 1/50, 25 fps, 25 tbr, 90k
tbn, 50 tbc
Stream #0:1, 39, 1/90000: Audio: aac ([15][0][0][0] / 0x000F), 44100
Hz, stereo, s16, 134 kb/s
Successfully opened the file.
Parsing a group of options: output file OUTPUT.
Applying option f (force format) with argument opengl.
Successfully parsed a group of options.
Opening an output file: OUTPUT.
Successfully opened the file.
detected 2 logical cores
[graph 0 input from stream 0:0 @ 00000000044fe620] Setting 'video_size' to
value '720x404'
[graph 0 input from stream 0:0 @ 00000000044fe620] Setting 'pix_fmt' to
value '0'
[graph 0 input from stream 0:0 @ 00000000044fe620] Setting 'time_base' to
value '1/90000'
[graph 0 input from stream 0:0 @ 00000000044fe620] Setting 'pixel_aspect'
to value '404/405'
[graph 0 input from stream 0:0 @ 00000000044fe620] Setting 'sws_param' to
value 'flags=2'
[graph 0 input from stream 0:0 @ 00000000044fe620] Setting 'frame_rate' to
value '25/1'
[graph 0 input from stream 0:0 @ 00000000044fe620] w:720 h:404
pixfmt:yuv420p tb:1/90000 fr:25/1 sar:404/405 sws_param:flags=2
[graph 0 input from stream 0:0 @ 00000000050a8840] Setting 'video_size' to
value '720x404'
[graph 0 input from stream 0:0 @ 00000000050a8840] Setting 'pix_fmt' to
value '25'
[graph 0 input from stream 0:0 @ 00000000050a8840] Setting 'time_base' to
value '1/90000'
[graph 0 input from stream 0:0 @ 00000000050a8840] Setting 'pixel_aspect'
to value '404/405'
[graph 0 input from stream 0:0 @ 00000000050a8840] Setting 'sws_param' to
value 'flags=2'
[graph 0 input from stream 0:0 @ 00000000050a8840] Setting 'frame_rate' to
value '25/1'
[graph 0 input from stream 0:0 @ 00000000050a8840] w:720 h:404 pixfmt:nv12
tb:1/90000 fr:25/1 sar:404/405 sws_param:flags=2
[scaler for output stream 0:0 @ 00000000050a86c0] Setting 'w' to value
'720'
[scaler for output stream 0:0 @ 00000000050a86c0] Setting 'h' to value
'404'
[scaler for output stream 0:0 @ 00000000050a86c0] Setting 'flags' to value
'0x4'
[scaler for output stream 0:0 @ 00000000050a86c0] w:720 h:404 flags:'0x4'
interl:0
[format @ 00000000050a8f00] compat: called with args=[yuv420p]
[format @ 00000000050a8f00] Setting 'pix_fmts' to value 'yuv420p'
[AVFilterGraph @ 00000000050ace00] query_formats: 5 queried, 4 merged, 0
already done, 0 delayed
[scaler for output stream 0:0 @ 00000000050a86c0] w:720 h:404 fmt:nv12
sar:404/405 -> w:720 h:404 fmt:yuv420p sar:404/405 flags:0x4
[AVFilterGraph @ 00000000050cf320] query_formats: 3 queried, 2 merged, 0
already done, 0 delayed
[opengl outdev @ 00000000045adea0] SDL driver: 'windib'.
[opengl outdev @ 00000000045adea0] OpenGL version: 2.1.0 - Build
8.15.10.2869
[opengl outdev @ 00000000045adea0] Non Power of 2 textures support: Yes
[opengl outdev @ 00000000045adea0] Unpack Subimage extension support: Yes
[opengl outdev @ 00000000045adea0] Max texture size: 4096x4096
[opengl outdev @ 00000000045adea0] Max viewport size: 4096x4096
Output #0, opengl, to 'OUTPUT':
Metadata:
encoder : Lavf56.26.101
Stream #0:0, 0, 1/25: Video: rawvideo, 1 reference frame (I420 /
0x30323449), yuv420p(left), 720x404 [SAR 404:405 DAR 16:9], 1/25, q=2-31,
200 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc56.29.100 rawvideo
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[h264 @ 000000000516fd60] Frame num gap 2 255
[h264 @ 000000000516fd60] Frame num gap 2 0
[h264 @ 000000000516fd60] Failed to execute: 0x80070057
[h264 @ 000000000516fd60] hardware accelerator failed to decode picture
[h264 @ 00000000051b5be0] Failed to execute: 0x80070057
[h264 @ 00000000051b5be0] hardware accelerator failed to decode picture
[h264 @ 00000000051b5be0] Failed to execute: 0x8007000e
}}}
And those last two error messages repeat indefinitely.
I first spotted this when using my nightly mpv build to play an on-line
stream; and so traced the problem to something possibly within FFmpeg.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4384>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list