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 703743 - videomixer: Handling of variable fps streams broken
videomixer: Handling of variable fps streams broken
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
unspecified
Other All
: Normal normal
: 1.1.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-07-07 15:15 UTC by james
Modified: 2013-07-09 10:44 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description james 2013-07-07 15:15:39 UTC
I'm having problems trying to use videomixer with two udpsrc's. I've reproduced the error using a simpler pipeline using videotestsrc's instead as follows:

$ gst-launch-1.0 -m -v videomixer name=mix ! videoconvert ! autovideosink videotestsrc ! avenc_mpeg4 ! rtpmp4vpay ! rtpmp4vdepay ! avdec_mpeg4 ! mix. videotestsrc ! avenc_mpeg4 ! rtpmp4vpay ! rtpmp4vdepay ! avdec_mpeg4 ! mix.

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got message #39 from element "autovideosink0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/avenc_mpeg4:avenc_mpeg4-0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/avenc_mpeg4:avenc_mpeg4-0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
Got message #40 from element "videoconvert0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #41 from element "mix" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #42 from element "avdec_mpeg4-1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #43 from element "avdec_mpeg4-0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #44 from element "rtpmp4vdepay1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #45 from element "rtpmp4vdepay0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #46 from element "rtpmp4vpay1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #47 from element "rtpmp4vpay0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #48 from element "avenc_mpeg4-1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #49 from element "avenc_mpeg4-0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #50 from element "videotestsrc1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #51 from element "videotestsrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #52 from element "pipeline0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PAUSED;
Got message #53 from element "autovideosink0-actual-sink-osxvideo" (element): have-ns-view, nsview=(gpointer)NULL;
Got message #54 from element "autovideosink0-actual-sink-osxvideo" (element): prepare-window-handle;
Got message #57 from element "videoconvert0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #58 from element "mix" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #59 from element "avdec_mpeg4-1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #60 from element "avdec_mpeg4-0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #61 from element "rtpmp4vdepay1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #62 from element "rtpmp4vdepay0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #63 from element "rtpmp4vpay1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #64 from element "rtpmp4vpay0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #65 from element "avenc_mpeg4-1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #66 from element "avenc_mpeg4-0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #68 from pad "videotestsrc1:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstVideoTestSrc\)\ videotestsrc1", object=(GstTask)"\(GstTask\)\ videotestsrc1:src";
Got message #69 from element "videotestsrc1" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #71 from pad "videotestsrc1:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstVideoTestSrc\)\ videotestsrc1", object=(GstTask)"\(GstTask\)\ videotestsrc1:src";
Got message #72 from pad "videotestsrc0:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstVideoTestSrc\)\ videotestsrc0", object=(GstTask)"\(GstTask\)\ videotestsrc0:src";
Got message #74 from element "videotestsrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;
Got message #76 from pad "videotestsrc0:src" (stream-status): GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstVideoTestSrc\)\ videotestsrc0", object=(GstTask)"\(GstTask\)\ videotestsrc0:src";
/GstPipeline:pipeline0/avenc_mpeg4:avenc_mpeg4-0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/avenc_mpeg4:avenc_mpeg4-0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/avenc_mpeg4:avenc_mpeg4-1.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/avenc_mpeg4:avenc_mpeg4-1.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-0.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-1.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-1.GstPad:sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay1.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335332e33352e30, payload=(int)96, ssrc=(uint)2015097695, timestamp-offset=(uint)2268832634, seqnum-offset=(uint)32989
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0: timestamp = 2640617858
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay0: seqnum = 33743
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay1: timestamp = 2268832634
/GstPipeline:pipeline0/GstRtpMP4VPay:rtpmp4vpay1: seqnum = 32989
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoMixer2:mix.GstVideoMixer2Pad:sink_0: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoMixer2:mix.GstVideoMixer2Pad:sink_1: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1
/GstPipeline:pipeline0/avdec_mpeg4:avdec_mpeg4-1.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoMixer2:mix.GstVideoMixer2Pad:sink_0: caps = video/x-raw, format=(string)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601, framerate=(fraction)0/1

