ext/ffmpeg/gstffmpegenc.c: Fix return values from the setcaps function.
authorWim Taymans <wim.taymans@gmail.com>
Fri, 19 Aug 2005 15:23:39 +0000 (15:23 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Fri, 19 Aug 2005 15:23:39 +0000 (15:23 +0000)
Original commit message from CVS:
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_setcaps),
(gst_ffmpegenc_chain_video), (gst_ffmpegenc_change_state):
Fix return values from the setcaps function.

ChangeLog
ext/ffmpeg/gstffmpegenc.c

index ce98a21..d031500 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-08-19  Wim Taymans  <wim@fluendo.com>
+
+       * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_setcaps),
+       (gst_ffmpegenc_chain_video), (gst_ffmpegenc_change_state):
+       Fix return values from the setcaps function.
+
 2005-08-16  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
 
        * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_frame),
index bad5157..9b249e0 100644 (file)
@@ -397,7 +397,7 @@ gst_ffmpegenc_setcaps (GstPad * pad, GstCaps * caps)
       avcodec_close (ffmpegenc->context);
     GST_DEBUG ("ffenc_%s: Failed to open FFMPEG codec",
         oclass->in_plugin->name);
-    return GST_PAD_LINK_REFUSED;
+    return FALSE;
   }
 
   /* is the colourspace correct? */
@@ -405,7 +405,7 @@ gst_ffmpegenc_setcaps (GstPad * pad, GstCaps * caps)
     avcodec_close (ffmpegenc->context);
     GST_DEBUG ("ffenc_%s: AV wants different colourspace (%d given, %d wanted)",
         oclass->in_plugin->name, pix_fmt, ffmpegenc->context->pix_fmt);
-    return GST_PAD_LINK_REFUSED;
+    return FALSE;
   }
 
   /* some codecs support more than one format, first auto-choose one */
@@ -420,7 +420,7 @@ gst_ffmpegenc_setcaps (GstPad * pad, GstCaps * caps)
   if (!other_caps) {
     avcodec_close (ffmpegenc->context);
     GST_DEBUG ("Unsupported codec - no caps found");
-    return GST_PAD_LINK_REFUSED;
+    return FALSE;
   }
 
   icaps = gst_caps_intersect (allowed_caps, other_caps);
@@ -428,7 +428,7 @@ gst_ffmpegenc_setcaps (GstPad * pad, GstCaps * caps)
   gst_caps_unref (other_caps);
   if (gst_caps_is_empty (icaps)) {
     gst_caps_unref (icaps);
-    return GST_PAD_LINK_REFUSED;
+    return FALSE;
   }
 
   if (gst_caps_get_size (icaps) > 1) {
@@ -444,14 +444,14 @@ gst_ffmpegenc_setcaps (GstPad * pad, GstCaps * caps)
   if (!gst_pad_set_caps (ffmpegenc->srcpad, icaps)) {
     avcodec_close (ffmpegenc->context);
     gst_caps_unref (icaps);
-    return GST_PAD_LINK_REFUSED;
+    return FALSE;
   }
   gst_caps_unref (icaps);
 
   /* success! */
   ffmpegenc->opened = TRUE;
 
-  return GST_PAD_LINK_OK;
+  return TRUE;
 }
 
 static GstFlowReturn
@@ -463,8 +463,6 @@ gst_ffmpegenc_chain_video (GstPad * pad, GstBuffer * inbuf)
       (GstFFMpegEncClass *) (G_OBJECT_GET_CLASS (ffmpegenc));
   gint ret_size = 0, frame_size;
 
-  /* FIXME: events (discont (flush!) and eos (close down) etc.) */
-
   GST_DEBUG_OBJECT (ffmpegenc,
       "Received buffer of time %" GST_TIME_FORMAT,
       GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (inbuf)));
@@ -499,6 +497,8 @@ gst_ffmpegenc_chain_video (GstPad * pad, GstBuffer * inbuf)
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
   gst_buffer_set_caps (outbuf, GST_PAD_CAPS (ffmpegenc->srcpad));
 
+  gst_buffer_unref (inbuf);
+
   return gst_pad_push (ffmpegenc->srcpad, outbuf);
 }
 
@@ -660,6 +660,14 @@ gst_ffmpegenc_change_state (GstElement * element)
 {
   GstFFMpegEnc *ffmpegenc = (GstFFMpegEnc *) element;
   gint transition = GST_STATE_TRANSITION (element);
+  GstElementStateReturn result;
+
+  switch (transition) {
+    default:
+      break;
+  }
+
+  result = GST_ELEMENT_CLASS (parent_class)->change_state (element);
 
   switch (transition) {
     case GST_STATE_PAUSED_TO_READY:
@@ -672,12 +680,10 @@ gst_ffmpegenc_change_state (GstElement * element)
         ffmpegenc->cache = NULL;
       }
       break;
+    default:
+      break;
   }
-
-  if (GST_ELEMENT_CLASS (parent_class)->change_state)
-    return GST_ELEMENT_CLASS (parent_class)->change_state (element);
-
-  return GST_STATE_SUCCESS;
+  return result;
 }
 
 gboolean