decoder: add picture structure flags.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 23 Feb 2012 15:23:27 +0000 (16:23 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 23 Feb 2012 15:39:51 +0000 (16:39 +0100)
gst-libs/gst/vaapi/gstvaapidecoder_objects.h

index 6bdfe2cb5c5f4d8ba8c85fe7c192d1cfac172877..6566fec0476c638576d92452a1b111e2097983c1 100644 (file)
@@ -79,6 +79,8 @@ enum _GstVaapiPictureType {
  * Picture flags:
  * @GST_VAAPI_PICTURE_FLAG_SKIPPED: skipped frame
  * @GST_VAAPI_PICTURE_FLAG_REFERENCE: reference frame
+ * @GST_VAAPI_PICTURE_FLAG_BOTTOM_FIELD: bottom field
+ * @GST_VAAPI_PICTURE_FLAG_TOP_FIELD: top field
  * @GST_VAAPI_PICTURE_FLAG_LAST: first flag that can be used by subclasses
  *
  * Enum values used for #GstVaapiPicture flags.
@@ -86,9 +88,15 @@ enum _GstVaapiPictureType {
 enum {
     GST_VAAPI_PICTURE_FLAG_SKIPPED   = (GST_VAAPI_CODEC_OBJECT_FLAG_LAST << 0),
     GST_VAAPI_PICTURE_FLAG_REFERENCE = (GST_VAAPI_CODEC_OBJECT_FLAG_LAST << 1),
-    GST_VAAPI_PICTURE_FLAG_LAST      = (GST_VAAPI_CODEC_OBJECT_FLAG_LAST << 2),
+    GST_VAAPI_PICTURE_FLAG_BOTTOM_FIELD = (GST_VAAPI_CODEC_OBJECT_FLAG_LAST << 2),
+    GST_VAAPI_PICTURE_FLAG_TOP_FIELD = (GST_VAAPI_CODEC_OBJECT_FLAG_LAST << 3),
+    GST_VAAPI_PICTURE_FLAG_LAST      = (GST_VAAPI_CODEC_OBJECT_FLAG_LAST << 4),
+
+    GST_VAAPI_PICTURE_MASK_STRUCTURE = (GST_VAAPI_PICTURE_FLAG_TOP_FIELD |
+                                        GST_VAAPI_PICTURE_FLAG_BOTTOM_FIELD)
 };
 
+#define GST_VAAPI_PICTURE_FLAGS         GST_MINI_OBJECT_FLAGS
 #define GST_VAAPI_PICTURE_FLAG_IS_SET   GST_MINI_OBJECT_FLAG_IS_SET
 #define GST_VAAPI_PICTURE_FLAG_SET      GST_MINI_OBJECT_FLAG_SET
 #define GST_VAAPI_PICTURE_FLAG_UNSET    GST_MINI_OBJECT_FLAG_UNSET
@@ -96,6 +104,15 @@ enum {
 #define GST_VAAPI_PICTURE_IS_REFERENCE(picture) \
     GST_VAAPI_PICTURE_FLAG_IS_SET(picture, GST_VAAPI_PICTURE_FLAG_REFERENCE)
 
+#define GST_VAAPI_PICTURE_IS_TOP_FIELD(picture) \
+    GST_VAAPI_PICTURE_FLAG_IS_SET(picture, GST_VAAPI_PICTURE_FLAG_TOP_FIELD)
+
+#define GST_VAAPI_PICTURE_IS_BOTTOM_FIELD(picture) \
+    GST_VAAPI_PICTURE_FLAG_IS_SET(picture, GST_VAAPI_PICTURE_FLAG_BOTTOM_FIELD)
+
+#define GST_VAAPI_PICTURE_IS_FRAME(picture) \
+    ((GST_VAAPI_PICTURE_FLAGS(picture) & GST_VAAPI_PICTURE_MASK_STRUCTURE) == 0)
+
 /**
  * GstVaapiPicture:
  *