[FFmpeg-trac] #4873(avcodec:new): crashes in h264 decoder(decode_postinit)
FFmpeg
trac at avcodec.org
Wed Sep 23 09:13:07 CEST 2015
#4873: crashes in h264 decoder(decode_postinit)
-------------------------------------+-----------------------------------
Reporter: zylthinking | Owner:
Type: defect | Status: new
Priority: important | Component: avcodec
Version: unspecified | Resolution:
Keywords: h264 crash | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-----------------------------------
Comment (by cehoyos):
Replying to [comment:9 zylthinking]:
> Replying to [comment:8 cehoyos]:
> > I am unable to reproduce the issue on Android with 2.6.1.
> > If you need a fix for your issue, please test versions 2.6.4, 2.7.2
and 2.8.
> > {{{
> > $ ./ffmpeg -i nalu -f null -
> > ffmpeg version n2.6.1 Copyright (c) 2000-2015 the FFmpeg developers
> > built with gcc 4.9 (GCC) 20140827 (prerelease)
> > configuration: --cross-prefix=../android-ndk-r10e/toolchains/arm-
linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
--arch=arm --target-os=linux --sysroot=/mnt/cehoyos/android/android-ndk-
r10e/platforms/android-17/arch-arm/ --enable-gpl --cpu=cortex-a8
>
> do you turn on the CODEC_FLAG_LOW_DELAY, CODEC_FLAG_TRUNCATED and
CODEC_FLAG2_CHUNKS in the flags & flags2?
No, how would I have known that I should use them?
No crash here with these flags used:
{{{
$ ./ffmpeg -flags +low_delay+truncated -flags2 +chunks -i nalu -f null -
ffmpeg version n2.6.1 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9 (GCC) 20140827 (prerelease)
configuration: --cross-prefix=../android-ndk-r10e/toolchains/arm-linux-
androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
--arch=arm --target-os=linux --sysroot=/mnt/cehoyos/android/android-ndk-
r10e/platforms/android-17/arch-arm/ --enable-gpl --cpu=cortex-a8
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, h264, from 'nalu':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuv420p(tv), 720x576 [SAR 64:45 DAR
16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf56.25.101
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x576
[SAR 64:45 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc56.26.100 rawvideo
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[null @ 0x1236b90] Encoder did not produce proper pts, making some up.
[h264 @ 0x136c300] Cannot parallelize slice decoding with deblocking
filter type 1, decoding such frames in sequential order
To parallelize slice decoding you need video encoded with
disable_deblocking_filter_idc set to 2 (deblock only edges that do not
cross slices).
Setting the flags2 libavcodec option to +fast (-flags2 +fast) will disable
deblocking across slices and enable parallel slice decoding but will
generate non-standard-compliant output.
frame= 206 fps= 57 q=0.0 Lsize=N/A time=00:00:08.24 bitrate=N/A
video:13kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
> Ok, 2.8 have been tested and shows no crashing any more
If you want this fixed, you will either have to explain how I can
reproduce or run a bisect to find the change fixing the issue for you.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4873#comment:10>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list