summaryrefslogtreecommitdiff
path: root/gst-libs/gst/vaapi/gstvaapiutils_h265.h
diff options
context:
space:
mode:
authorSreerenj Balachandran <sreerenj.balachandran@intel.com>2015-04-13 14:53:46 +0300
committerSreerenj Balachandran <sreerenj.balachandran@intel.com>2015-04-13 14:53:46 +0300
commit8c5f1b1c4b8bb89db207b2a57cebea45bf43d599 (patch)
tree3cdd3ca5a3298fbcf3df3fd87ebc1827ece06c96 /gst-libs/gst/vaapi/gstvaapiutils_h265.h
parent23bf2ff9e5130484e81e7dff8f6994ae59e82801 (diff)
downloadgst-vaapi-8c5f1b1c4b8bb89db207b2a57cebea45bf43d599.tar.gz
HEVC: Add codec utility methods to core libgstvaapi
Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Diffstat (limited to 'gst-libs/gst/vaapi/gstvaapiutils_h265.h')
-rw-r--r--gst-libs/gst/vaapi/gstvaapiutils_h265.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapiutils_h265.h b/gst-libs/gst/vaapi/gstvaapiutils_h265.h
new file mode 100644
index 00000000..fff6e641
--- /dev/null
+++ b/gst-libs/gst/vaapi/gstvaapiutils_h265.h
@@ -0,0 +1,88 @@
+/*
+ * gstvaapiutils_h265.h - H.265 related utilities
+ *
+ * Copyright (C) 2015 Intel Corporation
+ * Author: Sreerenj Balachandran <sreerenj.balachandran@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_H265_H
+#define GST_VAAPI_UTILS_H265_H
+
+#include <va/va.h>
+#include <gst/vaapi/gstvaapiprofile.h>
+#include <gst/vaapi/gstvaapisurface.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GstVaapiLevelH265:
+ * @GST_VAAPI_LEVEL_H265_L1: H.265 level 1.
+ * @GST_VAAPI_LEVEL_H265_L2: H.265 level 2.
+ * @GST_VAAPI_LEVEL_H265_L2_1: H.265 level 2.1.
+ * @GST_VAAPI_LEVEL_H265_L3: H.265 level 3.
+ * @GST_VAAPI_LEVEL_H265_L3_1: H.265 level 3.1.
+ * @GST_VAAPI_LEVEL_H265_L4: H.265 level 4.
+ * @GST_VAAPI_LEVEL_H265_L4_1: H.265 level 4.1.
+ * @GST_VAAPI_LEVEL_H265_L5: H.265 level 5.
+ * @GST_VAAPI_LEVEL_H265_L5_1: H.265 level 5.1.
+ * @GST_VAAPI_LEVEL_H265_L5_2: H.265 level 5.2.
+ * @GST_VAAPI_LEVEL_H265_L6: H.265 level 6.
+ * @GST_VAAPI_LEVEL_H265_L6_1: H.265 level 6.1.
+ * @GST_VAAPI_LEVEL_H265_L6_2: H.265 level 6.2.
+ *
+ * The set of all levels for #GstVaapiLevelH265.
+ */
+typedef enum {
+ GST_VAAPI_LEVEL_H265_L1 = 1,
+ GST_VAAPI_LEVEL_H265_L2,
+ GST_VAAPI_LEVEL_H265_L2_1,
+ GST_VAAPI_LEVEL_H265_L3,
+ GST_VAAPI_LEVEL_H265_L3_1,
+ GST_VAAPI_LEVEL_H265_L4,
+ GST_VAAPI_LEVEL_H265_L4_1,
+ GST_VAAPI_LEVEL_H265_L5,
+ GST_VAAPI_LEVEL_H265_L5_1,
+ GST_VAAPI_LEVEL_H265_L5_2,
+ GST_VAAPI_LEVEL_H265_L6,
+ GST_VAAPI_LEVEL_H265_L6_1,
+ GST_VAAPI_LEVEL_H265_L6_2,
+} GstVaapiLevelH265;
+
+/* Returns a relative score for the supplied GstVaapiProfile */
+guint
+gst_vaapi_utils_h265_get_profile_score (GstVaapiProfile profile);
+
+/* Returns GstVaapiProfile from a string representation */
+GstVaapiProfile
+gst_vaapi_utils_h265_get_profile_from_string (const gchar * str);
+
+/* Returns a string representation for the supplied H.265 profile */
+const gchar *
+gst_vaapi_utils_h265_get_profile_string (GstVaapiProfile profile);
+
+/* Returns GstVaapiLevelH265 from a string representation */
+GstVaapiLevelH265
+gst_vaapi_utils_h265_get_level_from_string (const gchar * str);
+
+/* Returns a string representation for the supplied H.265 level */
+const gchar *
+gst_vaapi_utils_h265_get_level_string (GstVaapiLevelH265 level);
+
+G_END_DECLS
+
+#endif /* GST_VAAPI_UTILS_H265_H */