"Internal data stream error" with uridecodebin

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

"Internal data stream error" with uridecodebin

Sergey Vlasov
Hello,

After setting uri property of uridecodebin for the second time I get "Internal data stream error" right after calling play(), but it works fine with playbin2. What am I missing? There is my code example:

static GstElement *playbin;
#define USE_DECODEBIN

void init()
{
[..]
#ifdef USE_DECODEBIN
playbin = gst_parse_launch("uridecodebin name=my-decodebin ! autoaudiosink", NULL);
#else
playbin = gst_element_factory_make("playbin2", NULL);
#endif
[..]
}

void setMedia(char *file)
{
[..]
gchar *uri = g_filename_to_uri(file, NULL, NULL);
#ifdef USE_DECODEBIN
GstElement *decodebin = gst_bin_get_by_name(GST_BIN(playbin), "my-decodebin");
g_object_set(decodebin, "uri", uri, NULL);
gst_object_unref(decodebin);
#else
g_object_set(playbin, "uri", uri, NULL);
#endif
[..]
}

void play()
{
gst_element_set_state(playbin, GST_STATE_PLAYING);
}

void stop()
{
gst_element_set_state(playbin, GST_STATE_NULL);
}

void main()
{
[..]
init();
setMedia("1.mp3");
play();
[..]
stop();
setMedia("2.mp3");
play();
[..]
}

--
Sergey

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

Re: "Internal data stream error" with uridecodebin

Marco Ballesio
Hi,

can you post some output collected after exporting GST_DEBUG=2?

If lots of lines, please attach as a .txt or post to pastebin.

Regards,
Marco

On Wed, Feb 23, 2011 at 3:35 PM, Sergey Vlasov <[hidden email]> wrote:

> Hello,
> After setting uri property of uridecodebin for the second time I get
> "Internal data stream error" right after calling play(), but it works fine
> with playbin2. What am I missing? There is my code example:
> static GstElement *playbin;
> #define USE_DECODEBIN
> void init()
> {
> [..]
> #ifdef USE_DECODEBIN
> playbin = gst_parse_launch("uridecodebin name=my-decodebin ! autoaudiosink",
> NULL);
> #else
> playbin = gst_element_factory_make("playbin2", NULL);
> #endif
> [..]
> }
> void setMedia(char *file)
> {
> [..]
> gchar *uri = g_filename_to_uri(file, NULL, NULL);
> #ifdef USE_DECODEBIN
> GstElement *decodebin = gst_bin_get_by_name(GST_BIN(playbin),
> "my-decodebin");
> g_object_set(decodebin, "uri", uri, NULL);
> gst_object_unref(decodebin);
> #else
> g_object_set(playbin, "uri", uri, NULL);
> #endif
> [..]
> }
> void play()
> {
> gst_element_set_state(playbin, GST_STATE_PLAYING);
> }
> void stop()
> {
> gst_element_set_state(playbin, GST_STATE_NULL);
> }
> void main()
> {
> [..]
> init();
> setMedia("1.mp3");
> play();
> [..]
> stop();
> setMedia("2.mp3");
> play();
> [..]
> }
> --
> Sergey
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel