Updating branch refs/heads/master to b3aed0774d6bc1c7db040d3f4fb8d739b2afb094 (commit) from 89563c1ae389bc4b1b1b45fa7c3fccc509a60d86 (commit)
commit b3aed0774d6bc1c7db040d3f4fb8d739b2afb094 Author: Ali Abdallah <al...@xfce.org> Date: Thu Jan 14 10:09:16 2010 +0100 For local media files, check the stream caps only when switching from ready to paused state. properly now. gst/parole-gst.c | 21 +++++++++++++++++---- 1 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gst/parole-gst.c b/gst/parole-gst.c index cb30a38..2a51a35 100644 --- a/gst/parole-gst.c +++ b/gst/parole-gst.c @@ -931,9 +931,22 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState } case GST_STATE_PAUSED: { - parole_gst_query_duration (gst); - parole_gst_query_capabilities (gst); - parole_gst_query_info (gst); + if ( pending == GST_STATE_PLAYING ) + { + ParoleMediaType media_type; + + g_object_get (G_OBJECT (gst->priv->stream), + "media-type", &media_type, + NULL); + + if ( (media_type == PAROLE_MEDIA_TYPE_LOCAL_FILE && old == GST_STATE_READY) || + media_type != PAROLE_MEDIA_TYPE_LOCAL_FILE ) + { + parole_gst_query_duration (gst); + parole_gst_query_capabilities (gst); + parole_gst_query_info (gst); + } + } if ( gst->priv->target == GST_STATE_PLAYING ) { @@ -953,7 +966,7 @@ parole_gst_evaluate_state (ParoleGst *gst, GstState old, GstState new, GstState g_signal_emit (G_OBJECT (gst), signals [MEDIA_STATE], 0, gst->priv->stream, PAROLE_MEDIA_STATE_STOPPED); - if ( gst->priv->target == GST_STATE_PLAYING && pending != GST_STATE_PLAYING) + if ( gst->priv->target == GST_STATE_PLAYING && pending < GST_STATE_PAUSED) { parole_gst_play_file_internal (gst); } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits