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 756843 - Segfault in libav plugin
Segfault in libav plugin
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
1.6.0
Other Linux
: Normal major
: 1.6.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-10-20 07:05 UTC by Lionel Landwerlin
Modified: 2015-10-20 07:09 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test file (10.29 KB, application/octet-stream)
2015-10-20 07:05 UTC, Lionel Landwerlin
Details

Description Lionel Landwerlin 2015-10-20 07:05:09 UTC
Using the following command : 

gst-launch-1.0 playbin uri=file://$PWD/small_red.h264 video-sink='videoconvert ! avenc_png ! multifilesink location="%05d.png"'

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff3d4faa3 in av_freep (arg=0xd6c4254f0001) at libavutil/mem.c:244
244	libavutil/mem.c: No such file or directory.
(gdb) ny
Undefined command: "ny".  Try "help".
(gdb) bt
  • #0 av_freep
    at libavutil/mem.c line 244
  • #1 av_packet_free_side_data
    at libavcodec/avpacket.c line 275
  • #2 av_packet_unref
    at libavcodec/avpacket.c line 552
  • #3 gst_ffmpegvidenc_free_avpacket
    at gstavvidenc.c line 579
  • #4 default_free
    at gstallocator.c line 524
  • #5 _gst_memory_free
    at gstmemory.c line 96
  • #6 _gst_buffer_free
    at ../gst/gstmemory.h line 349
  • #7 _gst_buffer_free
    at gstbuffer.c line 665
  • #8 gst_base_sink_set_last_buffer_unlocked
    at ../../../gst/gstbuffer.h line 364
  • #9 gst_base_sink_set_last_buffer_unlocked
    at gstbasesink.c line 962
  • #10 gst_base_sink_set_last_buffer
    at gstbasesink.c line 1000
  • #11 gst_base_sink_change_state
    at gstbasesink.c line 5191
  • #12 gst_element_change_state
    at gstelement.c line 2604
  • #13 gst_element_set_state_func
    at gstelement.c line 2560
  • #14 gst_bin_change_state_func
    at gstbin.c line 2341
  • #15 gst_bin_change_state_func
    at gstbin.c line 2694
  • #16 gst_element_change_state
    at gstelement.c line 2604
  • #17 gst_element_set_state_func
    at gstelement.c line 2560
  • #18 gst_bin_change_state_func
    at gstbin.c line 2341
  • #19 gst_bin_change_state_func
    at gstbin.c line 2694
  • #20 gst_element_change_state
    at gstelement.c line 2604
  • #21 gst_element_set_state_func
    at gstelement.c line 2560
  • #22 gst_bin_change_state_func
    at gstbin.c line 2341
  • #23 gst_bin_change_state_func
    at gstbin.c line 2694
  • #24 gst_play_sink_change_state
    at gstplaysink.c line 4826
  • #25 gst_element_change_state
    at gstelement.c line 2604
  • #26 gst_element_set_state_func
    at gstelement.c line 2560
  • #27 gst_bin_change_state_func
    at gstbin.c line 2341
  • #28 gst_bin_change_state_func
    at gstbin.c line 2694
  • #29 gst_play_bin_change_state
    at gstplaybin2.c line 5675
  • #30 gst_element_change_state
    at gstelement.c line 2604
  • #31 gst_element_set_state_func
    at gstelement.c line 2560
  • #32 main
    at gst-launch.c line 1169

Comment 1 Lionel Landwerlin 2015-10-20 07:05:51 UTC
Created attachment 313723 [details]
Test file
Comment 2 Sebastian Dröge (slomo) 2015-10-20 07:09:40 UTC
This was fixed by one of these two commits (will be in 1.6.1):

commit eedefc9f6bd19f1c86b43d1fcc31a203b4ecea10
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Sat Oct 3 18:25:35 2015 +0100

    avcodecmap: Don't allocate dummy codec data anymore, it causes crashes nowadays
    
    Multithreaded encoders are going to free this dummy codec data twice, e.g.
    with this pipeline
      gst-launch-1.0 videotestsrc num-buffers=40 ! \
        videoconvert ! avenc_mjpeg ! fakesink

commit e5e78379ad8287cd2b71b4cdb743e905c8cd0369
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Sat Oct 3 18:14:05 2015 +0100

    avvidenc: Pass the correct user_data to gst_buffer_new_wrapped_full()
    
    Fixes crash with e.g.
    
      gst-launch-1.0 videotestsrc num-buffers=40 ! \
        videoconvert ! avenc_huffyuv ! fakesink