[gst-cvs] CVS: gstreamer/gst gstdparammanager.c,1.7,1.8

Steve Baker sbaker3 at users.sourceforge.net
Mon Sep 17 12:16:17 PDT 2001


Update of /cvsroot/gstreamer/gstreamer/gst
In directory usw-pr-cvs1:/tmp/cvs-serv20593

Modified Files:
	gstdparammanager.c 
Log Message:
init the values when the state hits playing so that we don't do dum things like log(0)

Index: gstdparammanager.c
===================================================================
RCS file: /cvsroot/gstreamer/gstreamer/gst/gstdparammanager.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- gstdparammanager.c	2001/09/16 16:39:02	1.7
+++ gstdparammanager.c	2001/09/17 19:15:53	1.8
@@ -540,23 +540,27 @@
 	GSList *dwraps;
 	GstDParam *dparam;
 	GstDParamWrapper *dpwrap;
-	
-	if (state == GST_STATE_PLAYING) return;
-	GST_DEBUG(GST_CAT_PARAMS, "initialising params\n");
-	
+
 	g_return_if_fail (dpman != NULL);
 	g_return_if_fail (GST_IS_DPMAN (dpman));
-
-	// force all params to be updated
-	dwraps = GST_DPMAN_DPARAMS_LIST(dpman);
-	while (dwraps){
-		dpwrap = (GstDParamWrapper*)dwraps->data;
-		dparam = dpwrap->dparam;
-		
-		if (dparam){
-			GST_DPARAM_READY_FOR_UPDATE(dparam) = TRUE;
+	
+	if (state == GST_STATE_PLAYING){
+		GST_DEBUG(GST_CAT_PARAMS, "initialising params\n");
+			
+		// force all params to be updated
+		dwraps = GST_DPMAN_DPARAMS_LIST(dpman);
+		while (dwraps){
+			dpwrap = (GstDParamWrapper*)dwraps->data;
+			dparam = dpwrap->dparam;
+			
+			if (dparam){
+				GST_DPARAM_READY_FOR_UPDATE(dparam) = TRUE;
+				if (dparam->spec){
+					g_value_copy(dparam->spec->default_val, GST_DPARAM_VALUE(dparam));
+				}
+			}
+			dwraps = g_slist_next(dwraps);
 		}
-		dwraps = g_slist_next(dwraps);
 	}
 }
 





More information about the Gstreamer-commits mailing list