(gst-launch-1.0:4387): GStreamer-CRITICAL **: guint64 _gst_util_uint64_scale_int(guint64, gint, gint, gint): assertion `denom > 0' failed

(gst-launch-1.0:4387): GStreamer-CRITICAL **: guint64 _gst_util_uint64_scale_int(guint64, gint, gint, gint): assertion `denom > 0' failed

(gst-launch-1.0:4387): GStreamer-CRITICAL **: guint64 _gst_util_uint64_scale_int(guint64, gint, gint, gint): assertion `denom > 0' failed

(gst-launch-1.0:4387): GStreamer-CRITICAL **: guint64 _gst_util_uint64_scale_int(guint64, gint, gint, gint): assertion `denom > 0' failed

(gst-launch-1.0:4387): GStreamer-CRITICAL **: guint64 _gst_util_uint64_scale(guint64, guint64, guint64, guint64): assertion `denom != 0' failed

(gst-launch-1.0:4387): GStreamer-CRITICAL **: guint64 _gst_util_uint64_scale(guint64, guint64, guint64, guint64): assertion `denom != 0' failed
Caught SIGSEGV accessing address 0x0
  • #0 select\$DARWIN_EXTSN
  • #1 g_poll
  • #2 g_main_context_iterate
  • #3 g_main_loop_run
  • #4 gst_bus_poll
  • #5 event_loop
  • #6 main

Comment 1 james 2013-07-07 15:16:48 UTC
I'm using gstreamer installed via homebrew on Mac OSX 10.8.4.

$ gst-launch-1.0 --version
gst-launch-1.0 version 1.0.7
GStreamer 1.0.7
Comment 2 Sebastian Dröge (slomo) 2013-07-08 14:19:23 UTC
Real backtrace with git master

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff3123700 (LWP 15048)]
0x0000000000000000 in ?? ()
(gdb) thread apply all bt

Thread 1 (Thread 0x7ffff7ebd700 (LWP 15011))

  • #0 pthread_join
    at pthread_join.c line 92
  • #1 g_system_thread_wait
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread-posix.c line 1168
  • #2 g_thread_join
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread.c line 963
  • #3 gst_xvimagesink_close
    at xvimagesink.c line 1782
  • #4 gst_xvimagesink_change_state
    at xvimagesink.c line 872
  • #5 gst_element_change_state
    at gstelement.c line 2605
  • #6 gst_element_set_state_func
    at gstelement.c line 2561
  • #7 gst_bin_element_set_state
    at gstbin.c line 2297
  • #8 gst_bin_change_state_func
    at gstbin.c line 2599
  • #9 gst_auto_video_sink_change_state
    at gstautovideosink.c line 382
  • #10 gst_element_change_state
    at gstelement.c line 2605
  • #11 gst_element_continue_state
    at gstelement.c line 2315
  • #12 gst_element_change_state
    at gstelement.c line 2642
  • #13 gst_element_set_state_func
    at gstelement.c line 2561
  • #14 gst_bin_element_set_state
    at gstbin.c line 2297
  • #15 gst_bin_change_state_func
    at gstbin.c line 2599
  • #16 gst_pipeline_change_state
    at gstpipeline.c line 471
  • #17 gst_element_change_state
    at gstelement.c line 2605
  • #18 gst_element_set_state_func
    at gstelement.c line 2561
  • #19 main
    at gst-launch.c line 1206

Comment 3 Sebastian Dröge (slomo) 2013-07-08 14:20:00 UTC
Backtrace of the first warning

