[Pkg-gstreamer-commits] [gstreamer-vaapi] 38/176: encoder: refactor status codes.

Vincent Cheng vcheng at moszumanska.debian.org
Tue Jun 3 08:09:25 UTC 2014


This is an automated email from the git hooks/post-receive script.

vcheng pushed a commit to branch upstream
in repository gstreamer-vaapi.

commit 038149b69b8ea628aa2e3c576f7117e70087f15f
Author: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
Date:   Tue Dec 3 17:04:43 2013 +0100

    encoder: refactor status codes.
    
    Drop obsolete or unused status codes. Align some status codes with the
    decoder counterparts.
---
 gst-libs/gst/vaapi/gstvaapiencoder.c       | 28 +++++++---------------
 gst-libs/gst/vaapi/gstvaapiencoder.h       | 37 +++++++++++++++++++-----------
 gst-libs/gst/vaapi/gstvaapiencoder_h264.c  | 20 ++++++++--------
 gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c |  8 +++----
 gst/vaapi/gstvaapiencode.c                 |  2 +-
 5 files changed, 46 insertions(+), 49 deletions(-)

diff --git a/gst-libs/gst/vaapi/gstvaapiencoder.c b/gst-libs/gst/vaapi/gstvaapiencoder.c
index adb5b2c..ddd2fc6 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder.c
@@ -208,7 +208,7 @@ gst_vaapi_encoder_free_sync_pictures (GstVaapiEncoder * encoder)
   GST_VAAPI_ENCODER_UNLOCK (encoder);
 }
 
