utils: h264: expose levels in public header.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Fri, 10 Jan 2014 17:27:20 +0000 (18:27 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Fri, 10 Jan 2014 18:52:50 +0000 (19:52 +0100)
Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
H.264 levels in there. The additional helper functions are meant
to be private for now.

gst-libs/gst/vaapi/Makefile.am
gst-libs/gst/vaapi/gstvaapidecoder_h264.c
gst-libs/gst/vaapi/gstvaapiutils_h264.c
gst-libs/gst/vaapi/gstvaapiutils_h264.h
gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h [new file with mode: 0644]

index 6fc4583..f429c07 100644 (file)
@@ -94,6 +94,7 @@ libgstvaapi_source_h =                                \
        gstvaapisurfacepool.h                   \
        gstvaapisurfaceproxy.h                  \
        gstvaapitypes.h                         \
+       gstvaapiutils_h264.h                    \
        gstvaapivalue.h                         \
        gstvaapivideopool.h                     \
        gstvaapiwindow.h                        \
@@ -121,7 +122,7 @@ libgstvaapi_source_priv_h =                 \
        gstvaapisurface_priv.h                  \
        gstvaapisurfaceproxy_priv.h             \
        gstvaapiutils.h                         \
-       gstvaapiutils_h264.h                    \
+       gstvaapiutils_h264_priv.h               \
        gstvaapiversion.h                       \
        gstvaapivideopool_priv.h                \
        gstvaapiwindow_priv.h                   \
index 8d8efa0..b523cbc 100644 (file)
@@ -34,7 +34,7 @@
 #include "gstvaapidecoder_priv.h"
 #include "gstvaapidisplay_priv.h"
 #include "gstvaapiobject_priv.h"
-#include "gstvaapiutils_h264.h"
+#include "gstvaapiutils_h264_priv.h"
 
 #define DEBUG 1
 #include "gstvaapidebug.h"
index 54d8dd7..e78adda 100644 (file)
@@ -22,7 +22,7 @@
 
 #include "sysdeps.h"
 #include <gst/codecparsers/gsth264parser.h>
-#include "gstvaapiutils_h264.h"
+#include "gstvaapiutils_h264_priv.h"
 
 /* Table A-1 - Level limits */
 /* *INDENT-OFF* */
index cbd7217..2aee036 100644 (file)
@@ -71,67 +71,6 @@ typedef enum
   GST_VAAPI_LEVEL_H264_L5_2,
 } GstVaapiLevelH264;
 
-/**
- * GstVaapiH264LevelLimits:
- * @level: the #GstVaapiLevelH264
- * @level_idc: the H.264 level_idc value
- * @MaxMBPS: the maximum macroblock processing rate (MB/sec)
- * @MaxFS: the maximum frame size (MBs)
- * @MaxDpbMbs: the maxium decoded picture buffer size (MBs)
- * @MaxBR: the maximum video bit rate (kbps)
- *
- * The data structure that describes the limits of an H.264 level.
- */
-typedef struct
-{
-  GstVaapiLevelH264 level;
-  guint8 level_idc;
-  guint32 MaxMBPS;
-  guint32 MaxFS;
-  guint32 MaxDpbMbs;
-  guint32 MaxBR;
-} GstVaapiH264LevelLimits;
-
-/* Returns GstVaapiProfile from H.264 profile_idc value */
-G_GNUC_INTERNAL
-GstVaapiProfile
-gst_vaapi_utils_h264_get_profile (guint8 profile_idc);
-
-/* Returns H.264 profile_idc value from GstVaapiProfile */
-G_GNUC_INTERNAL
-guint8
-gst_vaapi_utils_h264_get_profile_idc (GstVaapiProfile profile);
-
-/* Returns GstVaapiLevelH264 from H.264 level_idc value */
-G_GNUC_INTERNAL
-GstVaapiLevelH264
-gst_vaapi_utils_h264_get_level (guint8 level_idc);
-
-/* Returns H.264 level_idc value from GstVaapiLevelH264 */
-G_GNUC_INTERNAL
-guint8
-gst_vaapi_utils_h264_get_level_idc (GstVaapiLevelH264 level);
-
-/* Returns level limits as specified in Table A-1 of the H.264 standard */
-G_GNUC_INTERNAL
-const GstVaapiH264LevelLimits *
-gst_vaapi_utils_h264_get_level_limits (GstVaapiLevelH264 level);
-
-/* Returns the Table A-1 specification */
-G_GNUC_INTERNAL
-const GstVaapiH264LevelLimits *
-gst_vaapi_utils_h264_get_level_limits_table (guint *out_length_ptr);
-
-/* Returns GstVaapiChromaType from H.264 chroma_format_idc value */
-G_GNUC_INTERNAL
-GstVaapiChromaType
-gst_vaapi_utils_h264_get_chroma_type (guint chroma_format_idc);
-
-/* Returns H.264 chroma_format_idc value from GstVaapiChromaType */
-G_GNUC_INTERNAL
-guint
-gst_vaapi_utils_h264_get_chroma_format_idc (GstVaapiChromaType chroma_type);
-
 G_END_DECLS
 
 #endif /* GST_VAAPI_UTILS_H264_H */
