[gst-devel] rtspsrc demo transmition problem, need help
Erwan Masson
masson.erwan1 at gmail.com
Thu May 10 10:59:45 CEST 2007
Hi,
use gst-inspect rstpsrc.
You will see that the rstpsrc pad is a sometimes pad, so it can not be
linked at the beginning. You need a add pad callback to link your rstpsrc
and queue.
You should also test the return function, it can help to debug, (see
gst_element_link_many for example).
2007/5/10, 聂巍 <kanzakiv at gmail.com>:
>
> Hi all
>
> I am writing a demo to act as the following command line
>
> gst-launch rtspsrc location = " rtsp://192.168.1.100/1.mp3" ! queue !
> fakesink
>
> but when I compiled and ran the following helloworld.c
>
> [root at localhost / ] # helloworld rtsp://192.168.1.100/1.mp3
>
> it says
>
> """""""""""""""""""""""
> ERROR: from element /pipeline/rtp_disk_source/udpsrc2: Internal data flow
> error.
> Additional debug info:
> gstbasesrc.c(1614): gst_base_src_loop ():
> /pipeline/rtp_disk_source/udpsrc2:
> streaming task paused, reason not-linked (-1)
>
> """""""""""""""""""""""
>
> the gst-launch command line works just fine, but I don't know why the demo
> can't do it
>
> does anybody know this ?
>
> thank you very much
>
> ------------------------------------------------------------
>
> // helloworld.c
>
> #include <stdlib.h>
> #include <gst/gst.h>
>
> static void
> event_loop (GstElement * pipe)
> {
> GstBus *bus;
> GstMessage *message = NULL;
>
> bus = gst_element_get_bus (GST_ELEMENT (pipe));
>
> while (TRUE) {
> message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
>
> g_assert (message != NULL);
>
> switch (message->type) {
> case GST_MESSAGE_EOS:
> gst_message_unref (message);
> return;
> case GST_MESSAGE_WARNING:
> case GST_MESSAGE_ERROR:{
> GError *gerror;
> gchar *debug;
>
> gst_message_parse_error (message, &gerror, &debug);
> gst_object_default_error (GST_MESSAGE_SRC (message), gerror,
> debug);
> gst_message_unref (message);
> g_error_free (gerror);
> g_free (debug);
> return;
> }
> default:
> gst_message_unref (message);
> break;
> }
> }
> }
>
> int main (int argc, char *argv[])
> {
> GstElement *bin, *filesrc , *fakesink, *queue;
>
>
> gst_init (&argc, &argv);
>
> if (argc != 2) {
> g_print ("usage: %s <rtsp mp3 file>\n", argv[0]);
> exit (-1);
> }
>
> /* create a new bin to hold the elements */
> bin = gst_pipeline_new ("pipeline");
> g_assert (bin);
>
> /* create a disk reader */
> filesrc = gst_element_factory_make ("rtspsrc", "rtp_disk_source");
> if(!filesrc)
> {
> printf("could not create \"rtspsrc\" element!");
> return -1;
> }
> g_object_set (G_OBJECT (filesrc), "location", argv[1] , NULL);
> printf("argv[1] is %s\n",argv[1]);
>
> /* and an audio sink */
> fakesink = gst_element_factory_make ("fakesink","fake_sink");
>
> queue = gst_element_factory_make ("queue","queue");
>
> /* add objects to the main pipeline */
> gst_bin_add_many (GST_BIN (bin),filesrc, queue, fakesink,NULL);
>
> /* link the elements */
> gst_element_link_many (filesrc, queue, fakesink,NULL);
>
> /* start playing */
> gst_element_set_state (bin, GST_STATE_PLAYING);
>
> /* Run event loop listening for bus messages until EOS or ERROR */
> event_loop (bin);
>
> /* stop the bin */
> gst_element_set_state (bin, GST_STATE_NULL);
>
> exit (0);
> }
>
> ERROR: from element /pipeline/rtp_disk_source/udpsrc2: Internal data flow
> error.
> Additional debug info:
> gstbasesrc.c(1614): gst_base_src_loop ():
> /pipeline/rtp_disk_source/udpsrc2:
> streaming task paused, reason not-linked (-1)
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20070510/9c154a63/attachment.htm>
More information about the gstreamer-devel
mailing list