-static gboolean
+static void
 gst_vaapi_encoder_push_sync_picture (GstVaapiEncoder * encoder,
     GstVaapiEncoderSyncPic * sync_pic)
 {
@@ -216,7 +216,6 @@ gst_vaapi_encoder_push_sync_picture (GstVaapiEncoder * encoder,
   g_queue_push_tail (&encoder->sync_pictures, sync_pic);
   GST_VAAPI_ENCODER_SYNC_SIGNAL (encoder);
   GST_VAAPI_ENCODER_UNLOCK (encoder);
-  return TRUE;
 }
 
 static GstVaapiEncoderStatus
@@ -233,7 +232,7 @@ gst_vaapi_encoder_pop_sync_picture (GstVaapiEncoder * encoder,
     goto timeout;
 
   if (g_queue_is_empty (&encoder->sync_pictures)) {
-    ret = GST_VAAPI_ENCODER_STATUS_UNKNOWN_ERR;
+    ret = GST_VAAPI_ENCODER_STATUS_ERROR_UNKNOWN;
     goto end;
   }
 
@@ -244,7 +243,7 @@ gst_vaapi_encoder_pop_sync_picture (GstVaapiEncoder * encoder,
   goto end;
 
 timeout:
-  ret = GST_VAAPI_ENCODER_STATUS_TIMEOUT;
+  ret = GST_VAAPI_ENCODER_STATUS_NO_BUFFER;
 
 end:
   GST_VAAPI_ENCODER_UNLOCK (encoder);
@@ -265,21 +264,14 @@ again:
   picture = NULL;
   sync_pic = NULL;
   ret = klass->reordering (encoder, frame, FALSE, &picture);
-
-  if (ret == GST_VAAPI_ENCODER_STATUS_FRAME_NOT_READY)
+  if (ret == GST_VAAPI_ENCODER_STATUS_NO_SURFACE)
     return GST_VAAPI_ENCODER_STATUS_SUCCESS;
-
-  g_assert (picture);
   if (ret != GST_VAAPI_ENCODER_STATUS_SUCCESS)
     goto error;
-  if (!picture) {
-    ret = GST_VAAPI_ENCODER_STATUS_PICTURE_ERR;
-    goto error;
-  }
 
   coded_buf = gst_vaapi_encoder_create_coded_buffer (encoder);
   if (!coded_buf) {
-    ret = GST_VAAPI_ENCODER_STATUS_OBJECT_ERR;
+    ret = GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED;
     goto error;
   }
 
@@ -291,11 +283,7 @@ again:
   sync_pic = _create_sync_picture (picture, coded_buf);
   gst_vaapi_coded_buffer_proxy_replace (&coded_buf, NULL);
   gst_vaapi_enc_picture_replace (&picture, NULL);
-
-  if (!gst_vaapi_encoder_push_sync_picture (encoder, sync_pic)) {
-    ret = GST_VAAPI_ENCODER_STATUS_THREAD_ERR;
-    goto error;
-  }
+  gst_vaapi_encoder_push_sync_picture (encoder, sync_pic);
 
   frame = NULL;
   goto again;
@@ -326,11 +314,11 @@ gst_vaapi_encoder_get_buffer (GstVaapiEncoder * encoder,
   picture = sync_pic->picture;
 
   if (!picture->surface || !gst_vaapi_surface_sync (picture->surface)) {
-    ret = GST_VAAPI_ENCODER_STATUS_PARAM_ERR;
+    ret = GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_PARAMETER;
     goto end;
   }
   if (!gst_vaapi_surface_query_status (picture->surface, &surface_status)) {
-    ret = GST_VAAPI_ENCODER_STATUS_PICTURE_ERR;
+    ret = GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_SURFACE;
     goto end;
   }
   if (frame)
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder.h b/gst-libs/gst/vaapi/gstvaapiencoder.h
index 8741c9a..9922366 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder.h
+++ b/gst-libs/gst/vaapi/gstvaapiencoder.h
@@ -27,23 +27,32 @@
 
 G_BEGIN_DECLS
 
+/**
+ * GstVaapiEncoderStatus:
+ * @GST_VAAPI_ENCODER_STATUS_SUCCESS: Success.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_NO_SURFACE: No surface left to encode.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_NO_BUFFER: No coded buffer left to hold the encoded picture.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_UNKNOWN: Unknown error.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED: No memory left.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_PARAMETER: Invalid parameter.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_BUFFER: Invalid buffer.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_SURFACE: Invalid surface.
+ * @GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_HEADER: Invalid header.
+ *
+ * Set of #GstVaapiEncoder status codes.
+ */
 typedef enum
 {
   GST_VAAPI_ENCODER_STATUS_SUCCESS = 0,
-  GST_VAAPI_ENCODER_STATUS_FRAME_NOT_READY = 1,
-  GST_VAAPI_ENCODER_STATUS_NO_DATA = 2,
-  GST_VAAPI_ENCODER_STATUS_TIMEOUT = 3,
-  GST_VAAPI_ENCODER_STATUS_NOT_READY = 4,
-  GST_VAAPI_ENCODER_STATUS_FRAME_IN_ORDER = 5,
-
-  GST_VAAPI_ENCODER_STATUS_PARAM_ERR = -1,
-  GST_VAAPI_ENCODER_STATUS_OBJECT_ERR = -2,
-  GST_VAAPI_ENCODER_STATUS_PICTURE_ERR = -3,
-  GST_VAAPI_ENCODER_STATUS_THREAD_ERR = -4,
-  GST_VAAPI_ENCODER_STATUS_PROFILE_ERR = -5,
-  GST_VAAPI_ENCODER_STATUS_FUNC_PTR_ERR = -6,
-  GST_VAAPI_ENCODER_STATUS_MEM_ERROR = -7,
-  GST_VAAPI_ENCODER_STATUS_UNKNOWN_ERR = -8,
+  GST_VAAPI_ENCODER_STATUS_NO_SURFACE = 1,
+  GST_VAAPI_ENCODER_STATUS_NO_BUFFER = 2,
+
+  GST_VAAPI_ENCODER_STATUS_ERROR_UNKNOWN = -1,
+  GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED = -2,
+  GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_PARAMETER = -100,
+  GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_BUFFER = -101,
+  GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_SURFACE = -102,
+  GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_HEADER = -103,
 } GstVaapiEncoderStatus;
 
 typedef struct _GstVaapiEncoder GstVaapiEncoder;
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h264.c b/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
index 01546da..28d948a 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_h264.c
@@ -1350,7 +1350,7 @@ gst_vaapi_encoder_h264_encode (GstVaapiEncoder * base,
     GstVaapiEncPicture * picture, GstVaapiCodedBufferProxy * codedbuf)
 {
   GstVaapiEncoderH264 *encoder = GST_VAAPI_ENCODER_H264_CAST (base);
-  GstVaapiEncoderStatus ret = GST_VAAPI_ENCODER_STATUS_UNKNOWN_ERR;
+  GstVaapiEncoderStatus ret = GST_VAAPI_ENCODER_STATUS_ERROR_UNKNOWN;
   GstVaapiSurfaceProxy *reconstruct = NULL;
 
   reconstruct = gst_vaapi_encoder_create_surface (base);
@@ -1412,19 +1412,19 @@ gst_vaapi_encoder_h264_get_avcC_codec_data (GstVaapiEncoderH264 * encoder,
 
   g_assert (buffer);
   if (!encoder->sps_data || !encoder->pps_data)
-    return GST_VAAPI_ENCODER_STATUS_NOT_READY;
+    return GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_HEADER;
 
   if (!gst_buffer_map (encoder->sps_data, &sps_info, GST_MAP_READ))
-    return GST_VAAPI_ENCODER_STATUS_MEM_ERROR;
+    return GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED;
 
   if (FALSE == _read_sps_attributes (sps_info.data, sps_info.size,
           &profile, &profile_comp, &level_idc)) {
-    ret = GST_VAAPI_ENCODER_STATUS_UNKNOWN_ERR;
+    ret = GST_VAAPI_ENCODER_STATUS_ERROR_INVALID_HEADER;
     goto end;
   }
 
   if (!gst_buffer_map (encoder->pps_data, &pps_info, GST_MAP_READ)) {
-    ret = GST_VAAPI_ENCODER_STATUS_MEM_ERROR;
+    ret = GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED;
     goto end;
   }
 
@@ -1453,7 +1453,7 @@ gst_vaapi_encoder_h264_get_avcC_codec_data (GstVaapiEncoderH264 * encoder,
       GST_BIT_WRITER_BIT_SIZE (&writer) / 8);
   g_assert (avc_codec);
   if (!avc_codec) {
-    ret = GST_VAAPI_ENCODER_STATUS_MEM_ERROR;
+    ret = GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED;
     goto clear_writer;
   }
   *buffer = avc_codec;
@@ -1498,13 +1498,13 @@ gst_vaapi_encoder_h264_reordering (GstVaapiEncoder * base,
 
   if (!frame) {
     if (encoder->reorder_state != GST_VAAPI_ENC_H264_REORD_DUMP_FRAMES)
-      return GST_VAAPI_ENCODER_STATUS_FRAME_NOT_READY;
+      return GST_VAAPI_ENCODER_STATUS_NO_SURFACE;
 
     /* reorder_state = GST_VAAPI_ENC_H264_REORD_DUMP_FRAMES
        dump B frames from queue, sometime, there may also have P frame or I frame */
     g_assert (encoder->b_frame_num > 0);
     g_return_val_if_fail (!g_queue_is_empty (&encoder->reorder_frame_list),
-        GST_VAAPI_ENCODER_STATUS_UNKNOWN_ERR);
+        GST_VAAPI_ENCODER_STATUS_ERROR_UNKNOWN);
     picture = g_queue_pop_head (&encoder->reorder_frame_list);
     g_assert (picture);
     if (g_queue_is_empty (&encoder->reorder_frame_list)) {
@@ -1518,7 +1518,7 @@ gst_vaapi_encoder_h264_reordering (GstVaapiEncoder * base,
   if (!picture) {
     GST_WARNING ("create H264 picture failed, frame timestamp:%"
         GST_TIME_FORMAT, GST_TIME_ARGS (frame->pts));
-    return GST_VAAPI_ENCODER_STATUS_OBJECT_ERR;
+    return GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED;
   }
   ++encoder->cur_present_index;
   picture->poc = ((encoder->cur_present_index * 2) %
@@ -1562,7 +1562,7 @@ gst_vaapi_encoder_h264_reordering (GstVaapiEncoder * base,
       g_queue_get_length (&encoder->reorder_frame_list) <
       encoder->b_frame_num) {
     g_queue_push_tail (&encoder->reorder_frame_list, picture);
-    return GST_VAAPI_ENCODER_STATUS_FRAME_NOT_READY;
+    return GST_VAAPI_ENCODER_STATUS_NO_SURFACE;
   }
 
   ++encoder->cur_frame_num;
diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
index 10de587..ec8d575 100644
--- a/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
+++ b/gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
@@ -501,7 +501,7 @@ gst_vaapi_encoder_mpeg2_encode (GstVaapiEncoder * base,
     GstVaapiEncPicture * picture, GstVaapiCodedBufferProxy * codedbuf)
 {
   GstVaapiEncoderMpeg2 *encoder = GST_VAAPI_ENCODER_MPEG2_CAST (base);
-  GstVaapiEncoderStatus ret = GST_VAAPI_ENCODER_STATUS_UNKNOWN_ERR;
+  GstVaapiEncoderStatus ret = GST_VAAPI_ENCODER_STATUS_ERROR_UNKNOWN;
   GstVaapiSurfaceProxy *reconstruct = NULL;
 
   reconstruct = gst_vaapi_encoder_create_surface (base);
@@ -564,7 +564,7 @@ gst_vaapi_encoder_mpeg2_reordering (GstVaapiEncoder * base,
       encoder->dump_frames = FALSE;
     }
     if (!encoder->dump_frames) {
-      return GST_VAAPI_ENCODER_STATUS_FRAME_NOT_READY;
+      return GST_VAAPI_ENCODER_STATUS_NO_SURFACE;
     }
     picture = g_queue_pop_head (&encoder->b_frames);
     g_assert (picture);
@@ -575,7 +575,7 @@ gst_vaapi_encoder_mpeg2_reordering (GstVaapiEncoder * base,
   if (!picture) {
     GST_WARNING ("create MPEG2 picture failed, frame timestamp:%"
         GST_TIME_FORMAT, GST_TIME_ARGS (frame->pts));
-    return GST_VAAPI_ENCODER_STATUS_OBJECT_ERR;
+    return GST_VAAPI_ENCODER_STATUS_ERROR_ALLOCATION_FAILED;
   }
 
   if (encoder->frame_num >= encoder->intra_period) {
@@ -594,7 +594,7 @@ gst_vaapi_encoder_mpeg2_reordering (GstVaapiEncoder * base,
       encoder->dump_frames = TRUE;
     } else {
       picture->type = GST_VAAPI_PICTURE_TYPE_B;
-      status = GST_VAAPI_ENCODER_STATUS_FRAME_NOT_READY;
+      status = GST_VAAPI_ENCODER_STATUS_NO_SURFACE;
     }
 
   }
diff --git a/gst/vaapi/gstvaapiencode.c b/gst/vaapi/gstvaapiencode.c
index adb2474..308aecf 100644
--- a/gst/vaapi/gstvaapiencode.c
+++ b/gst/vaapi/gstvaapiencode.c
@@ -231,7 +231,7 @@ gst_vaapiencode_push_frame (GstVaapiEncode * encode, gint64 timeout)
 
   status = gst_vaapi_encoder_get_buffer (encode->encoder,
       &out_frame, &codedbuf_proxy, timeout);
-  if (status == GST_VAAPI_ENCODER_STATUS_TIMEOUT)
+  if (status == GST_VAAPI_ENCODER_STATUS_NO_BUFFER)
     return GST_VAAPI_ENCODE_FLOW_TIMEOUT;
   if (status != GST_VAAPI_ENCODER_STATUS_SUCCESS)
     goto error_get_buffer;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gstreamer/gstreamer-vaapi.git



More information about the Pkg-gstreamer-commits mailing list