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 719544 - deinterlace: crash when downstream caps contain list of framerates
deinterlace: crash when downstream caps contain list of framerates
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.2.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-11-29 12:06 UTC by Christian Fredrik Kalager Schaller
Modified: 2014-01-10 23:58 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Fredrik Kalager Schaller 2013-11-29 12:06:21 UTC
(gdb) thread apply all bt

Thread 21 (Thread 0x7fc70f490700 (LWP 15887))

  • #0 memset
    at ../sysdeps/x86_64/rtld-memset.S line 33
  • #1 _dl_map_object_from_fd
    at dl-load.c line 1396
  • #2 _dl_map_object
    at dl-load.c line 2382
  • #3 dl_open_worker
    at dl-open.c line 224
  • #4 _dl_catch_error
    at dl-error.c line 177
  • #5 _dl_open
    at dl-open.c line 650
  • #6 dlopen_doit
    at dlopen.c line 66
  • #7 _dl_catch_error
    at dl-error.c line 177
  • #8 _dlerror_run
    at dlerror.c line 163
  • #9 __dlopen
    at dlopen.c line 87
  • #10 _g_module_open
    at gmodule-dl.c line 99
  • #11 g_module_open
    at gmodule.c line 584
  • #12 gst_plugin_load_file
    at gstplugin.c line 733
  • #13 gst_plugin_load_by_name
    at gstplugin.c line 1251
  • #14 gst_plugin_feature_load
    at gstpluginfeature.c line 110
  • #15 gst_element_factory_create
    at gstelementfactory.c line 353
  • #16 gst_element_factory_make
    at gstelementfactory.c line 446
  • #17 _create_stream_group
    at gstencodebin.c line 1388
  • #18 request_pad_for_stream
    at gstencodebin.c line 725
  • #19 gst_encode_bin_request_profile_pad_signal
    at gstencodebin.c line 791
  • #20 ffi_call_unix64
    from /lib64/libffi.so.6
  • #21 ffi_call
    from /lib64/libffi.so.6
  • #22 g_cclosure_marshal_generic
    at gclosure.c line 1454
  • #23 g_closure_invoke
    at gclosure.c line 777
  • #24 signal_emit_unlocked_R
    at gsignal.c line 3624
  • #25 g_signal_emitv
    at gsignal.c line 3063
  • #26 pygobject_emit
    from /usr/lib64/python3.3/site-packages/gi/_gobject/_gobject.cpython-33m.so
  • #27 call_function
    at /usr/src/debug/Python-3.3.2/Python/ceval.c line 4092
  • #28 PyEval_EvalFrameEx
  • #29 PyEval_EvalCodeEx
    at /usr/src/debug/Python-3.3.2/Python/ceval.c line 3462
  • #30 function_call
  • #31 PyObject_Call
  • #32 method_call
  • #33 PyObject_Call
  • #34 PyEval_CallObjectWithKeywords
  • #35 _pygi_closure_handle
    from /usr/lib64/python3.3/site-packages/gi/_gi.cpython-33m.so
  • #36 ffi_closure_unix64_inner
    from /lib64/libffi.so.6
  • #37 ffi_closure_unix64
    from /lib64/libffi.so.6
  • #38 probe_hook_marshal
    at gstpad.c line 3061
  • #39 g_hook_list_marshal
    at ghook.c line 676
  • #40 do_probe_callbacks
    at gstpad.c line 3155
  • #41 gst_pad_push_event_unchecked
    at gstpad.c line 4665
  • #42 push_sticky
    at gstpad.c line 3324
  • #43 events_foreach
    at gstpad.c line 533
  • #44 check_sticky
    at gstpad.c line 3380
  • #45 gst_pad_push_event
    at gstpad.c line 4808
  • #46 event_forward_func
    at gstpad.c line 2741
  • #47 gst_pad_forward
    at gstpad.c line 2695
  • #48 gst_pad_event_default
    at gstpad.c line 2792
  • #49 gst_pad_send_event_unchecked
    at gstpad.c line 4995
  • #50 gst_pad_push_event_unchecked
    at gstpad.c line 4691
  • #51 push_sticky
    at gstpad.c line 3324
  • #52 events_foreach
    at gstpad.c line 533
  • #53 check_sticky
    at gstpad.c line 3380
  • #54 gst_pad_peer_query
    at gstpad.c line 3581
  • #55 query_forward_func
    at gstpad.c line 2931
  • #56 gst_pad_forward
    at gstpad.c line 2695
  • #57 gst_pad_query_default
    at gstpad.c line 2995
  • #58 gst_decode_pad_query
    at gstdecodebin2.c line 4266
  • #59 gst_pad_query
    at gstpad.c line 3465
  • #60 gst_pad_peer_query
    at gstpad.c line 3596
  • #61 gst_audio_decoder_negotiate_default
    at gstaudiodecoder.c line 616
  • #62 gst_audio_decoder_negotiate
    at gstaudiodecoder.c line 679
  • #63 gst_audio_decoder_finish_frame
    at gstaudiodecoder.c line 1045
  • #64 gst_faad_handle_frame
    at gstfaad.c line 799
  • #65 gst_audio_decoder_push_buffers
    at gstaudiodecoder.c line 1308
  • #66 gst_audio_decoder_chain_forward
    at gstaudiodecoder.c line 1411
  • #67 gst_audio_decoder_chain
    at gstaudiodecoder.c line 1681
  • #68 gst_pad_chain_data_unchecked
    at gstpad.c line 3717
  • #69 gst_pad_push_data
    at gstpad.c line 3950
  • #70 gst_pad_push
    at gstpad.c line 4053
  • #71 gst_base_parse_push_frame
    at gstbaseparse.c line 2289
  • #72 gst_base_parse_chain
    at gstbaseparse.c line 2767
  • #73 gst_pad_chain_data_unchecked
    at gstpad.c line 3717
  • #74 gst_pad_push_data
    at gstpad.c line 3950
  • #75 gst_pad_push
    at gstpad.c line 4053
  • #76 gst_single_queue_push_one
    at gstmultiqueue.c line 1083
  • #77 gst_multi_queue_loop
    at gstmultiqueue.c line 1331
  • #78 gst_task_func
    at gsttask.c line 316
  • #79 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #80 g_thread_proxy
    at gthread.c line 798
  • #81 start_thread
    at pthread_create.c line 309
  • #82 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Comment 1 Olivier Crête 2013-11-29 16:32:18 UTC
How reproducible is it? How can we reproduce this bug ? Also, please also add some info on whihc thread it was in when it crashed and what kind of crash is it? segfault?
Comment 2 Christian Fredrik Kalager Schaller 2013-11-30 13:23:23 UTC
The easiest way is to grab transmageddon from git master and just put together a mpeg ts transcode. It is a segmentation fault.

(transmageddon.py:24104): GStreamer-CRITICAL **: gst_value_list_get_value: assertion 'index < VALUE_LIST_SIZE (value)' failed
Segmentation fault (core dumped)
Comment 3 Christian Fredrik Kalager Schaller 2013-12-01 13:51:37 UTC
Ok, found a simple test case:
gst-launch-1.0 filesrc location="A_Digital_Media_Primer_For_Geeks-360p.ogv" ! decodebin ! deinterlace ! mpeg2enc ! mpegpsmux ! filesink location="/tmp/test.mpg"

It seems the deinterlace plugin is to blame, pipeline runs fine withot it.
Comment 4 Tim-Philipp Müller 2013-12-01 18:00:44 UTC
bonus points if you point us to the http location of the exact same input file as well :)
Comment 5 Christian Fredrik Kalager Schaller 2013-12-01 18:26:49 UTC
As asked :)

http://downloads.xiph.org/video/A_Digital_Media_Primer_For_Geeks-360p.ogv
Comment 6 Tim-Philipp Müller 2013-12-01 23:37:31 UTC
This fixes the crash, but it still doesn't work:

 commit 63b0e84addc44dcbf643836f7632ec1cee266d82
 Author: Tim-Philipp Müller <tim@centricular.com>
 Date:   Sun Dec 1 23:32:20 2013 +0000

    deinterlace: fix off-by-one crash when downstream caps contain a list of framerates
    
    https://bugzilla.gnome.org/show_bug.cgi?id=719544
Comment 7 Tim-Philipp Müller 2013-12-02 00:10:25 UTC
Works with an additional videorate before the encoder. In any case, the crash is fixed.
Comment 8 Tim-Philipp Müller 2013-12-02 00:22:15 UTC
Should also be picked into 1.2 probably