Output Selectors, Encoders, avimux, and filesinks...Part1

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Output Selectors, Encoders, avimux, and filesinks...Part1

somnyrds
I have tried to cull the archives, but I am not seeing exactly what I need to see...

1) I have a c-program that 'sorta' works that can be reduced to this:

       video_source->output-selector- - - - >video encoder->avimux->filesink
                                                     \
                                                      \
                                                       v
                                                     Fakesink

The selector toggles every 5 seconds - so I see 5 seconds worth in the file, and then
another 5 seconds (5 seconds later)...but, I am getting this:

   GStreamer-CRITICAL **: gst_segment_set_newsegment_full: assertion `segment->format == format' failed

Why am I getting this?

Tom

ps: Part (2) will be coming soon - and it involves switching filesink locations (filename) every time it switches to live video.
Reply | Threaded
Open this post in threaded view
|

Re: Output Selectors, Encoders, avimux, and filesinks...Part1

somnyrds
I should note that this is with Gstreamer-0.10.35...

tom
Reply | Threaded
Open this post in threaded view
|

Re: Output Selectors, Encoders, avimux, and filesinks...Part1

Nicolas Dufresne
In reply to this post by somnyrds
Le vendredi 30 novembre 2012 à 15:23 -0800, somnyrds a écrit :
>    GStreamer-CRITICAL **: gst_segment_set_newsegment_full: assertion
> `segment->format == format' failed

You could make your app abort on this assertion by setting
G_DEBUG=fatal_criticals. This way you can use GDB and figure-out where
is that generated, and why.

Nicolas

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Output Selectors, Encoders, avimux, and filesinks...Part1

somnyrds
OK - I set the environment G_DEBUG=fatal_criticals...and I simplified my use case...
I have uploaded my use-case file (vc.c):

vc.c

Below is the gdb dump...

You will notice in the output that right before you I get the critical error, I have just
switched the output selector to the fakesink (from the 'live' video source - which is
a live video camera capture)...

And, in the long run, I want to change the name of the output file after I'm done
recording it and switched to the fakesink. FYI, my pipe has an encoder/avimuxer
in between - and I need to send an EOS to the muxer - so it will write the final file
 header info the file (before I change the filesink's location...)

Thanks for any/all advice...

Sincerely,

Tom
------------------------ start gdb dump of critical error----------
root@freescale ~$ gdb vc          
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "arm-none-linux-gnueabi"...
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /root/vc
[Thread debugging using libthread_db enabled]
[New process 2696]
[New Thread 717320192 (LWP 2696)]
MFW_GST_V4LSRC_PLUGIN 3.0.1 build on Nov 20 2012 15:09:15.

In MVC: mxc_v4l_open
   device name is Mxc Camera
[New Thread 743933040 (LWP 2699)]
Running...
Waiting for End...
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <stream-status>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <stream-status>
Got UnHandled message: <new-clock>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
Got UnHandled message: <state-changed>
--->SW osel:src0 to osel:src1

GStreamer-CRITICAL **: gst_segment_set_newsegment_full: assertion `segment->format == format' failed
aborting...

Program received signal SIGABRT, Aborted.
[Switching to Thread 743933040 (LWP 2699)]
0x2af488d4 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x2af488d4 in raise () from /lib/libc.so.6
#1  0x2af49cf4 in abort () from /lib/libc.so.6
#2  0x2ae89188 in IA__g_logv (log_domain=0x2acff130 "GStreamer",
    log_level=<value optimized out>, format=0x0, args1={__ap = 0x2c577a34})
    at gmessages.c:657
#3  0x2ae89200 in IA__g_log (log_domain=<value optimized out>,
    log_level=<value optimized out>,
    format=0x2aed9024 "%s: assertion `%s' failed") at gmessages.c:657
#4  0x2ae89450 in IA__g_return_if_fail_warning (
    log_domain=0x2acff130 "GStreamer",
    pretty_function=0x2ad11ed4 "gst_segment_set_newsegment_full",
    expression=0x2ad11f74 "segment->format == format") at gmessages.c:657
#5  0x2b11507c in gst_base_sink_configure_segment (basesink=0xac018,
    event=<value optimized out>, segment=0xae008) at gstbasesink.c:3576
#6  0x2b11ee80 in gst_base_sink_event (pad=0xab000, event=0xb1180)
    at gstbasesink.c:3576
#7  0x2acb1788 in gst_pad_send_event (pad=0xab000, event=0xb1180)
    at gstpad.c:249
#8  0x2acb20ac in gst_pad_push_event (pad=0xab3e8, event=0xb1180)
    at gstpad.c:249
#9  0x2b0cc014 in gst_output_selector_chain (pad=<value optimized out>,
    buf=0xb70a8) at gstoutputselector.c:333
#10 0x2acb0620 in gst_pad_push (pad=0xab0c8, buffer=0xb70a8) at gstpad.c:249
---Type <return> to continue, or q <return> to quit---
#11 0x2b125088 in gst_base_src_loop (pad=0xab0c8) at gstbasesrc.c:1785
#12 0x2acdc6e0 in gst_task_func (task=0xb8050) at gsttask.c:207
#13 0x2acddbe0 in default_func (tdata=<value optimized out>,
    pool=<value optimized out>) at gsttaskpool.c:70
#14 0x2aea985c in g_thread_pool_thread_proxy (data=<value optimized out>)
    at gthreadpool.c:726
#15 0x2aea757c in g_thread_create_proxy (data=0xb7c40) at gthread.c:180
#16 0x2aae0b10 in start_thread () from /lib/libpthread.so.0
#17 0x2afdf958 in clone () from /lib/libc.so.6