After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 608484 - [playbin2] problem with redirect and reset to READY
[playbin2] problem with redirect and reset to READY
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal blocker
: 0.10.26
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 608466 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2010-01-29 20:19 UTC by Tim-Philipp Müller
Modified: 2010-02-01 14:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test-playbin2.c, compile with libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-0.10` -o test-playbin2 test-playbin2.c -Wall -ggdb (2.40 KB, application/octet-stream)
2010-01-29 20:19 UTC, Tim-Philipp Müller
  Details
possible patch (1.42 KB, patch)
2010-02-01 10:48 UTC, Wim Taymans
accepted-commit_now Details | Review

Description Tim-Philipp Müller 2010-01-29 20:19:25 UTC
Created attachment 152602 [details]
test-playbin2.c, compile with libtool --mode=link gcc `pkg-config --cflags --libs gstreamer-0.10` -o test-playbin2 test-playbin2.c -Wall -ggdb

The following doesn't seem to work right:

 - create playbin2
 - set http URI
 - get .mov file with redirect
 - set playbin2 back to READY
 - flush bus
 - set redirect rtsp URI
 - set to PLAYING

I get an internal flow error (not-negotiated, apparrently because the jitterbuffer tries to push rtp packets onto a qtdemux via typefind), others (philn) report nothing happening with the pipeline constantly going back and forth from PLAYING to PAUSED state (in totem at least).

Test case attached.
Comment 1 Wim Taymans 2010-02-01 10:20:49 UTC
Easy fix, we need to clear some properties on the cached decodebin2. Patch follows..
Comment 2 Wim Taymans 2010-02-01 10:48:28 UTC
Created attachment 152716 [details] [review]
possible patch

Clean up the caps and sink-caps properties when decodebin2 is reused because else the typefinding could run with old settings.
Comment 3 Bastien Nocera 2010-02-01 11:33:21 UTC
*** Bug 608466 has been marked as a duplicate of this bug. ***
Comment 4 Tim-Philipp Müller 2010-02-01 11:55:29 UTC
Review of attachment 152716 [details] [review]:

Cool, thanks for the fix, please commit (btw, there's a typo in the commit message: "chaged").

::: gst/playback/gsturidecodebin.c
@@ +1181,3 @@
       gst_bin_remove (GST_BIN_CAST (bin), decoder);
+      /* restore some properties we might have changed */
+      g_object_set (G_OBJECT (decoder), "sink-caps", NULL, NULL);

FWIW, g_object_set() takes a gpointer as first argument, so the G_OBJECT cast is not strictly necessary here.
Comment 5 Wim Taymans 2010-02-01 14:03:08 UTC
commit fd755182b17f381254058cf747d287b1a8a03ea6
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Mon Feb 1 11:44:34 2010 +0100

    uridecodebin: clean up decodebin properties
    
    When reusing a decodebin2 element, clear the properties we might have changed,
    to their default values or else we might end up with old configuration.
    
    Fixes #608484