communication between multiple gstreamer pipeline/apps

timothe jahan timothejahan at gmail.com
Sat Mar 26 05:43:23 PDT 2011


Hi,
oggparse and typefind seems indeed to solve that first issue, but a new one
appears.
the new command is:
*gst-launch-0.10 --gst-debug-level=2 filesrc location=./testfile.ogg !
oggparse ! tcpserversink port=1234*
now it fails as follow:
*Définition du pipeline à PAUSED...*
*Le pipeline est en phase de PREROLL...*
*Le pipeline a terminé la phase PREROLL...*
*Passage du pipeline à la phase PLAYING...*
*New clock: GstSystemClock*
*EOS reçu de l'élément « pipeline0 ».*
*Execution ended after 8509877 ns.*
*Définition du pipeline à PAUSED...*
*Définition du pipeline à READY (prêt)...*
*Définition du pipeline à NULL...*
*0:00:00.115279949 16709 0x8069060 WARN           multifdsink
gstmultifdsink.c:2291:gst_multi_fd_sink_handle_clients:<tcpserversink0> wait
failed: Périphérique ou ressource occupé (16)*
*Libération du pipeline (FREE)...*
For some reason it seems to get an end of stream from the beginning. To be
sure my file is not wrongly formed I tried with the bunny example (
http://en.wikipedia.org/wiki/File:Big_Buck_Bunny_extract.ogg) but same.

If I set the debug level to 3 I can see following lines (amongst many others
!!):
*0:00:00.130223762 16923 0x804e050 INFO             GST_EVENT
gstevent.c:942:gst_event_new_latency: creating latency event
0:00:00.000000000*
*0:00:00.130298217 16923 0x804e050 INFO                   bin
gstbin.c:2069:do_bin_latency:<pipeline0> configured latency of
0:00:00.000000000*
*0:00:00.144386914 16923 0x8157b38 INFO               basesrc
gstbasesrc.c:2056:gst_base_src_loop:<filesrc0> pausing after
gst_base_src_get_range() = unexpected*
*0:00:00.144424840 16923 0x8157b38 INFO              GST_PADS
gstpad.c:2933:gst_pad_event_default_dispatch:<oggparse0:sink> Sending event
0x804fd68 (eos) to all internally linked pads*
*0:00:00.144473103 16923 0x804e050 INFO            GST_STATES
gstelement.c:2148:gst_element_continue_state:<tcpserversink0> completed
state change to PLAYING*
*0:00:00.144490773 16923 0x804e050 INFO            GST_STATES
gstelement.c:2161:gst_element_continue_state:<tcpserversink0> posting
state-changed PAUSED to PLAYING*
*0:00:00.144526744 16923 0x804e050 INFO            GST_STATES
gstbin.c:2191:gst_bin_change_state_func:<pipeline0> child 'tcpserversink0'
changed state to 4(PLAYING) successfully*
*0:00:00.144548256 16923 0x804e050 INFO            GST_STATES
gstelement.c:2148:gst_element_continue_state:<oggparse0> completed state
change to PLAYING*
*0:00:00.144561666 16923 0x804e050 INFO            GST_STATES
gstelement.c:2161:gst_element_continue_state:<oggparse0> posting
state-changed PAUSED to PLAYING*
*0:00:00.144586392 16923 0x804e050 INFO            GST_STATES
gstbin.c:2191:gst_bin_change_state_func:<pipeline0> child 'oggparse0'
changed state to 4(PLAYING) successfully*
*0:00:00.144606926 16923 0x804e050 INFO            GST_STATES
gstelement.c:2148:gst_element_continue_state:<filesrc0> completed state
change to PLAYING*
*0:00:00.144626203 16923 0x804e050 INFO            GST_STATES
gstelement.c:2161:gst_element_continue_state:<filesrc0> posting
state-changed PAUSED to PLAYING*
*0:00:00.144646039 16923 0x804e050 INFO            GST_STATES
gstbin.c:2191:gst_bin_change_state_func:<pipeline0> child 'filesrc0' changed
state to 4(PLAYING) successfully*
*0:00:00.144663640 16923 0x804e050 INFO            GST_STATES
gstelement.c:2148:gst_element_continue_state:<pipeline0> completed state
change to PLAYING*
*0:00:00.144676422 16923 0x804e050 INFO            GST_STATES
gstelement.c:2161:gst_element_continue_state:<pipeline0> posting
state-changed PAUSED to PLAYING*
*New clock: GstSystemClock*
*EOS reçu de l'élément « pipeline0 ».*
*Execution ended after 102184 ns.*
*Définition du pipeline à PAUSED...*

So it seems that the oggparse (or typefind for the other case) sends the EOS
before the end of the file.
What could generate that ?

Many thanks,
Timothé


On Sat, Mar 26, 2011 at 1:15 PM, Tim-Philipp Müller <t.i.m at zen.co.uk> wrote:

> On Sat, 2011-03-26 at 10:43 +0100, timothe jahan wrote:
>
> Hi,
>
> > Thank you for the fast answer, however I have the impression that
> > there is a misunderstanding.
> > The command that fails is the server one, meaning :
> > gst-launch filesrc location=./testfile.ogg ! tcpserversink port=1234
>
> Ah, sorry, you're right. Should've been obvious from the error message,
> but I just saw 'not-negotiated' and started going after the usual
> suspects, completely missing the 'gstmultifdsink.c(2506):
> gst_multi_fd_sink_render (): /pipeline0/tcpserversink0: Received first
> buffer without caps set' bit.
>
> So tcpserversink wants caps set on buffers fed to it. Generally the
> easiest way to do that would be to put a typefind element after filesrc.
>
> In this case, however, you probably want to use an oggparse element
> after filesrc. This should not only put proper caps with stream headers
> on the buffers, but also set timestamps on buffers (in case you want to
> throttle sending the data).
>
> Cheers
>  -Tim
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110326/745958ad/attachment-0001.htm>


More information about the gstreamer-devel mailing list