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 702502 - [regression] mpeg2dec: gst_segment_to_stream_time: assertion `segment->format == format' failed
[regression] mpeg2dec: gst_segment_to_stream_time: assertion `segment->forma...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal blocker
: 1.1.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 699972 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-06-17 18:38 UTC by Tim-Philipp Müller
Modified: 2013-07-11 08:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
videodecoder: Fix drop frame handling at startup (1.15 KB, patch)
2013-06-18 07:27 UTC, Edward Hervey
committed Details | Review

Description Tim-Philipp Müller 2013-06-17 18:38:30 UTC
No idea where this comes from, but it's a regression:


$ G_DEBUG=fatal_warnings gst-launch-1.0 filesrc location= /home/tpm/bbcnews.m2t ! tsdemux ! mpegvideoparse ! mpeg2dec ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...

(gst-launch-1.0:25213): GStreamer-CRITICAL **: gst_segment_to_stream_time: assertion `segment->format == format' failed

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 140737266902784 (LWP 25219)

  • #0 g_logv
    at gmessages.c line 981
  • #1 g_log
    at gmessages.c line 1010
  • #2 g_return_if_fail_warning
    at gmessages.c line 1019
  • #3 gst_segment_to_stream_time
    at gstsegment.c line 407
  • #4 gst_video_decoder_drop_frame
    at gstvideodecoder.c line 2381
  • #5 handle_slice
    at gstmpeg2dec.c line 913
  • #6 gst_mpeg2dec_handle_frame
    at gstmpeg2dec.c line 1029
  • #7 gst_video_decoder_decode_frame
    at gstvideodecoder.c line 2744
  • #8 gst_video_decoder_chain_forward
    at gstvideodecoder.c line 1756
  • #9 gst_video_decoder_chain
    at gstvideodecoder.c line 2003
  • #10 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #11 gst_pad_push_data
    at gstpad.c line 3938
  • #12 gst_pad_push
    at gstpad.c line 4041
  • #13 gst_base_parse_push_frame
    at gstbaseparse.c line 2210
  • #14 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 2032
  • #15 gst_base_parse_finish_frame
    at gstbaseparse.c line 2336
  • #16 gst_mpegv_parse_handle_frame
    at gstmpegvideoparse.c line 671
  • #17 gst_base_parse_handle_buffer
    at gstbaseparse.c line 1886
  • #18 gst_base_parse_chain
    at gstbaseparse.c line 2755
  • #19 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #20 gst_pad_push_data
    at gstpad.c line 3938
  • #21 gst_pad_push
    at gstpad.c line 4041
  • #22 gst_single_queue_push_one
    at gstmultiqueue.c line 1059
  • #23 gst_multi_queue_loop
    at gstmultiqueue.c line 1307
  • #24 gst_task_func
    at gsttask.c line 316
  • #25 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #26 g_thread_proxy
    at gthread.c line 798
  • #27 start_thread
    at pthread_create.c line 304
  • #28 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #29 ??
  • #3 gst_segment_to_stream_time
    at gstsegment.c line 407
$1 = {flags = GST_SEGMENT_FLAG_NONE, rate = 1, applied_rate = 1, format = GST_FORMAT_UNDEFINED, base = 0, offset = 0, start = 0, stop = 18446744073709551615, time = 0, position = 0, duration = 18446744073709551615, _gst_reserved = {
    0x0, 0x0, 0x0, 0x0}}
(gdb) print format
$2 = GST_FORMAT_TIME
Comment 1 Tim-Philipp Müller 2013-06-17 18:39:18 UTC
Sample file at http://people.freedesktop.org/~tpm/samples/bbcnews2.m2t
Comment 2 Edward Hervey 2013-06-18 07:27:20 UTC
Created attachment 247093 [details] [review]
videodecoder: Fix drop frame handling at startup

In the unlikely case that the decoder drops a frame before the first
input frame is outputted, use the input segment (since it wasn't
carried over to the output segment yet)
Comment 3 Tim-Philipp Müller 2013-06-18 09:18:03 UTC
I wonder what it is dropping though that it didn't drop before? The only change in this area is in the mpegvideoparse from what I remember, most notably:


commit f1a6d84a6c4595a94c5654131a74b6a979f53a04
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Wed May 1 17:36:47 2013 +0100

    mpegvideoparse: don't announce incomplete source caps
    
    Don't send any source caps yet if we're still in
    drop-buffers-until-we-get-a-sequence-header mode.
    
    Fixes transmuxing of many MPEG-TS/PS streams into
    formats which require things like width, height or
    codec_data on the input caps.
    
    Also fixes issues when using playbin with decoder
    sinks that want width/height etc.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=695879
Comment 4 Sebastian Dröge (slomo) 2013-06-18 11:12:22 UTC
Comment on attachment 247093 [details] [review]
videodecoder: Fix drop frame handling at startup

Looks sensible, also there are at least 2 other bugs around this problem that might be related or the same or something completely different causing it :)
Comment 5 Sebastian Dröge (slomo) 2013-06-18 11:13:37 UTC
The other bugs being bug #701391, bug #699972 and bug #700537
Comment 6 Christian Fredrik Kalager Schaller 2013-06-21 12:29:33 UTC
I got this error when trying to transcode from DVD in Transmageddon. Applying the patch makes the error go away.
Comment 7 Edward Hervey 2013-06-21 13:36:04 UTC
commit 65624afd8f454986d90fe56337589a24cdddd9ca
Author: Edward Hervey <edward@collabora.com>
Date:   Mon Jun 17 08:58:13 2013 +0200

    videodecoder: Fix drop frame handling at startup
    
    In the unlikely case that the decoder drops a frame before the first
    input frame is outputted, use the input segment (since it wasn't
    carried over to the output segment yet)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=702502
Comment 8 Tim-Philipp Müller 2013-06-21 13:43:25 UTC
Did anyone look at why it is dropping stuff now that it didn't drop before?
Comment 9 Nicolas Dufresne (ndufresne) 2013-06-21 14:33:18 UTC
We have made some changes in the segment handling code, so maybe that was the source.
Comment 10 Sebastian Dröge (slomo) 2013-07-11 08:03:18 UTC
*** Bug 699972 has been marked as a duplicate of this bug. ***