diff --git a/gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h b/gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h
new file mode 100644 (file)
index 0000000..1c7db35
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+ *  gstvaapiutils_h264_priv.h - H.264 related utilities
+ *
+ *  Copyright (C) 2011-2013 Intel Corporation
+ *    Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1
+ *  of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA 02110-1301 USA
+ */
+
+#ifndef GST_VAAPI_UTILS_H264_PRIV_H
+#define GST_VAAPI_UTILS_H264_PRIV_H
+
+#include "gstvaapiutils_h264.h"
+
+G_BEGIN_DECLS
+
+/**
+ * GstVaapiH264LevelLimits:
+ * @level: the #GstVaapiLevelH264
+ * @level_idc: the H.264 level_idc value
+ * @MaxMBPS: the maximum macroblock processing rate (MB/sec)
+ * @MaxFS: the maximum frame size (MBs)
+ * @MaxDpbMbs: the maxium decoded picture buffer size (MBs)
+ * @MaxBR: the maximum video bit rate (kbps)
+ *
+ * The data structure that describes the limits of an H.264 level.
+ */
+typedef struct
+{
+  GstVaapiLevelH264 level;
+  guint8 level_idc;
+  guint32 MaxMBPS;
+  guint32 MaxFS;
+  guint32 MaxDpbMbs;
+  guint32 MaxBR;
+} GstVaapiH264LevelLimits;
+
+/* Returns GstVaapiProfile from H.264 profile_idc value */
+G_GNUC_INTERNAL
+GstVaapiProfile
+gst_vaapi_utils_h264_get_profile (guint8 profile_idc);
+
+/* Returns H.264 profile_idc value from GstVaapiProfile */
+G_GNUC_INTERNAL
+guint8
+gst_vaapi_utils_h264_get_profile_idc (GstVaapiProfile profile);
+
+/* Returns GstVaapiLevelH264 from H.264 level_idc value */
+G_GNUC_INTERNAL
+GstVaapiLevelH264
+gst_vaapi_utils_h264_get_level (guint8 level_idc);
+
+/* Returns H.264 level_idc value from GstVaapiLevelH264 */
+G_GNUC_INTERNAL
+guint8
+gst_vaapi_utils_h264_get_level_idc (GstVaapiLevelH264 level);
+
+/* Returns level limits as specified in Table A-1 of the H.264 standard */
+G_GNUC_INTERNAL
+const GstVaapiH264LevelLimits *
+gst_vaapi_utils_h264_get_level_limits (GstVaapiLevelH264 level);
+
+/* Returns the Table A-1 specification */
+G_GNUC_INTERNAL
+const GstVaapiH264LevelLimits *
+gst_vaapi_utils_h264_get_level_limits_table (guint *out_length_ptr);
+
+/* Returns GstVaapiChromaType from H.264 chroma_format_idc value */
+G_GNUC_INTERNAL
+GstVaapiChromaType
+gst_vaapi_utils_h264_get_chroma_type (guint chroma_format_idc);
+
+/* Returns H.264 chroma_format_idc value from GstVaapiChromaType */
+G_GNUC_INTERNAL
+guint
+gst_vaapi_utils_h264_get_chroma_format_idc (GstVaapiChromaType chroma_type);
+
+G_END_DECLS
+
+#endif /* GST_VAAPI_UTILS_H264_PRIV_H */