After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 659836 - Transcoding crash with new git master FAAC
Transcoding crash with new git master FAAC
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
unspecified
Other Linux
: Normal normal
: 0.10.23
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-09-22 15:46 UTC by Christian Fredrik Kalager Schaller
Modified: 2011-09-22 16:28 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
GST_DEBUG log of crash (856.04 KB, application/x-bzip)
2011-09-22 15:48 UTC, Christian Fredrik Kalager Schaller
Details

Description Christian Fredrik Kalager Schaller 2011-09-22 15:46:15 UTC
Transmageddon segfaults when trying to transcode the gravity.mpg clip from gstreamer.freedesktop.org/media/large (works when testing with some other files).
This happens with ffenc_aac, so only triggers with new FAAC plugin (ported to new baseclass).

Will also upload a GST_DEBUG log, but gdb backtrace below:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xae1feb70 (LWP 8903)]
0x0057b931 in faacEncEncode () from /usr/lib/libfaac.so.0
(gdb) thread apply all bt

Thread 14 (Thread 0xae1feb70 (LWP 8903))

  • #0 faacEncEncode
    from /usr/lib/libfaac.so.0
  • #1 gst_faac_handle_frame
    at gstfaac.c line 659
  • #2 gst_audio_encoder_push_buffers
    at gstaudioencoder.c line 714
  • #3 gst_audio_encoder_chain
    at gstaudioencoder.c line 907
  • #4 gst_pad_push
    at gstpad.c line 4712
  • #5 gst_base_transform_chain
    at gstbasetransform.c line 2559
  • #6 gst_pad_push
    at gstpad.c line 4712
  • #7 gst_base_transform_chain
    at gstbasetransform.c line 2559
  • #8 gst_pad_push
    at gstpad.c line 4712
  • #9 gst_base_transform_chain
    at gstbasetransform.c line 2559
  • #10 gst_pad_push
    at gstpad.c line 4712
  • #11 gst_audio_rate_chain
    at gstaudiorate.c line 756
  • #12 gst_pad_push
    at gstpad.c line 4712
  • #13 gst_stream_splitter_chain
    at gststreamsplitter.c line 128
  • #14 gst_pad_push
    at gstpad.c line 4712
  • #15 gst_queue_push_one
    at gstqueue.c line 1155
  • #16 gst_queue_loop
    at gstqueue.c line 1263
  • #17 gst_task_func
    at gsttask.c line 318
  • #18 default_func
    at gsttaskpool.c line 70
  • #19 ??
    from /lib/libglib-2.0.so.0
  • #20 ??
    from /lib/libglib-2.0.so.0
  • #21 start_thread
    from /lib/libpthread.so.0
  • #22 clone
    from /lib/libc.so.6

