[gstreamer-bugs] [Bug 328531] matroskamuxer goes Streamer-CRITICAL **: gst_segment_set_newsegment

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Wed Jan 25 16:59:18 PST 2006


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=328531
 GStreamer | gst-plugins-good | Ver: 0.10.2





------- Comment #5 from John Janecek  2006-01-26 00:59 UTC -------
(In reply to comment #4)
> can you resubmit, but this time also give the backtrace :) It doesn't seem to
> first the same error as in bug description.
> 
Not sure how to do backtrace :( 
I set my env to 
G_DEBUG=fatal_warnings

then i run gst-launch-0.10 in gdb
with filesrc location=ccc.ogg ! decodebin name=decoder decoder. ! queue!
audioconvert ! vorbisenc ! matroskamux ! filesink location=rip.mkv

gdb catches the critical error

I go bt in gdb

#0  g_logv (log_domain=0x10058090 "GStreamer", log_level=G_LOG_LEVEL_CRITICAL,
format=0x4ffb41 "%s: assertion `%s' failed", args1=0x1def734
"\0269\006\020µ8\006\020\004") at gmessages.c:489
#1  0x004d0446 in g_log (log_domain=0x10058090 "GStreamer",
log_level=G_LOG_LEVEL_CRITICAL, format=0x4ffb41 "%s: assertion `%s' failed") at
gmessages.c:517
#2  0x004d049a in g_return_if_fail_warning (log_domain=0x10058090 "GStreamer",
pretty_function=0x10063916 "gst_segment_set_newsegment", expression=0x100638b5
"segment->format == format") at gmessages.c:532
#3  0x01423e73 in _fu37____gst_debug_enabled () at gstbasesink.c:611
#4  0x01424c37 in _fu46____gst_debug_enabled () at gstbasesink.c:819
#5  0x10029edd in gst_pad_send_event (pad=0x12989f0, event=0x239b5d0) at
gstpad.c:3672
#6  0x01a53b88 in _fu22____gst_debug_enabled () at matroska/ebml-write.c:390
#7  0x01a540e1 in gst_ebml_write_master_finish (ebml=0x12bc358, startpos=4) at
matroska/ebml-write.c:624
#8  0x01a545c4 in gst_ebml_write_header (ebml=0x12bc358, doctype=0x1a66c67
"matroska", version=1) at matroska/ebml-write.c:752
#9  0x01a5f5e0 in gst_matroska_mux_start (mux=0x12bb328) at
matroska/matroska-mux.c:1012
#10 0x01a60df0 in _fu114____gst_debug_enabled () at
matroska/matroska-mux.c:1494
#11 0x0142ee71 in gst_collect_pads_is_collected (pads=0x12bc008, ret=0x1defb30)
at gstcollectpads.c:590
#12 0x0142f37b in _fu205____gst_debug_enabled () at gstcollectpads.c:704
#13 0x10028b88 in gst_pad_chain (pad=0x12bcdd0, buffer=0x2733708) at
gstpad.c:3155
#14 0x100292d3 in gst_pad_push (pad=0x1288b10, buffer=0x2733708) at
gstpad.c:3254
#15 0x0177510a in gst_vorbisenc_push_buffer (vorbisenc=0x1, buffer=0x240608) at
vorbisenc.c:829
#16 0x017755c6 in _fu38____gst_debug_enabled () at vorbisenc.c:971
#17 0x10028b88 in gst_pad_chain (pad=0x1288808, buffer=0x2403990) at
gstpad.c:3155
#18 0x100292d3 in gst_pad_push (pad=0x12a8ed8, buffer=0x2403990) at
gstpad.c:3254
#19 0x0142d959 in gst_base_transform_chain (pad=0x1261da0, buffer=0x2403990) at
gstbasetransform.c:1302
#20 0x10028b88 in gst_pad_chain (pad=0x1261da0, buffer=0x2403990) at
gstpad.c:3155
#21 0x100292d3 in gst_pad_push (pad=0x1286260, buffer=0x2403990) at
gstpad.c:3254
#22 0x0135d94b in _fu137____gst_debug_enabled () at gstqueue.c:808
#23 0x1003aa89 in gst_task_func (task=0x12be968, tclass=0x12be7b0) at
gsttask.c:186
#24 0x004e3a99 in g_thread_pool_thread_proxy (data=0x12be858) at
gthreadpool.c:114
#25 0x004e20b6 in g_thread_create_proxy (data=0x12beab8) at gthread.c:564
#26 0x003f1e25 in libgmodule-2!g_module_build_path () from
C:\root\local\bin\libgthread-2.0-0.dll
#27 0x77c3a3b0 in msvcrt!_endthreadex () from C:\WINDOWS\system32\msvcrt.dll
#28 0x012beaf0 in ?? ()
#29 0x7c96e0f0 in ntdll!RtlpNtMakeTemporaryKey () from ntdll.dll
#30 0x00cf0608 in ?? ()
#31 0x012beb18 in ?? ()
#32 0x00000000 in ?? () from 
#33 0x01deff8c in ?? ()
#34 0x804fa881 in ?? ()
#35 0x01deffdc in ?? ()
#36 0x77c35c94 in msvcrt!_except_handler2 () from
C:\WINDOWS\system32\msvcrt.dll
#37 0x7c80b50b in KERNEL32!GetModuleFileNameA () from
C:\WINDOWS\system32\kernel32.dll
#38 0x012beb18 in ?? ()
#39 0x7c96e0f0 in ntdll!RtlpNtMakeTemporaryKey () from ntdll.dll
#40 0x00cf0608 in ?? ()
#41 0x012beb18 in ?? ()
#42 0x7ffdc000 in ?? ()
#43 0x863c0600 in ?? ()
#44 0x01deffc0 in ?? ()
#45 0x86300570 in ?? ()
#46 0xffffffff in ?? ()
#47 0x7c8399f3 in KERNEL32!FindAtomW () from C:\WINDOWS\system32\kernel32.dll
#48 0x7c80b518 in KERNEL32!GetModuleFileNameA () from
C:\WINDOWS\system32\kernel32.dll
#49 0x00000000 in ?? () from 
#50 0x00000000 in ?? () from 
#51 0x00000000 in ?? () from 
#52 0x77c3a341 in msvcrt!_endthreadex () from C:\WINDOWS\system32\msvcrt.dll
#53 0x012beb18 in ?? ()
#54 0x00000000 in ?? () from 
#55 0x00905a4d in libgobject-2!g_object_newv () from
C:\root\local\bin\libgobject-2.0-0.dll

