[FFmpeg-devel] [PATCH 277/281] ffmpeg: convert to new channel layout-API

Michael Niedermayer michael at niedermayer.cc
Thu Jan 13 20:29:55 EET 2022


On Wed, Jan 12, 2022 at 11:09:09PM -0300, James Almer wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  fftools/cmdutils.c            | 42 +++++++++++++++---------
>  fftools/cmdutils.h            |  8 -----
>  fftools/ffmpeg.c              | 47 ++++++++++++++++----------
>  fftools/ffmpeg.h              |  7 ++--
>  fftools/ffmpeg_filter.c       | 52 ++++++++++++++++++++++-------
>  fftools/ffmpeg_opt.c          | 62 ++++++++++++++++++++++++++++++-----
>  tests/fate/aac.mak            |  2 +-
>  tests/fate/lavf-container.mak |  2 +-
>  8 files changed, 155 insertions(+), 67 deletions(-)

This or a prior patch introduces crashes (it bisected to this but this is my
2nd testcase the first did not reproduce reliably at all)

Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault.
0x00005555566ed811 in av_vlog (avcl=0x5555577400c0, level=24, fmt=0x5555568249e8 "%d frames left in the queue on closing\n", vl=0x7fffffffda50) at libavutil/log.c:428
428	    if (avc && avc->version >= (50 << 16 | 15 << 8 | 2) &&
(gdb) bt
#0  0x00005555566ed811 in av_vlog (avcl=0x5555577400c0, level=24, fmt=0x5555568249e8 "%d frames left in the queue on closing\n", vl=0x7fffffffda50) at libavutil/log.c:428
#1  0x00005555566ed6bd in av_log (avcl=0x5555577400c0, level=24, fmt=0x5555568249e8 "%d frames left in the queue on closing\n") at libavutil/log.c:411
#2  0x0000555555c320b9 in ff_af_queue_close (afq=0x5555576c47c8) at libavcodec/audio_frame_queue.c:39
#3  0x0000555555e84c06 in mp3lame_encode_close (avctx=0x5555576bf180) at libavcodec/libmp3lame.c:86
#4  0x0000555555c373f7 in avcodec_close (avctx=0x5555576bf180) at libavcodec/avcodec.c:489
#5  0x0000555555f7feab in avcodec_free_context (pavctx=0x5555576a8858) at libavcodec/options.c:163
#6  0x000055555569cfe3 in ffmpeg_cleanup (ret=1) at fftools/ffmpeg.c:608
#7  0x0000555555694817 in exit_program (ret=1) at fftools/cmdutils.c:131
#8  0x000055555569ef1f in do_audio_out (of=0x5555576ae2c0, ost=0x5555576a8800, frame=0x5555576bf580) at fftools/ffmpeg.c:1056
#9  0x00005555556a117a in reap_filters (flush=0) at fftools/ffmpeg.c:1546
#10 0x00005555556ad8e5 in transcode_step () at fftools/ffmpeg.c:4643
#11 0x00005555556ad9e7 in transcode () at fftools/ffmpeg.c:4687
#12 0x00005555556ae45c in main (argc=12, argv=0x7fffffffe1c8) at fftools/ffmpeg.c:4903
(gdb) print avc->version
Cannot access memory at address 0xc1528eb7c0ea0157

make -j32 && gdb --args ./ffmpeg_g -ss 8 -i NeroRecodeSample.mp4 -bitexact -t 3 -filter_complex '[0:2]scale=720:576[v];[v][0:5]overlay' -y file-whitesubs.avi

it appears this file is at:
https://samples.ffmpeg.org/MPEG-4/NeroRecodeSample-MP4/


Press [q] to stop, [?] for help
[aac @ 0x16fb3540] This stream seems to incorrectly report its last channel as SCE[1], mapping to LFE[0]
[aac @ 0x16fb3540] env_facs_q 253 is invalid
==21617==    at 0x12A09F8: VALGRIND_PRINTF_BACKTRACE (valgrind.h:6303)
==21617==    by 0x12A15B6: av_log_default_callback (log.c:397)
==21617==    by 0x12A185D: av_vlog (log.c:432)
==21617==    by 0x12A16BC: av_log (log.c:411)
==21617==    by 0xEED8B6: read_sbr_envelope (aacsbr_template.c:865)
==21617==    by 0xEEE22F: read_sbr_single_channel_element (aacsbr_template.c:983)
==21617==    by 0xEEE762: read_sbr_data (aacsbr_template.c:1055)
==21617==    by 0xEEEAFD: ff_decode_sbr_extension (aacsbr_template.c:1144)
==21617==    by 0xECD082: decode_extension_payload (aacdec_template.c:2582)
==21617==    by 0xED029B: aac_decode_frame_int (aacdec_template.c:3372)
==21617==    by 0xED0842: aac_decode_frame (aacdec_template.c:3500)
==21617==    by 0x8ABF66: decode_simple_internal (decode.c:329)
==21617==    by 0x8ACB62: decode_simple_receive_frame (decode.c:528)
==21617==    by 0x8ACC5C: decode_receive_frame_internal (decode.c:548)
==21617==    by 0x8ACF38: avcodec_send_packet (decode.c:615)
==21617==    by 0x258160: decode (ffmpeg.c:2276)
==21617==    by 0x258354: decode_audio (ffmpeg.c:2319)
==21617==    by 0x259949: process_input_packet (ffmpeg.c:2638)
==21617==    by 0x26138A: process_input (ffmpeg.c:4493)
==21617==    by 0x26187E: transcode_step (ffmpeg.c:4633)
[aac @ 0x16fb3540] env_facs_q 252 is invalid
==21617==    at 0x12A09F8: VALGRIND_PRINTF_BACKTRACE (valgrind.h:6303)
==21617==    by 0x12A15B6: av_log_default_callback (log.c:397)
==21617==    by 0x12A185D: av_vlog (log.c:432)
==21617==    by 0x12A16BC: av_log (log.c:411)
==21617==    by 0xEED8B6: read_sbr_envelope (aacsbr_template.c:865)
==21617==    by 0xEEE5AC: read_sbr_channel_pair_element (aacsbr_template.c:1028)
==21617==    by 0xEEE7A7: read_sbr_data (aacsbr_template.c:1060)
==21617==    by 0xEEEAFD: ff_decode_sbr_extension (aacsbr_template.c:1144)
==21617==    by 0xECD082: decode_extension_payload (aacdec_template.c:2582)
==21617==    by 0xED029B: aac_decode_frame_int (aacdec_template.c:3372)
==21617==    by 0xED0842: aac_decode_frame (aacdec_template.c:3500)
==21617==    by 0x8ABF66: decode_simple_internal (decode.c:329)
==21617==    by 0x8ACB62: decode_simple_receive_frame (decode.c:528)
==21617==    by 0x8ACC5C: decode_receive_frame_internal (decode.c:548)
==21617==    by 0x8ACF38: avcodec_send_packet (decode.c:615)
==21617==    by 0x258160: decode (ffmpeg.c:2276)
==21617==    by 0x258354: decode_audio (ffmpeg.c:2319)
==21617==    by 0x259949: process_input_packet (ffmpeg.c:2638)
==21617==    by 0x26138A: process_input (ffmpeg.c:4493)
==21617==    by 0x26187E: transcode_step (ffmpeg.c:4633)
[aac @ 0x16fb3540] noise_facs_q 255 is invalid
==21617==    at 0x12A09F8: VALGRIND_PRINTF_BACKTRACE (valgrind.h:6303)
==21617==    by 0x12A15B6: av_log_default_callback (log.c:397)
==21617==    by 0x12A185D: av_vlog (log.c:432)
==21617==    by 0x12A16BC: av_log (log.c:411)
==21617==    by 0xEEDE4D: read_sbr_noise (aacsbr_template.c:923)
==21617==    by 0xEEE615: read_sbr_channel_pair_element (aacsbr_template.c:1032)
==21617==    by 0xEEE7A7: read_sbr_data (aacsbr_template.c:1060)
==21617==    by 0xEEEAFD: ff_decode_sbr_extension (aacsbr_template.c:1144)
==21617==    by 0xECD082: decode_extension_payload (aacdec_template.c:2582)
==21617==    by 0xED029B: aac_decode_frame_int (aacdec_template.c:3372)
==21617==    by 0xED0842: aac_decode_frame (aacdec_template.c:3500)
==21617==    by 0x8ABF66: decode_simple_internal (decode.c:329)
==21617==    by 0x8ACB62: decode_simple_receive_frame (decode.c:528)
==21617==    by 0x8ACC5C: decode_receive_frame_internal (decode.c:548)
==21617==    by 0x8ACF38: avcodec_send_packet (decode.c:615)
==21617==    by 0x258160: decode (ffmpeg.c:2276)
==21617==    by 0x258354: decode_audio (ffmpeg.c:2319)
==21617==    by 0x259949: process_input_packet (ffmpeg.c:2638)
==21617==    by 0x26138A: process_input (ffmpeg.c:4493)
==21617==    by 0x26187E: transcode_step (ffmpeg.c:4633)
Audio encoding failed
==21617==    at 0x12A09F8: VALGRIND_PRINTF_BACKTRACE (valgrind.h:6303)
==21617==    by 0x12A15B6: av_log_default_callback (log.c:397)
==21617==    by 0x12A185D: av_vlog (log.c:432)
==21617==    by 0x12A16BC: av_log (log.c:411)
==21617==    by 0x252F14: do_audio_out (ffmpeg.c:1055)
==21617==    by 0x255179: reap_filters (ffmpeg.c:1546)
==21617==    by 0x2618E4: transcode_step (ffmpeg.c:4643)
==21617==    by 0x2619E6: transcode (ffmpeg.c:4687)
==21617==    by 0x26245B: main (ffmpeg.c:4903)
==21617== Invalid read of size 4
==21617==    at 0x12A1811: av_vlog (log.c:428)
==21617==    by 0x12A16BC: av_log (log.c:411)
==21617==    by 0x7E60B8: ff_af_queue_close (audio_frame_queue.c:39)
==21617==    by 0xA38C05: mp3lame_encode_close (libmp3lame.c:86)
==21617==    by 0x7EB3F6: avcodec_close (avcodec.c:489)
==21617==    by 0xB33EAA: avcodec_free_context (options.c:163)
==21617==    by 0x250FE2: ffmpeg_cleanup (ffmpeg.c:608)
==21617==    by 0x248816: exit_program (cmdutils.c:131)
==21617==    by 0x252F1E: do_audio_out (ffmpeg.c:1056)
==21617==    by 0x255179: reap_filters (ffmpeg.c:1546)
==21617==    by 0x2618E4: transcode_step (ffmpeg.c:4643)
==21617==    by 0x2619E6: transcode (ffmpeg.c:4687)
==21617==    by 0x26245B: main (ffmpeg.c:4903)
==21617==  Address 0xc1528eb7c0ea0157 is not stack'd, malloc'd or (recently) free'd
==21617== 
==21617== 
==21617== Process terminating with default action of signal 11 (SIGSEGV)
==21617==  General Protection Fault
==21617==    at 0x12A1811: av_vlog (log.c:428)
==21617==    by 0x12A16BC: av_log (log.c:411)
==21617==    by 0x7E60B8: ff_af_queue_close (audio_frame_queue.c:39)
==21617==    by 0xA38C05: mp3lame_encode_close (libmp3lame.c:86)
==21617==    by 0x7EB3F6: avcodec_close (avcodec.c:489)
==21617==    by 0xB33EAA: avcodec_free_context (options.c:163)
==21617==    by 0x250FE2: ffmpeg_cleanup (ffmpeg.c:608)
==21617==    by 0x248816: exit_program (cmdutils.c:131)
==21617==    by 0x252F1E: do_audio_out (ffmpeg.c:1056)
==21617==    by 0x255179: reap_filters (ffmpeg.c:1546)
==21617==    by 0x2618E4: transcode_step (ffmpeg.c:4643)
==21617==    by 0x2619E6: transcode (ffmpeg.c:4687)
==21617==    by 0x26245B: main (ffmpeg.c:4903)
==21617== 
==21617== HEAP SUMMARY:
==21617==     in use at exit: 3,463,746 bytes in 473 blocks
==21617==   total heap usage: 1,923 allocs, 1,450 frees, 9,590,510 bytes allocated
==21617== 
==21617== 5,888 bytes in 16 blocks are possibly lost in loss record 159 of 180
==21617==    at 0x4C33B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==21617==    by 0x4013646: allocate_dtv (dl-tls.c:286)
==21617==    by 0x4013646: _dl_allocate_tls (dl-tls.c:530)
==21617==    by 0xCB4F227: allocate_stack (allocatestack.c:627)
==21617==    by 0xCB4F227: pthread_create@@GLIBC_2.2.5 (pthread_create.c:644)
==21617==    by 0xB6C3FB: init_thread (pthread_frame.c:842)
==21617==    by 0xB6C625: ff_frame_thread_init (pthread_frame.c:898)
==21617==    by 0xB69E97: ff_thread_init (pthread.c:81)
==21617==    by 0x7EAC52: avcodec_open2 (avcodec.c:330)
==21617==    by 0x25AA65: init_input_stream (ffmpeg.c:2922)
==21617==    by 0x25D48C: transcode_init (ffmpeg.c:3634)
==21617==    by 0x261924: transcode (ffmpeg.c:4658)
==21617==    by 0x26245B: main (ffmpeg.c:4903)
==21617== 
==21617== LEAK SUMMARY:
==21617==    definitely lost: 0 bytes in 0 blocks
==21617==    indirectly lost: 0 bytes in 0 blocks
==21617==      possibly lost: 5,888 bytes in 16 blocks
==21617==    still reachable: 3,457,858 bytes in 457 blocks
==21617==         suppressed: 0 bytes in 0 blocks
==21617== Reachable blocks (those to which a pointer was found) are not shown.
==21617== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==21617== 
==21617== For counts of detected and suppressed errors, rerun with: -v
==21617== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)


thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In a rich man's house there is no place to spit but his face.
-- Diogenes of Sinope
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20220113/a8f9afa0/attachment.sig>


More information about the ffmpeg-devel mailing list