[FFmpeg-trac] #4873(avcodec:new): crashes in h264 decoder(decode_postinit)
FFmpeg
trac at avcodec.org
Thu Sep 24 10:46:48 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 zylthinking):
Replying to [comment:10 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:11>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list