** (gst-launch-1.0:15155): CRITICAL **: gst_video_decoder_negotiate_default: assertion `GST_VIDEO_INFO_WIDTH (&state->info) != 0' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7ffff3123700 (LWP 15190)]
g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7ffff3121318)
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmessages.c:981
981	/tmp/buildd/glib2.0-2.36.3/./glib/gmessages.c: No such file or directory.
(gdb) thread apply all bt
[New Thread 0x7fffdaffd700 (LWP 15198)]

Thread 12 (Thread 0x7fffdaffd700 (LWP 15198))

  • #0 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 83
  • #1 ??
    at pthread_create.c line 219
  • #2 ??
  • #3 ??

Thread 4 (Thread 0x7ffff3123700 (LWP 15190))

  • #0 g_logv
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmessages.c line 981
  • #1 g_log
    at /tmp/buildd/glib2.0-2.36.3/./glib/gmessages.c line 1010
  • #2 g_return_if_fail_warning
  • #3 gst_video_decoder_negotiate_default
    at gstvideodecoder.c line 3010
  • #4 gst_video_decoder_negotiate
    at gstvideodecoder.c line 3140
  • #5 gst_ffmpegviddec_negotiate
    at gstavviddec.c line 894
  • #6 gst_ffmpegviddec_negotiate
    at gstavviddec.c line 628
  • #7 gst_ffmpegviddec_get_buffer
    at gstavviddec.c line 562
  • #8 submit_packet
    at libavcodec/pthread.c line 573
  • #9 ff_thread_decode_frame
    at libavcodec/pthread.c line 603
  • #10 avcodec_decode_video2
    at libavcodec/utils.c line 1283
  • #11 gst_ffmpegviddec_video_frame
    at gstavviddec.c line 1115
  • #12 gst_ffmpegviddec_frame
    at gstavviddec.c line 1242
  • #13 gst_ffmpegviddec_handle_frame
    at gstavviddec.c line 1358
  • #14 gst_video_decoder_decode_frame
    at gstvideodecoder.c line 2753
  • #15 gst_video_decoder_chain_forward
  • #16 gst_video_decoder_chain
    at gstvideodecoder.c line 2003
  • #17 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #18 gst_pad_push_data
    at gstpad.c line 3948
  • #19 gst_pad_push
    at gstpad.c line 4051
  • #20 gst_rtp_base_depayload_push
    at gstrtpbasedepayload.c line 607
  • #21 gst_rtp_base_depayload_chain
    at gstrtpbasedepayload.c line 355
  • #22 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #23 gst_pad_chain_list_default
    at gstpad.c line 3850
  • #24 gst_pad_chain_data_unchecked
    at gstpad.c line 3733
  • #25 gst_pad_push_data
    at gstpad.c line 3948
  • #26 gst_pad_push_list
    at gstpad.c line 4086
  • #27 gst_rtp_base_payload_push_list
    at gstrtpbasepayload.c line 929
  • #28 gst_rtp_mp4v_pay_flush
    at gstrtpmp4vpay.c line 295
  • #29 gst_rtp_mp4v_pay_handle_buffer
    at gstrtpmp4vpay.c line 535
  • #30 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #31 gst_pad_push_data
    at gstpad.c line 3948
  • #32 gst_pad_push
    at gstpad.c line 4051
  • #33 gst_video_encoder_finish_frame
  • #34 gst_ffmpegvidenc_handle_frame
    at gstavvidenc.c line 623
  • #35 gst_video_encoder_chain
    at gstvideoencoder.c line 1352
  • #36 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #37 gst_pad_push_data
    at gstpad.c line 3948
  • #38 gst_pad_push
    at gstpad.c line 4051
  • #39 gst_base_src_loop
    at gstbasesrc.c line 2726
  • #40 gst_task_func
    at gsttask.c line 316
  • #41 g_thread_pool_thread_proxy
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthreadpool.c line 309
  • #42 g_thread_proxy
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread.c line 798
  • #43 start_thread
    at pthread_create.c line 311
  • #44 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 113

Thread 3 (Thread 0x7ffff3924700 (LWP 15189))

  • #0 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 83
  • #1 do_clone
    at ../nptl/sysdeps/pthread/createthread.c line 74
  • #2 create_thread
    at ../nptl/sysdeps/pthread/createthread.c line 200
  • #3 __pthread_create_2_1
  • #4 frame_thread_init
    at libavcodec/pthread.c line 859
  • #5 ff_thread_init
    at libavcodec/pthread.c line 1048
  • #6 avcodec_open2
    at libavcodec/utils.c line 757
  • #7 gst_ffmpeg_avcodec_open
    at gstav.c line 48
  • #8 gst_ffmpegviddec_open
    at gstavviddec.c line 305
  • #9 gst_ffmpegviddec_set_format
    at gstavviddec.c line 465
  • #10 gst_video_decoder_setcaps
    at gstvideodecoder.c line 777
  • #11 gst_video_decoder_chain
    at gstvideodecoder.c line 1964
  • #12 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #13 gst_pad_push_data
    at gstpad.c line 3948
  • #14 gst_pad_push
    at gstpad.c line 4051
  • #15 gst_rtp_base_depayload_push
    at gstrtpbasedepayload.c line 607
  • #16 gst_rtp_base_depayload_chain
    at gstrtpbasedepayload.c line 355
  • #17 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #18 gst_pad_chain_list_default
    at gstpad.c line 3850
  • #19 gst_pad_chain_data_unchecked
    at gstpad.c line 3733
  • #20 gst_pad_push_data
    at gstpad.c line 3948
  • #21 gst_pad_push_list
    at gstpad.c line 4086
  • #22 gst_rtp_base_payload_push_list
  • #23 gst_rtp_mp4v_pay_flush
    at gstrtpmp4vpay.c line 295
  • #24 gst_rtp_mp4v_pay_handle_buffer
    at gstrtpmp4vpay.c line 535
  • #25 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #26 gst_pad_push_data
    at gstpad.c line 3948
  • #27 gst_pad_push
    at gstpad.c line 4051
  • #28 gst_video_encoder_finish_frame
    at gstvideoencoder.c line 1940
  • #29 gst_ffmpegvidenc_handle_frame
    at gstavvidenc.c line 623
  • #30 gst_video_encoder_chain
    at gstvideoencoder.c line 1352
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 3718
  • #32 gst_pad_push_data
    at gstpad.c line 3948
  • #33 gst_pad_push
    at gstpad.c line 4051
  • #34 gst_base_src_loop
    at gstbasesrc.c line 2726
  • #35 gst_task_func
    at gsttask.c line 316
  • #36 g_thread_pool_thread_proxy
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthreadpool.c line 309
  • #37 g_thread_proxy
    at /tmp/buildd/glib2.0-2.36.3/./glib/gthread.c line 798
  • #38 start_thread
    at pthread_create.c line 311
  • #39 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 113

Comment 4 Sebastian Dröge (slomo) 2013-07-09 09:43:03 UTC
One problem here is that avdec_mpeg4 needs to have mpeg4videoparse in front of it. If you use decodebin that will automatically happen, but it should probably be enforced via the caps of avdec.
Comment 5 Sebastian Dröge (slomo) 2013-07-09 09:57:12 UTC
With the parsers added and this commit it doesn't crash or give warnings anymore at least

commit 9e9d2ce0989e238b2fbc2893104453dc2bb76228
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Tue Jul 9 11:53:07 2013 +0200

    videomixer: Fix negotiation with 0/1 framerates
    
    https://bugzilla.gnome.org/show_bug.cgi?id=703743



Still only shows the first frame ever.
Comment 6 Sebastian Dröge (slomo) 2013-07-09 10:44:10 UTC
commit 3d0988f46fea15bcd5352c281b0461a45183469e
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Tue Jul 9 12:42:17 2013 +0200

    videomixer: Fix handling of buffers without a duration
    
    We'll have to pop buffer from collectpads and store it
    internally only to get the timestamp of the next buffer.
    If we continue to keep it in collectpads, no new buffer
    to calculate the end time will ever arrive.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=703743