video{en,de}coder: Revert to old ::reset() behaviour and deprecate it
authorSebastian Dröge <slomo@circular-chaos.org>
Wed, 14 Aug 2013 14:55:55 +0000 (16:55 +0200)
committerSebastian Dröge <slomo@circular-chaos.org>
Thu, 15 Aug 2013 11:26:38 +0000 (13:26 +0200)
gst-libs/gst/video/gstvideodecoder.c
gst-libs/gst/video/gstvideodecoder.h
gst-libs/gst/video/gstvideoencoder.c
gst-libs/gst/video/gstvideoencoder.h

index ccbc21c..8bbad99 100644 (file)
@@ -853,10 +853,17 @@ gst_video_decoder_finalize (GObject * object)
 static GstFlowReturn
 gst_video_decoder_flush (GstVideoDecoder * dec, gboolean hard)
 {
+  GstVideoDecoderClass *klass = GST_VIDEO_DECODER_GET_CLASS (dec);
   GstFlowReturn ret = GST_FLOW_OK;
 
   GST_LOG_OBJECT (dec, "flush hard %d", hard);
 
+  /* Inform subclass */
+  if (klass->reset) {
+    GST_FIXME_OBJECT (dec, "GstVideoDecoder::reset() is deprecated");
+    klass->reset (dec, hard);
+  }
+
   /* FIXME make some more distinction between hard and soft,
    * but subclass may not be prepared for that */
   /* FIXME perhaps also clear pending frames ?,
@@ -1646,17 +1653,12 @@ gst_video_decoder_clear_queues (GstVideoDecoder * dec)
 static void
 gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full)
 {
-  GstVideoDecoderClass *klass = GST_VIDEO_DECODER_GET_CLASS (decoder);
   GstVideoDecoderPrivate *priv = decoder->priv;
 
   GST_DEBUG_OBJECT (decoder, "reset full %d", full);
 
   GST_VIDEO_DECODER_STREAM_LOCK (decoder);
 
-  /* Inform subclass */
-  if (klass->reset)
-    klass->reset (decoder, full);
-
   if (full) {
     gst_segment_init (&decoder->input_segment, GST_FORMAT_UNDEFINED);
     gst_segment_init (&decoder->output_segment, GST_FORMAT_UNDEFINED);
index 5436d94..2c30805 100644 (file)
@@ -211,6 +211,7 @@ struct _GstVideoDecoder
  *                  for subsequent decoding.
  * @reset:          Optional.
  *                  Allows subclass (decoder) to perform post-seek semantics reset.
+ *                  Deprecated.
  * @handle_frame:   Provides input data frame to subclass.
  * @finish:         Optional.
  *                  Called to request subclass to dispatch any pending remaining
index 58a6ab7..1d75884 100644 (file)
@@ -304,11 +304,6 @@ gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard)
 
   GST_VIDEO_ENCODER_STREAM_LOCK (encoder);
 
-  if (klass->reset) {
-    GST_DEBUG_OBJECT (encoder, "requesting subclass to reset");
-    ret = klass->reset (encoder, hard);
-  }
-
   priv->presentation_frame_number = 0;
   priv->distance_from_sync = 0;
 
@@ -575,6 +570,11 @@ gst_video_encoder_setcaps (GstVideoEncoder * encoder, GstCaps * caps)
     goto caps_not_changed;
   }
 
+  if (encoder_class->reset) {
+    GST_FIXME_OBJECT (encoder, "GstVideoEncoder::reset() is deprecated");
+    ret = encoder_class->reset (encoder, TRUE);
+  }
+
   /* and subclass should be ready to configure format at any time around */
   ret = encoder_class->set_format (encoder, state);
   if (ret) {
index 1d0b618..3051575 100644 (file)
@@ -172,6 +172,7 @@ struct _GstVideoEncoder
  * @handle_frame:   Provides input frame to subclass.
  * @reset:          Optional.
  *                  Allows subclass (encoder) to perform post-seek semantics reset.
+ *                  Deprecated.
  * @finish:         Optional.
  *                  Called to request subclass to dispatch any pending remaining
  *                  data (e.g. at EOS).