Thread 9 (Thread 0xaf5d3b70 (LWP 8898))

  • #0 _int_malloc
    from /lib/libc.so.6
  • #1 _int_realloc
    from /lib/libc.so.6
  • #2 realloc
    from /lib/libc.so.6
  • #3 ??
    from /lib/libglib-2.0.so.0
  • #4 g_realloc
    from /lib/libglib-2.0.so.0
  • #5 ??
    from /lib/libglib-2.0.so.0
  • #6 g_array_append_vals
    from /lib/libglib-2.0.so.0
  • #7 gst_structure_set_field
    at gststructure.c line 811
  • #8 gst_structure_id_set_value_internal
    at gststructure.c line 435
  • #9 gst_structure_id_set_value
    at gststructure.c line 457
  • #10 gst_structure_intersect_field1
    at gststructure.c line 2979
  • #11 gst_structure_foreach
    at gststructure.c line 1097
  • #12 gst_structure_intersect
    at gststructure.c line 3027
  • #13 gst_caps_intersect_first
    at gstcaps.c line 1380
  • #14 gst_caps_intersect_full
    at gstcaps.c line 1411
  • #15 gst_base_transform_getcaps
    at gstbasetransform.c line 710
  • #16 gst_pad_get_caps_unlocked
    at gstpad.c line 2232
  • #17 gst_pad_get_caps_reffed
    at gstpad.c line 2316
  • #18 gst_pad_peer_get_caps_reffed
    at gstpad.c line 2383
  • #19 gst_base_transform_getcaps
    at gstbasetransform.c line 683
  • #20 gst_pad_get_caps_unlocked
    at gstpad.c line 2232
  • #21 gst_pad_get_caps_reffed
    at gstpad.c line 2316
  • #22 gst_pad_peer_get_caps_reffed
    at gstpad.c line 2383
  • #23 gst_stream_splitter_sink_getcaps
    at gststreamsplitter.c line 272
  • #24 gst_pad_get_caps_unlocked
    at gstpad.c line 2232
  • #25 gst_pad_get_caps_reffed
    at gstpad.c line 2316
  • #26 gst_pad_accept_caps
    at gstpad.c line 2618
  • #27 gst_pad_peer_accept_caps
    at gstpad.c line 2674
  • #28 gst_queue_acceptcaps
    at gstqueue.c line 480
  • #29 gst_pad_accept_caps
    at gstpad.c line 2606
  • #30 gst_proxy_pad_acceptcaps_default
    at gstghostpad.c line 443
  • #31 gst_pad_accept_caps
    at gstpad.c line 2606
  • #32 gst_base_transform_find_transform
    at gstbasetransform.c line 1016
  • #33 gst_base_transform_buffer_alloc
    at gstbasetransform.c line 1937
  • #34 gst_pad_buffer_alloc_unchecked
    at gstpad.c line 3020
  • #35 gst_pad_alloc_buffer_full
    at gstpad.c line 3097
  • #36 gst_base_transform_prepare_output_buffer
    at gstbasetransform.c line 1473
  • #37 gst_base_transform_handle_buffer
    at gstbasetransform.c line 2366
  • #38 gst_base_transform_chain
    at gstbasetransform.c line 2522
  • #39 gst_pad_chain_data_unchecked
    at gstpad.c line 4271
  • #40 gst_pad_push_data
    at gstpad.c line 4506
  • #41 gst_pad_push
    at gstpad.c line 4732
  • #42 gst_deinterlace_chain
    at gstdeinterlace.c line 2012
  • #43 gst_pad_chain_data_unchecked
    at gstpad.c line 4271
  • #44 gst_pad_push_data
    at gstpad.c line 4506
  • #45 gst_pad_push
    at gstpad.c line 4732
  • #46 gst_proxy_pad_chain_default
    at gstghostpad.c line 272
  • #47 gst_pad_chain_data_unchecked
    at gstpad.c line 4271
  • #48 gst_pad_push_data
    at gstpad.c line 4506
  • #49 gst_pad_push
    at gstpad.c line 4732
  • #50 gst_proxy_pad_chain_default
    at gstghostpad.c line 272
  • #51 gst_pad_chain_data_unchecked
    at gstpad.c line 4271
  • #52 gst_pad_push_data
    at gstpad.c line 4506
  • #53 gst_pad_push
    at gstpad.c line 4732
  • #54 handle_slice
    at gstmpeg2dec.c line 947
  • #55 gst_mpeg2dec_chain
    at gstmpeg2dec.c line 1136
  • #56 gst_pad_chain_data_unchecked
    at gstpad.c line 4271
  • #57 gst_pad_push_data
    at gstpad.c line 4506
  • #58 gst_pad_push
    at gstpad.c line 4732
  • #59 gst_base_parse_push_frame
    at gstbaseparse.c line 1934
  • #60 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 1711
  • #61 gst_base_parse_chain
    at gstbaseparse.c line 2359
  • #62 gst_pad_push
    at gstpad.c line 4712
  • #63 gst_single_queue_push_one
    at gstmultiqueue.c line 1083
  • #64 gst_multi_queue_loop
    at gstmultiqueue.c line 1314
  • #65 gst_task_func
    at gsttask.c line 318
  • #66 default_func
    at gsttaskpool.c line 70
  • #67 ??
    from /lib/libglib-2.0.so.0
  • #68 ??
    from /lib/libglib-2.0.so.0
  • #69 start_thread
    from /lib/libpthread.so.0
  • #70 clone
    from /lib/libc.so.6

Comment 1 Christian Fredrik Kalager Schaller 2011-09-22 15:48:40 UTC
Created attachment 197258 [details]
GST_DEBUG log of crash

Added GST_DEBUG log of when segfault happens.
Comment 2 Mark Nauwelaerts 2011-09-22 16:28:19 UTC
Seems due to oversight during porting when multiple channels involved.

commit 3900dc94ed20f6f990e5673d5206924a991f8f7e
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Thu Sep 22 18:23:32 2011 +0200

    faac: fixup misunderstanding in sample counting
    
    ... between codec and audioencoder regarding whether or not channel
    count is already considered.
    
    Fixes #659836.