This patch fix some bugs in gstreamer module.
Index: src/modules/gstreamer/emotion_gstreamer_pipeline_cdda.c
===================================================================
--- src/modules/gstreamer/emotion_gstreamer_pipeline_cdda.c	(revision 40503)
+++ src/modules/gstreamer/emotion_gstreamer_pipeline_cdda.c	(working copy)
@@ -108,7 +108,7 @@
    if (!asink) return NULL;
 
    ev->audio_sinks = eina_list_append(ev->audio_sinks, asink);
-   if (!eina_list_data_find(ev->audio_sinks, asink))
+   if (eina_error_get())
      {
 	free(asink);
 	return NULL;
Index: src/modules/gstreamer/emotion_gstreamer_pipeline_dvd.c
===================================================================
--- src/modules/gstreamer/emotion_gstreamer_pipeline_dvd.c	(revision 40503)
+++ src/modules/gstreamer/emotion_gstreamer_pipeline_dvd.c	(working copy)
@@ -101,6 +101,7 @@
 		  GstCaps            *sink_caps;
 
 		  asink = (Emotion_Audio_Sink *)eina_list_data_get(alist);
+		  alist = eina_list_next(alist);
 		  sink_pad = gst_element_get_pad(gst_bin_get_by_name(GST_BIN(ev->pipeline), "a52dec"), "src");
 		  sink_caps = gst_pad_get_caps(sink_pad);
 
@@ -165,7 +166,7 @@
 	vsink = (Emotion_Video_Sink *)malloc(sizeof(Emotion_Video_Sink));
 	if (!vsink) return;
 	ev->video_sinks = eina_list_append(ev->video_sinks, vsink);
-	if (!eina_list_data_find(ev->video_sinks, vsink))
+	if (eina_error_get())
 	  {
 	     free(vsink);
 	     return;
@@ -203,7 +204,7 @@
 	asink = (Emotion_Audio_Sink *)malloc(sizeof(Emotion_Audio_Sink));
 	if (!asink) return;
 	ev->audio_sinks = eina_list_append(ev->audio_sinks, asink);
-	if (!eina_list_data_find(ev->audio_sinks, asink))
+	if (eina_error_get())
 	  {
 	     free(asink);
 	     return;
Index: src/modules/gstreamer/emotion_gstreamer_pipeline.c
===================================================================
--- src/modules/gstreamer/emotion_gstreamer_pipeline.c	(revision 40503)
+++ src/modules/gstreamer/emotion_gstreamer_pipeline.c	(working copy)
@@ -97,7 +97,7 @@
 	vsink = (Emotion_Video_Sink *)calloc(1, sizeof(Emotion_Video_Sink));
 	if (!vsink) return;
 	ev->video_sinks = eina_list_append(ev->video_sinks, vsink);
-	if (!eina_list_data_find(ev->video_sinks, vsink))
+	if (eina_error_get())
 	  {
 	     free(vsink);
 	     return;
@@ -126,14 +126,13 @@
 	asink = (Emotion_Audio_Sink *)calloc(1, sizeof(Emotion_Audio_Sink));
 	if (!asink) return;
 	ev->audio_sinks = eina_list_append(ev->audio_sinks, asink);
-	if (!eina_list_data_find(ev->audio_sinks, asink))
+	if (eina_error_get())
 	  {
 	     free(asink);
 	     return;
 	  }
 
-	for (index = 0; asink != eina_list_nth(ev->audio_sinks, index); index++)
-	  ;
+	index = eina_list_count(ev->audio_sinks);
 	asink->sink = emotion_audio_sink_create(ev, index);
 	gst_bin_add(GST_BIN(ev->pipeline), asink->sink);
 	audiopad = gst_element_get_pad(asink->sink, "sink");
@@ -155,7 +154,7 @@
    if (!vsink) return NULL;
 
    ev->video_sinks = eina_list_append(ev->video_sinks, vsink);
-   if (!eina_list_data_find(ev->video_sinks, vsink))
+   if (eina_error_get())
      {
 	free(vsink);
 	return NULL;
------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to