[gst-cvs] gst-plugins-base: playbin2: forward duration query duration during group switch if no cached duration

Mark Nauwelaerts mnauw at kemper.freedesktop.org
Fri Apr 30 04:39:49 PDT 2010


Module: gst-plugins-base
Branch: master
Commit: db4ccd86101e408bec622d7c7558b56876e9bb49
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=db4ccd86101e408bec622d7c7558b56876e9bb49

Author: Mark Nauwelaerts <mark.nauwelaerts at collabora.co.uk>
Date:   Fri Apr 30 13:36:59 2010 +0200

playbin2: forward duration query duration during group switch if no cached duration

... such as during first group setup.

Fixes #616396.

---

 gst/playback/gstplaybin2.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index 3b34fcb..44629b9 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -2072,11 +2072,15 @@ gst_play_bin_query (GstElement * element, GstQuery * query)
           break;
         }
       }
-      GST_DEBUG_OBJECT (playbin,
-          "Taking cached duration because of pending group switch: %d", ret);
-      GST_SOURCE_GROUP_UNLOCK (group);
-      GST_PLAY_BIN_UNLOCK (playbin);
-      return ret;
+      /* if nothing cached yet, we might as well request duration,
+       * such as during initial startup */
+      if (ret) {
+        GST_DEBUG_OBJECT (playbin,
+            "Taking cached duration because of pending group switch: %d", ret);
+        GST_SOURCE_GROUP_UNLOCK (group);
+        GST_PLAY_BIN_UNLOCK (playbin);
+        return ret;
+      }
     }
     GST_SOURCE_GROUP_UNLOCK (group);
   }





More information about the Gstreamer-commits mailing list