Error: Previous frame inner to this frame (corrupt stack?)

when i climb the stack

Error is being triggered in gstbasesink.c
604             /* the newsegment event is needed to bring the buffer
timestamps to the
        605              * stream time and to drop samples outside of the
playback segment. */
-       606             gst_event_parse_new_segment (event, &update, &rate,
&format,
        607                 &start, &stop, &time);
        608     
-       609             basesink->have_newsegment = TRUE;
        610     
-       611             gst_segment_set_newsegment (&basesink->segment, update,
rate, format,
        612                 start, stop, time); <----------- trigger
        613     
-       614             GST_DEBUG_OBJECT (basesink,
        615                 "received NEWSEGMENT %" GST_TIME_FORMAT " -- %"
        616                 GST_TIME_FORMAT ", time %" GST_TIME_FORMAT ", accum
%"
        617                 GST_TIME_FORMAT,
        618                 GST_TIME_ARGS (basesink->segment.start),
        619                 GST_TIME_ARGS (basesink->segment.stop),
        620                 GST_TIME_ARGS (basesink->segment.time),
        621                 GST_TIME_ARGS (basesink->segment.accum));
        622             break;
        623           }

This is happening because on about line 615 
format = GST_FORMAT_BYTES

segment->format = GST_FORMAT_TIME (it got set before somehow ? )

The place where it is trigger in matroska is in ebml-write.c 
386     
-       387       seek = gst_event_new_new_segment (FALSE, 1.0,
GST_FORMAT_BYTES, pos, -1, 0);
-       388       peer_pad = GST_PAD_PEER (ebml->srcpad);
-       389       if (peer_pad) {
-       390         gst_pad_send_event (peer_pad, seek); <----- trigger
        391       } else {
-       392         GST_WARNING_OBJECT (ebml, "Can not seek: no peer pad");
        393       }
        394     
-       395       ebml->pos = pos;

I am running windowsxp (is that a factor ?)
oggfile ccc.ogg has both video and audio in it, but when i replace matroskamux
with oggmux it works fine.

It seems to me as in the basesink->segment is being set or initialize in
GST_FORMAT_TIME, then matroska comes allong and trys to set it in
GST_FORMAT_BYTES and it gets upset :(.

Anyway I hope the info is helpful since I am not sure what u mean by backtrace.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list