From 33962322ae9962f43111ffbcd7c3d69c95277e76 Mon Sep 17 00:00:00 2001 From: Sreerenj Balachandran Date: Wed, 22 Jul 2015 09:45:26 +0300 Subject: [PATCH] patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5 All API/ABI changes for S3D/MVC are added in 1.5, backporting them to older verison is not recommended. Signed-off-by: Sreerenj Balachandran --- ...e-3D-video-support-for-GStremaer-1.5.patch | 107 ++++++++++++++++++ patches/videoparsers/series.frag | 1 + 2 files changed, 108 insertions(+) create mode 100644 patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch diff --git a/patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch b/patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch new file mode 100644 index 0000000000..b61a8ca6fa --- /dev/null +++ b/patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch @@ -0,0 +1,107 @@ +From a711206aeb002e5e523ed6f4a045c2b2b7fb128e Mon Sep 17 00:00:00 2001 +From: Sreerenj Balachandran +Date: Tue, 21 Jul 2015 12:13:18 +0300 +Subject: [PATCH 4/4] h264parse: Disable 3D video support for GStremaer < 1.5 + +All API/ABI changes for S3D/MVC are added in 1.5, backporting +them to older verison is not recommended. + +Signed-off-by: Sreerenj Balachandran +--- + gst/vaapi/gsth264parse.c | 11 ++++++++++- + gst/vaapi/gsth264parse.h | 2 ++ + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/gst/vaapi/gsth264parse.c b/gst/vaapi/gsth264parse.c +index 98e9aa6..cd8cf2b 100644 +--- a/gst/vaapi/gsth264parse.c ++++ b/gst/vaapi/gsth264parse.c +@@ -215,9 +215,11 @@ gst_h264_parse_reset_stream_info (GstH264Parse * h264parse) + h264parse->have_pps = FALSE; + h264parse->have_sps = FALSE; + ++#if GST_CHECK_VERSION(1,5,0) + h264parse->multiview_mode = GST_VIDEO_MULTIVIEW_MODE_NONE; + h264parse->multiview_flags = GST_VIDEO_MULTIVIEW_FLAGS_NONE; + h264parse->first_in_bundle = TRUE; ++#endif + + h264parse->align = GST_H264_PARSE_ALIGN_NONE; + h264parse->format = GST_H264_PARSE_FORMAT_NONE; +@@ -562,6 +564,7 @@ gst_h264_parse_process_sei (GstH264Parse * h264parse, GstH264NalUnit * nalu) + /* Additional messages that are not innerly useful to the + * element but for debugging purposes */ + case GST_H264_SEI_STEREO_VIDEO_INFO:{ ++#if GST_CHECK_VERSION(1,5,0) + GstVideoMultiviewMode mview_mode = GST_VIDEO_MULTIVIEW_MODE_NONE; + GstVideoMultiviewFlags mview_flags = GST_VIDEO_MULTIVIEW_FLAGS_NONE; + +@@ -593,9 +596,11 @@ gst_h264_parse_process_sei (GstH264Parse * h264parse, GstH264NalUnit * nalu) + /* output caps need to be changed */ + gst_h264_parse_update_src_caps (h264parse, NULL); + } ++#endif + break; + } + case GST_H264_SEI_FRAME_PACKING:{ ++#if GST_CHECK_VERSION(1,5,0) + GstVideoMultiviewMode mview_mode = GST_VIDEO_MULTIVIEW_MODE_NONE; + GstVideoMultiviewFlags mview_flags = GST_VIDEO_MULTIVIEW_FLAGS_NONE; + +@@ -684,6 +689,7 @@ gst_h264_parse_process_sei (GstH264Parse * h264parse, GstH264NalUnit * nalu) + /* output caps need to be changed */ + gst_h264_parse_update_src_caps (h264parse, NULL); + } ++#endif + break; + } + } +@@ -1746,9 +1752,11 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps) + gint width, height; + GstClockTime latency; + ++#if GST_CHECK_VERSION(1,5,0) + const gchar *caps_mview_mode = NULL; + GstVideoMultiviewMode mview_mode = h264parse->multiview_mode; + GstVideoMultiviewFlags mview_flags = h264parse->multiview_flags; ++#endif + + fps_num = h264parse->fps_num; + fps_den = h264parse->fps_den; +@@ -1780,6 +1788,7 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps) + } + } + ++#if GST_CHECK_VERSION(1,5,0) + /* Pass through or set output stereo/multiview config */ + if (s && gst_structure_has_field (s, "multiview-mode")) { + caps_mview_mode = gst_structure_get_string (s, "multiview-mode"); +@@ -1798,7 +1807,7 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps) + GST_TYPE_VIDEO_MULTIVIEW_FLAGSET, mview_flags, + GST_FLAG_SET_MASK_EXACT, NULL); + } +- ++#endif + gst_caps_set_simple (caps, "width", G_TYPE_INT, width, + "height", G_TYPE_INT, height, NULL); + +diff --git a/gst/vaapi/gsth264parse.h b/gst/vaapi/gsth264parse.h +index 58d818c..de9be02 100644 +--- a/gst/vaapi/gsth264parse.h ++++ b/gst/vaapi/gsth264parse.h +@@ -123,10 +123,12 @@ struct _GstH264Parse + GstClockTime pending_key_unit_ts; + GstEvent *force_key_unit_event; + ++#if GST_CHECK_VERSION(1,5,0) + /* Stereo / multiview info */ + GstVideoMultiviewMode multiview_mode; + GstVideoMultiviewFlags multiview_flags; + gboolean first_in_bundle; ++#endif + }; + + struct _GstH264ParseClass +-- +2.1.4 + diff --git a/patches/videoparsers/series.frag b/patches/videoparsers/series.frag index 227df479a5..12469b6ce7 100644 --- a/patches/videoparsers/series.frag +++ b/patches/videoparsers/series.frag @@ -4,5 +4,6 @@ videoparsers_patches_base = \ 0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch \ 0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch \ 0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch \ + 0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch \ 0001-h265parse-include-gstvaapiparse.h.patch \ $(NULL)