summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-multimedia')
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/av1_ordering_info.patch91
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg/vulkan_av1_stable_API.patch1382
-rw-r--r--meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb6
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch3
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-devtools_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gst-devtools_1.22.10.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.10.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.10.bb47
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch19
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.10.bb)5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch7
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch3
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.10.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch54
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch38
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.10.bb)10
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.10.bb)5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.10.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.10.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.10.bb)2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch7
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch21
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch7
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch7
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest9
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.24.3.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.10.bb)2
-rw-r--r--meta/recipes-multimedia/liba52/liba52/buildcleanup.patch89
-rw-r--r--meta/recipes-multimedia/liba52/liba52_0.7.4.bb28
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch58
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch36
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch20
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch19
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch18
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb45
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.43.bb (renamed from meta/recipes-multimedia/libpng/libpng_1.6.42.bb)4
-rw-r--r--meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch2
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch156
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch55
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch63
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch70
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch43
-rw-r--r--meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb51
-rw-r--r--meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb (renamed from meta/recipes-multimedia/mpg123/mpg123_1.32.5.bb)2
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio.inc2
-rw-r--r--meta/recipes-multimedia/webp/libwebp_1.4.0.bb (renamed from meta/recipes-multimedia/webp/libwebp_1.3.2.bb)2
-rw-r--r--meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch51
-rw-r--r--meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch33
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb9
51 files changed, 1551 insertions, 1057 deletions
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/av1_ordering_info.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/av1_ordering_info.patch
new file mode 100644
index 0000000000..bfc894563c
--- /dev/null
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg/av1_ordering_info.patch
@@ -0,0 +1,91 @@
1From cafb4c554845332eeb33284cf6498049997dc67e Mon Sep 17 00:00:00 2001
2From: Mark Thompson <sw@jkqxz.net>
3Date: Wed, 20 Mar 2024 20:35:28 +0000
4Subject: [PATCH] lavc/cbs_av1: Save more frame ordering information
5
6This is wanted by the Vulkan decoder.
7
8Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
9Upstream-Status: Backport [https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ecdc94b97f809d5f2b88640842fd0541951ad295]
10---
11 libavcodec/cbs_av1.h | 5 +++++
12 libavcodec/cbs_av1_syntax_template.c | 25 +++++++++++++++++++++----
13 2 files changed, 26 insertions(+), 4 deletions(-)
14
15diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h
16index a5402f069d..a027013bc7 100644
17--- a/libavcodec/cbs_av1.h
18+++ b/libavcodec/cbs_av1.h
19@@ -427,6 +427,8 @@ typedef struct AV1ReferenceFrameState {
20 int bit_depth; // RefBitDepth
21 int order_hint; // RefOrderHint
22
23+ int saved_order_hints[AV1_TOTAL_REFS_PER_FRAME]; // SavedOrderHints[ref]
24+
25 int8_t loop_filter_ref_deltas[AV1_TOTAL_REFS_PER_FRAME];
26 int8_t loop_filter_mode_deltas[2];
27 uint8_t feature_enabled[AV1_MAX_SEGMENTS][AV1_SEG_LVL_MAX];
28@@ -464,6 +466,9 @@ typedef struct CodedBitstreamAV1Context {
29 int tile_rows;
30 int tile_num;
31
32+ int order_hints[AV1_TOTAL_REFS_PER_FRAME]; // OrderHints
33+ int ref_frame_sign_bias[AV1_TOTAL_REFS_PER_FRAME]; // RefFrameSignBias
34+
35 AV1ReferenceFrameState ref[AV1_NUM_REF_FRAMES];
36
37 // AVOptions
38diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c
39index 3be1f2d30f..2979c5d98f 100644
40--- a/libavcodec/cbs_av1_syntax_template.c
41+++ b/libavcodec/cbs_av1_syntax_template.c
42@@ -1414,6 +1414,8 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw,
43 priv->ref[i].valid = 0;
44 priv->ref[i].order_hint = 0;
45 }
46+ for (i = 0; i < AV1_REFS_PER_FRAME; i++)
47+ priv->order_hints[i + AV1_REF_FRAME_LAST] = 0;
48 }
49
50 flag(disable_cdf_update);
51@@ -1568,11 +1570,20 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw,
52 else
53 flag(use_ref_frame_mvs);
54
55- infer(allow_intrabc, 0);
56- }
57+ for (i = 0; i < AV1_REFS_PER_FRAME; i++) {
58+ int ref_frame = AV1_REF_FRAME_LAST + i;
59+ int hint = priv->ref[current->ref_frame_idx[i]].order_hint;
60+ priv->order_hints[ref_frame] = hint;
61+ if (!seq->enable_order_hint) {
62+ priv->ref_frame_sign_bias[ref_frame] = 0;
63+ } else {
64+ priv->ref_frame_sign_bias[ref_frame] =
65+ cbs_av1_get_relative_dist(seq, hint,
66+ current->order_hint) > 0;
67+ }
68+ }
69
70- if (!frame_is_intra) {
71- // Derive reference frame sign biases.
72+ infer(allow_intrabc, 0);
73 }
74
75 if (seq->reduced_still_picture_header || current->disable_cdf_update)
76@@ -1674,6 +1685,12 @@ update_refs:
77 .bit_depth = priv->bit_depth,
78 .order_hint = priv->order_hint,
79 };
80+
81+ for (int j = 0; j < AV1_REFS_PER_FRAME; j++) {
82+ priv->ref[i].saved_order_hints[j + AV1_REF_FRAME_LAST] =
83+ priv->order_hints[j + AV1_REF_FRAME_LAST];
84+ }
85+
86 memcpy(priv->ref[i].loop_filter_ref_deltas, current->loop_filter_ref_deltas,
87 sizeof(current->loop_filter_ref_deltas));
88 memcpy(priv->ref[i].loop_filter_mode_deltas, current->loop_filter_mode_deltas,
89--
902.25.1
91
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/vulkan_av1_stable_API.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/vulkan_av1_stable_API.patch
new file mode 100644
index 0000000000..74db148b3b
--- /dev/null
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg/vulkan_av1_stable_API.patch
@@ -0,0 +1,1382 @@
1From ecdc94b97f809d5f2b88640842fd0541951ad295 Mon Sep 17 00:00:00 2001
2From: Lynne <dev@lynne.ee>
3Date: Fri, 19 Jan 2024 10:49:02 +1000
4Subject: [PATCH] vulkan_av1: port to the new stable API
5
6Co-Authored-by: Dave Airlie <airlied@redhat.com>
7Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
8Upstream-Status: Backport [https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ecdc94b97f809d5f2b88640842fd0541951ad295]
9---
10 configure | 4 +-
11 libavcodec/Makefile | 5 +-
12 libavcodec/vulkan_av1.c | 514 ++++++++++--------
13 libavcodec/vulkan_decode.c | 31 +-
14 libavcodec/vulkan_decode.h | 2 +-
15 libavcodec/vulkan_video.h | 2 -
16 .../vulkan_video_codec_av1std_decode_mesa.h | 36 --
17 libavcodec/vulkan_video_codec_av1std_mesa.h | 403 --------------
18 libavutil/hwcontext_vulkan.c | 2 +-
19 libavutil/vulkan_functions.h | 2 +-
20 libavutil/vulkan_loader.h | 2 +-
21 11 files changed, 306 insertions(+), 697 deletions(-)
22 delete mode 100644 libavcodec/vulkan_video_codec_av1std_decode_mesa.h
23 delete mode 100644 libavcodec/vulkan_video_codec_av1std_mesa.h
24
25diff --git a/configure b/configure
26index e853deb51d..9fa639fca6 100755
27--- a/configure
28+++ b/configure
29@@ -7300,8 +7300,8 @@ enabled vdpau &&
30 "in maintaining it."
31
32 if enabled vulkan; then
33- check_pkg_config_header_only vulkan "vulkan >= 1.3.255" "vulkan/vulkan.h" "defined VK_VERSION_1_3" ||
34- check_cpp_condition vulkan "vulkan/vulkan.h" "defined(VK_VERSION_1_4) || (defined(VK_VERSION_1_3) && VK_HEADER_VERSION >= 255)"
35+ check_pkg_config_header_only vulkan "vulkan >= 1.3.277" "vulkan/vulkan.h" "defined VK_VERSION_1_3" ||
36+ check_cpp_condition vulkan "vulkan/vulkan.h" "defined(VK_VERSION_1_4) || (defined(VK_VERSION_1_3) && VK_HEADER_VERSION >= 277)"
37 fi
38
39 if disabled vulkan; then
40diff --git a/libavcodec/Makefile b/libavcodec/Makefile
41index 7ef2e03ca6..9ce6d445c1 100644
42--- a/libavcodec/Makefile
43+++ b/libavcodec/Makefile
44@@ -1258,8 +1258,7 @@ SKIPHEADERS += %_tablegen.h \
45 aacenc_quantization.h \
46 aacenc_quantization_misc.h \
47 bitstream_template.h \
48- vulkan_video_codec_av1std.h \
49- $(ARCH)/vpx_arith.h \
50+ $(ARCH)/vpx_arith.h \
51
52 SKIPHEADERS-$(CONFIG_AMF) += amfenc.h
53 SKIPHEADERS-$(CONFIG_D3D11VA) += d3d11va.h dxva2_internal.h
54@@ -1280,7 +1279,7 @@ SKIPHEADERS-$(CONFIG_QSVENC) += qsvenc.h
55 SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_decode.h vaapi_hevc.h vaapi_encode.h
56 SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h
57 SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX) += videotoolbox.h vt_internal.h
58-SKIPHEADERS-$(CONFIG_VULKAN) += vulkan.h vulkan_video.h vulkan_decode.h vulkan_video_codec_av1std_decode.h
59+SKIPHEADERS-$(CONFIG_VULKAN) += vulkan.h vulkan_video.h vulkan_decode.h
60 SKIPHEADERS-$(CONFIG_V4L2_M2M) += v4l2_buffers.h v4l2_context.h v4l2_m2m.h
61 SKIPHEADERS-$(CONFIG_ZLIB) += zlib_wrapper.h
62
63diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
64index 5afd5353cc..c9e398eaec 100644
65--- a/libavcodec/vulkan_av1.c
66+++ b/libavcodec/vulkan_av1.c
67@@ -36,33 +36,47 @@ const FFVulkanDecodeDescriptor ff_vk_dec_av1_desc = {
68 typedef struct AV1VulkanDecodePicture {
69 FFVulkanDecodePicture vp;
70
71- /* Workaround for a spec issue.
72- *Can be removed once no longer needed, and threading can be enabled. */
73+ /* TODO: investigate if this can be removed to make decoding completely
74+ * independent. */
75 FFVulkanDecodeContext *dec;
76
77- StdVideoAV1MESATile tiles[MAX_TILES];
78- StdVideoAV1MESATileList tile_list;
79- const uint32_t *tile_offsets;
80+ uint32_t tile_sizes[MAX_TILES];
81
82 /* Current picture */
83- VkVideoDecodeAV1DpbSlotInfoMESA vkav1_ref;
84- StdVideoAV1MESAFrameHeader av1_frame_header;
85- VkVideoDecodeAV1PictureInfoMESA av1_pic_info;
86+ StdVideoDecodeAV1ReferenceInfo std_ref;
87+ VkVideoDecodeAV1DpbSlotInfoKHR vkav1_ref;
88+ uint16_t width_in_sbs_minus1[64];
89+ uint16_t height_in_sbs_minus1[64];
90+ uint16_t mi_col_starts[64];
91+ uint16_t mi_row_starts[64];
92+ StdVideoAV1TileInfo tile_info;
93+ StdVideoAV1Quantization quantization;
94+ StdVideoAV1Segmentation segmentation;
95+ StdVideoAV1LoopFilter loop_filter;
96+ StdVideoAV1CDEF cdef;
97+ StdVideoAV1LoopRestoration loop_restoration;
98+ StdVideoAV1GlobalMotion global_motion;
99+ StdVideoAV1FilmGrain film_grain;
100+ StdVideoDecodeAV1PictureInfo std_pic_info;
101+ VkVideoDecodeAV1PictureInfoKHR av1_pic_info;
102
103 /* Picture refs */
104 const AV1Frame *ref_src [AV1_NUM_REF_FRAMES];
105- VkVideoDecodeAV1DpbSlotInfoMESA vkav1_refs[AV1_NUM_REF_FRAMES];
106+ StdVideoDecodeAV1ReferenceInfo std_refs [AV1_NUM_REF_FRAMES];
107+ VkVideoDecodeAV1DpbSlotInfoKHR vkav1_refs[AV1_NUM_REF_FRAMES];
108
109 uint8_t frame_id_set;
110 uint8_t frame_id;
111+ uint8_t ref_frame_sign_bias_mask;
112 } AV1VulkanDecodePicture;
113
114 static int vk_av1_fill_pict(AVCodecContext *avctx, const AV1Frame **ref_src,
115 VkVideoReferenceSlotInfoKHR *ref_slot, /* Main structure */
116 VkVideoPictureResourceInfoKHR *ref, /* Goes in ^ */
117- VkVideoDecodeAV1DpbSlotInfoMESA *vkav1_ref, /* Goes in ^ */
118+ StdVideoDecodeAV1ReferenceInfo *vkav1_std_ref,
119+ VkVideoDecodeAV1DpbSlotInfoKHR *vkav1_ref, /* Goes in ^ */
120 const AV1Frame *pic, int is_current, int has_grain,
121- int dpb_slot_index)
122+ int *saved_order_hints)
123 {
124 FFVulkanDecodeContext *dec = avctx->internal->hwaccel_priv_data;
125 AV1VulkanDecodePicture *hp = pic->hwaccel_picture_private;
126@@ -73,31 +87,42 @@ static int vk_av1_fill_pict(AVCodecContext *avctx, const AV1Frame **ref_src,
127 if (err < 0)
128 return err;
129
130- *vkav1_ref = (VkVideoDecodeAV1DpbSlotInfoMESA) {
131- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_MESA,
132- .frameIdx = hp->frame_id,
133+ *vkav1_std_ref = (StdVideoDecodeAV1ReferenceInfo) {
134+ .flags = (StdVideoDecodeAV1ReferenceInfoFlags) {
135+ .disable_frame_end_update_cdf = pic->raw_frame_header->disable_frame_end_update_cdf,
136+ .segmentation_enabled = pic->raw_frame_header->segmentation_enabled,
137+ },
138+ .frame_type = pic->raw_frame_header->frame_type,
139+ .OrderHint = pic->raw_frame_header->order_hint,
140+ .RefFrameSignBias = hp->ref_frame_sign_bias_mask,
141 };
142
143- for (unsigned i = 0; i < 7; i++) {
144- const int idx = pic->raw_frame_header->ref_frame_idx[i];
145- vkav1_ref->ref_order_hint[i] = pic->raw_frame_header->ref_order_hint[idx];
146- }
147+ if (saved_order_hints)
148+ for (int i = 0; i < AV1_TOTAL_REFS_PER_FRAME; i++)
149+ vkav1_std_ref->SavedOrderHints[i] = saved_order_hints[i];
150+
151+ *vkav1_ref = (VkVideoDecodeAV1DpbSlotInfoKHR) {
152+ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR,
153+ .pStdReferenceInfo = vkav1_std_ref,
154+ };
155
156- vkav1_ref->disable_frame_end_update_cdf = pic->raw_frame_header->disable_frame_end_update_cdf;
157+ vkav1_std_ref->flags.disable_frame_end_update_cdf = pic->raw_frame_header->disable_frame_end_update_cdf;
158+ vkav1_std_ref->flags.segmentation_enabled = pic->raw_frame_header->segmentation_enabled;
159+ vkav1_std_ref->frame_type = pic->raw_frame_header->frame_type;
160
161 *ref = (VkVideoPictureResourceInfoKHR) {
162 .sType = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR,
163 .codedOffset = (VkOffset2D){ 0, 0 },
164 .codedExtent = (VkExtent2D){ pic->f->width, pic->f->height },
165 .baseArrayLayer = ((has_grain || dec->dedicated_dpb) && dec->layered_dpb) ?
166- dpb_slot_index : 0,
167+ hp->frame_id : 0,
168 .imageViewBinding = vkpic->img_view_ref,
169 };
170
171 *ref_slot = (VkVideoReferenceSlotInfoKHR) {
172 .sType = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR,
173 .pNext = vkav1_ref,
174- .slotIndex = dpb_slot_index,
175+ .slotIndex = hp->frame_id,
176 .pPictureResource = ref,
177 };
178
179@@ -115,15 +140,40 @@ static int vk_av1_create_params(AVCodecContext *avctx, AVBufferRef **buf)
180
181 const AV1RawSequenceHeader *seq = s->raw_seq;
182
183- StdVideoAV1MESASequenceHeader av1_sequence_header;
184- VkVideoDecodeAV1SessionParametersAddInfoMESA av1_params_info;
185- VkVideoDecodeAV1SessionParametersCreateInfoMESA av1_params;
186+ StdVideoAV1SequenceHeader av1_sequence_header;
187+ StdVideoAV1TimingInfo av1_timing_info;
188+ StdVideoAV1ColorConfig av1_color_config;
189+ VkVideoDecodeAV1SessionParametersCreateInfoKHR av1_params;
190 VkVideoSessionParametersCreateInfoKHR session_params_create;
191
192 int err;
193
194- av1_sequence_header = (StdVideoAV1MESASequenceHeader) {
195- .flags = (StdVideoAV1MESASequenceHeaderFlags) {
196+ av1_timing_info = (StdVideoAV1TimingInfo) {
197+ .flags = (StdVideoAV1TimingInfoFlags) {
198+ .equal_picture_interval = seq->timing_info.equal_picture_interval,
199+ },
200+ .num_units_in_display_tick = seq->timing_info.num_units_in_display_tick,
201+ .time_scale = seq->timing_info.time_scale,
202+ .num_ticks_per_picture_minus_1 = seq->timing_info.num_ticks_per_picture_minus_1,
203+ };
204+
205+ av1_color_config = (StdVideoAV1ColorConfig) {
206+ .flags = (StdVideoAV1ColorConfigFlags) {
207+ .mono_chrome = seq->color_config.mono_chrome,
208+ .color_range = seq->color_config.color_range,
209+ .separate_uv_delta_q = seq->color_config.separate_uv_delta_q,
210+ },
211+ .BitDepth = seq->color_config.twelve_bit ? 12 :
212+ seq->color_config.high_bitdepth ? 10 : 8,
213+ .subsampling_x = seq->color_config.subsampling_x,
214+ .subsampling_y = seq->color_config.subsampling_y,
215+ .color_primaries = seq->color_config.color_primaries,
216+ .transfer_characteristics = seq->color_config.transfer_characteristics,
217+ .matrix_coefficients = seq->color_config.matrix_coefficients,
218+ };
219+
220+ av1_sequence_header = (StdVideoAV1SequenceHeader) {
221+ .flags = (StdVideoAV1SequenceHeaderFlags) {
222 .still_picture = seq->still_picture,
223 .reduced_still_picture_header = seq->reduced_still_picture_header,
224 .use_128x128_superblock = seq->use_128x128_superblock,
225@@ -152,34 +202,15 @@ static int vk_av1_create_params(AVCodecContext *avctx, AVBufferRef **buf)
226 .delta_frame_id_length_minus_2 = seq->delta_frame_id_length_minus_2,
227 .additional_frame_id_length_minus_1 = seq->additional_frame_id_length_minus_1,
228 .order_hint_bits_minus_1 = seq->order_hint_bits_minus_1,
229- .timing_info = (StdVideoAV1MESATimingInfo) {
230- .flags = (StdVideoAV1MESATimingInfoFlags) {
231- .equal_picture_interval = seq->timing_info.equal_picture_interval,
232- },
233- .num_units_in_display_tick = seq->timing_info.num_units_in_display_tick,
234- .time_scale = seq->timing_info.time_scale,
235- .num_ticks_per_picture_minus_1 = seq->timing_info.num_ticks_per_picture_minus_1,
236- },
237- .color_config = (StdVideoAV1MESAColorConfig) {
238- .flags = (StdVideoAV1MESAColorConfigFlags) {
239- .mono_chrome = seq->color_config.mono_chrome,
240- .color_range = seq->color_config.color_range,
241- .separate_uv_delta_q = seq->color_config.separate_uv_delta_q,
242- },
243- .bit_depth = seq->color_config.twelve_bit ? 12 :
244- seq->color_config.high_bitdepth ? 10 : 8,
245- .subsampling_x = seq->color_config.subsampling_x,
246- .subsampling_y = seq->color_config.subsampling_y,
247- },
248+ .seq_force_integer_mv = seq->seq_force_integer_mv,
249+ .seq_force_screen_content_tools = seq->seq_force_screen_content_tools,
250+ .pTimingInfo = &av1_timing_info,
251+ .pColorConfig = &av1_color_config,
252 };
253
254- av1_params_info = (VkVideoDecodeAV1SessionParametersAddInfoMESA) {
255- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_ADD_INFO_MESA,
256- .sequence_header = &av1_sequence_header,
257- };
258- av1_params = (VkVideoDecodeAV1SessionParametersCreateInfoMESA) {
259- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA,
260- .pParametersAddInfo = &av1_params_info,
261+ av1_params = (VkVideoDecodeAV1SessionParametersCreateInfoKHR) {
262+ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR,
263+ .pStdSequenceHeader = &av1_sequence_header,
264 };
265 session_params_create = (VkVideoSessionParametersCreateInfoKHR) {
266 .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
267@@ -211,8 +242,14 @@ static int vk_av1_start_frame(AVCodecContext *avctx,
268
269 const AV1RawFrameHeader *frame_header = s->raw_frame_header;
270 const AV1RawFilmGrainParams *film_grain = &s->cur_frame.film_grain;
271+ CodedBitstreamAV1Context *cbs_ctx = (CodedBitstreamAV1Context *)(s->cbc->priv_data);
272+
273 const int apply_grain = !(avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN) &&
274 film_grain->apply_grain;
275+ StdVideoAV1FrameRestorationType remap_lr_type[4] = { STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE,
276+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE,
277+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER,
278+ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ };
279
280 if (!dec->session_params) {
281 err = vk_av1_create_params(avctx, &dec->session_params);
282@@ -233,15 +270,31 @@ static int vk_av1_start_frame(AVCodecContext *avctx,
283 dec->frame_id_alloc_mask |= (1 << slot_idx);
284 }
285
286- /* Fill in references */
287- for (int i = 0; i < AV1_NUM_REF_FRAMES; i++) {
288- const AV1Frame *ref_frame = &s->ref[i];
289- if (s->ref[i].f->pict_type == AV_PICTURE_TYPE_NONE)
290+ ap->ref_frame_sign_bias_mask = 0x0;
291+ for (int i = 0; i < STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME; i++)
292+ ap->ref_frame_sign_bias_mask |= cbs_ctx->ref_frame_sign_bias[i] << i;
293+
294+ for (int i = 0; i < STD_VIDEO_AV1_REFS_PER_FRAME; i++) {
295+ const int idx = pic->raw_frame_header->ref_frame_idx[i];
296+ const AV1Frame *ref_frame = &s->ref[idx];
297+ AV1VulkanDecodePicture *hp = ref_frame->hwaccel_picture_private;
298+ int found = 0;
299+
300+ if (ref_frame->f->pict_type == AV_PICTURE_TYPE_NONE)
301+ continue;
302+
303+ for (int j = 0; j < ref_count; j++) {
304+ if (vp->ref_slots[j].slotIndex == hp->frame_id) {
305+ found = 1;
306+ break;
307+ }
308+ }
309+ if (found)
310 continue;
311
312- err = vk_av1_fill_pict(avctx, &ap->ref_src[i], &vp->ref_slots[i],
313- &vp->refs[i], &ap->vkav1_refs[i],
314- ref_frame, 0, 0, i);
315+ err = vk_av1_fill_pict(avctx, &ap->ref_src[ref_count], &vp->ref_slots[ref_count],
316+ &vp->refs[ref_count], &ap->std_refs[ref_count], &ap->vkav1_refs[ref_count],
317+ ref_frame, 0, 0, cbs_ctx->ref[idx].saved_order_hints);
318 if (err < 0)
319 return err;
320
321@@ -249,20 +302,32 @@ static int vk_av1_start_frame(AVCodecContext *avctx,
322 }
323
324 err = vk_av1_fill_pict(avctx, NULL, &vp->ref_slot, &vp->ref,
325+ &ap->std_ref,
326 &ap->vkav1_ref,
327- pic, 1, apply_grain, 8);
328+ pic, 1, apply_grain, NULL);
329 if (err < 0)
330 return err;
331
332- ap->tile_list.nb_tiles = 0;
333- ap->tile_list.tile_list = ap->tiles;
334-
335- ap->av1_pic_info = (VkVideoDecodeAV1PictureInfoMESA) {
336- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_MESA,
337- .frame_header = &ap->av1_frame_header,
338- .tile_list = &ap->tile_list,
339+ ap->av1_pic_info = (VkVideoDecodeAV1PictureInfoKHR) {
340+ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR,
341+ .pStdPictureInfo = &ap->std_pic_info,
342+ .frameHeaderOffset = 0,
343+ .tileCount = 0,
344+ .pTileOffsets = NULL,
345+ .pTileSizes = ap->tile_sizes,
346 };
347
348+ for (int i = 0; i < STD_VIDEO_AV1_REFS_PER_FRAME; i++) {
349+ const int idx = pic->raw_frame_header->ref_frame_idx[i];
350+ const AV1Frame *ref_frame = &s->ref[idx];
351+ AV1VulkanDecodePicture *hp = ref_frame->hwaccel_picture_private;
352+
353+ if (ref_frame->f->pict_type == AV_PICTURE_TYPE_NONE)
354+ ap->av1_pic_info.referenceNameSlotIndices[i] = -1;
355+ else
356+ ap->av1_pic_info.referenceNameSlotIndices[i] = hp->frame_id;
357+ }
358+
359 vp->decode_info = (VkVideoDecodeInfoKHR) {
360 .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR,
361 .pNext = &ap->av1_pic_info,
362@@ -279,9 +344,87 @@ static int vk_av1_start_frame(AVCodecContext *avctx,
363 },
364 };
365
366+ ap->tile_info = (StdVideoAV1TileInfo) {
367+ .flags = (StdVideoAV1TileInfoFlags) {
368+ .uniform_tile_spacing_flag = frame_header->uniform_tile_spacing_flag,
369+ },
370+ .TileCols = frame_header->tile_cols,
371+ .TileRows = frame_header->tile_rows,
372+ .context_update_tile_id = frame_header->context_update_tile_id,
373+ .tile_size_bytes_minus_1 = frame_header->tile_size_bytes_minus1,
374+ .pWidthInSbsMinus1 = ap->width_in_sbs_minus1,
375+ .pHeightInSbsMinus1 = ap->height_in_sbs_minus1,
376+ .pMiColStarts = ap->mi_col_starts,
377+ .pMiRowStarts = ap->mi_row_starts,
378+ };
379+
380+ ap->quantization = (StdVideoAV1Quantization) {
381+ .flags.using_qmatrix = frame_header->using_qmatrix,
382+ .flags.diff_uv_delta = frame_header->diff_uv_delta,
383+ .base_q_idx = frame_header->base_q_idx,
384+ .DeltaQYDc = frame_header->delta_q_y_dc,
385+ .DeltaQUDc = frame_header->delta_q_u_dc,
386+ .DeltaQUAc = frame_header->delta_q_u_ac,
387+ .DeltaQVDc = frame_header->delta_q_v_dc,
388+ .DeltaQVAc = frame_header->delta_q_v_ac,
389+ .qm_y = frame_header->qm_y,
390+ .qm_u = frame_header->qm_u,
391+ .qm_v = frame_header->qm_v,
392+ };
393+
394+ ap->loop_filter = (StdVideoAV1LoopFilter) {
395+ .flags = (StdVideoAV1LoopFilterFlags) {
396+ .loop_filter_delta_enabled = frame_header->loop_filter_delta_enabled,
397+ .loop_filter_delta_update = frame_header->loop_filter_delta_update,
398+ },
399+ .loop_filter_sharpness = frame_header->loop_filter_sharpness,
400+ };
401+
402+ for (int i = 0; i < STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS; i++)
403+ ap->loop_filter.loop_filter_level[i] = frame_header->loop_filter_level[i];
404+ for (int i = 0; i < STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS; i++)
405+ ap->loop_filter.loop_filter_mode_deltas[i] = frame_header->loop_filter_mode_deltas[i];
406+
407+ ap->cdef = (StdVideoAV1CDEF) {
408+ .cdef_damping_minus_3 = frame_header->cdef_damping_minus_3,
409+ .cdef_bits = frame_header->cdef_bits,
410+ };
411+
412+ ap->loop_restoration = (StdVideoAV1LoopRestoration) {
413+ .FrameRestorationType[0] = remap_lr_type[frame_header->lr_type[0]],
414+ .FrameRestorationType[1] = remap_lr_type[frame_header->lr_type[1]],
415+ .FrameRestorationType[2] = remap_lr_type[frame_header->lr_type[2]],
416+ .LoopRestorationSize[0] = 1 + frame_header->lr_unit_shift,
417+ .LoopRestorationSize[1] = 1 + frame_header->lr_unit_shift - frame_header->lr_uv_shift,
418+ .LoopRestorationSize[2] = 1 + frame_header->lr_unit_shift - frame_header->lr_uv_shift,
419+ };
420+
421+ ap->film_grain = (StdVideoAV1FilmGrain) {
422+ .flags = (StdVideoAV1FilmGrainFlags) {
423+ .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma,
424+ .overlap_flag = film_grain->overlap_flag,
425+ .clip_to_restricted_range = film_grain->clip_to_restricted_range,
426+ },
427+ .grain_scaling_minus_8 = film_grain->grain_scaling_minus_8,
428+ .ar_coeff_lag = film_grain->ar_coeff_lag,
429+ .ar_coeff_shift_minus_6 = film_grain->ar_coeff_shift_minus_6,
430+ .grain_scale_shift = film_grain->grain_scale_shift,
431+ .grain_seed = film_grain->grain_seed,
432+ .film_grain_params_ref_idx = film_grain->film_grain_params_ref_idx,
433+ .num_y_points = film_grain->num_y_points,
434+ .num_cb_points = film_grain->num_cb_points,
435+ .num_cr_points = film_grain->num_cr_points,
436+ .cb_mult = film_grain->cb_mult,
437+ .cb_luma_mult = film_grain->cb_luma_mult,
438+ .cb_offset = film_grain->cb_offset,
439+ .cr_mult = film_grain->cr_mult,
440+ .cr_luma_mult = film_grain->cr_luma_mult,
441+ .cr_offset = film_grain->cr_offset,
442+ };
443+
444 /* Setup frame header */
445- ap->av1_frame_header = (StdVideoAV1MESAFrameHeader) {
446- .flags = (StdVideoAV1MESAFrameHeaderFlags) {
447+ ap->std_pic_info = (StdVideoDecodeAV1PictureInfo) {
448+ .flags = (StdVideoDecodeAV1PictureInfoFlags) {
449 .error_resilient_mode = frame_header->error_resilient_mode,
450 .disable_cdf_update = frame_header->disable_cdf_update,
451 .use_superres = frame_header->use_superres,
452@@ -302,174 +445,92 @@ static int vk_av1_start_frame(AVCodecContext *avctx,
453 .reference_select = frame_header->reference_select,
454 .skip_mode_present = frame_header->skip_mode_present,
455 .delta_q_present = frame_header->delta_q_present,
456+ .delta_lf_present = frame_header->delta_lf_present,
457+ .delta_lf_multi = frame_header->delta_lf_multi,
458+ .segmentation_enabled = frame_header->segmentation_enabled,
459+ .segmentation_update_map = frame_header->segmentation_update_map,
460+ .segmentation_temporal_update = frame_header->segmentation_temporal_update,
461+ .segmentation_update_data = frame_header->segmentation_update_data,
462+ .UsesLr = frame_header->lr_type[0] || frame_header->lr_type[1] || frame_header->lr_type[2],
463+ .apply_grain = apply_grain,
464 },
465- .frame_to_show_map_idx = frame_header->frame_to_show_map_idx,
466- .frame_presentation_time = frame_header->frame_presentation_time,
467- .display_frame_id = frame_header->display_frame_id,
468 .frame_type = frame_header->frame_type,
469 .current_frame_id = frame_header->current_frame_id,
470- .order_hint = frame_header->order_hint,
471+ .OrderHint = frame_header->order_hint,
472 .primary_ref_frame = frame_header->primary_ref_frame,
473- .frame_width_minus_1 = frame_header->frame_width_minus_1,
474- .frame_height_minus_1 = frame_header->frame_height_minus_1,
475- .coded_denom = frame_header->coded_denom,
476- .render_width_minus_1 = frame_header->render_width_minus_1,
477- .render_height_minus_1 = frame_header->render_height_minus_1,
478 .refresh_frame_flags = frame_header->refresh_frame_flags,
479 .interpolation_filter = frame_header->interpolation_filter,
480- .tx_mode = frame_header->tx_mode,
481- .tiling = (StdVideoAV1MESATileInfo) {
482- .flags = (StdVideoAV1MESATileInfoFlags) {
483- .uniform_tile_spacing_flag = frame_header->uniform_tile_spacing_flag,
484- },
485- .tile_cols = frame_header->tile_cols,
486- .tile_rows = frame_header->tile_rows,
487- .context_update_tile_id = frame_header->context_update_tile_id,
488- .tile_size_bytes_minus1 = frame_header->tile_size_bytes_minus1,
489- },
490- .quantization = (StdVideoAV1MESAQuantization) {
491- .flags.using_qmatrix = frame_header->using_qmatrix,
492- .base_q_idx = frame_header->base_q_idx,
493- .delta_q_y_dc = frame_header->delta_q_y_dc,
494- .diff_uv_delta = frame_header->diff_uv_delta,
495- .delta_q_u_dc = frame_header->delta_q_u_dc,
496- .delta_q_u_ac = frame_header->delta_q_u_ac,
497- .delta_q_v_dc = frame_header->delta_q_v_dc,
498- .delta_q_v_ac = frame_header->delta_q_v_ac,
499- .qm_y = frame_header->qm_y,
500- .qm_u = frame_header->qm_u,
501- .qm_v = frame_header->qm_v,
502- },
503- .delta_q = (StdVideoAV1MESADeltaQ) {
504- .flags = (StdVideoAV1MESADeltaQFlags) {
505- .delta_lf_present = frame_header->delta_lf_present,
506- .delta_lf_multi = frame_header->delta_lf_multi,
507- },
508- .delta_q_res = frame_header->delta_q_res,
509- .delta_lf_res = frame_header->delta_lf_res,
510- },
511- .loop_filter = (StdVideoAV1MESALoopFilter) {
512- .flags = (StdVideoAV1MESALoopFilterFlags) {
513- .delta_enabled = frame_header->loop_filter_delta_enabled,
514- .delta_update = frame_header->loop_filter_delta_update,
515- },
516- .level = {
517- frame_header->loop_filter_level[0], frame_header->loop_filter_level[1],
518- frame_header->loop_filter_level[2], frame_header->loop_filter_level[3],
519- },
520- .sharpness = frame_header->loop_filter_sharpness,
521- .mode_deltas = {
522- frame_header->loop_filter_mode_deltas[0], frame_header->loop_filter_mode_deltas[1],
523- },
524- },
525- .cdef = (StdVideoAV1MESACDEF) {
526- .damping_minus_3 = frame_header->cdef_damping_minus_3,
527- .bits = frame_header->cdef_bits,
528- },
529- .lr = (StdVideoAV1MESALoopRestoration) {
530- .lr_unit_shift = frame_header->lr_unit_shift,
531- .lr_uv_shift = frame_header->lr_uv_shift,
532- .lr_type = { frame_header->lr_type[0], frame_header->lr_type[1], frame_header->lr_type[2] },
533- },
534- .segmentation = (StdVideoAV1MESASegmentation) {
535- .flags = (StdVideoAV1MESASegmentationFlags) {
536- .enabled = frame_header->segmentation_enabled,
537- .update_map = frame_header->segmentation_update_map,
538- .temporal_update = frame_header->segmentation_temporal_update,
539- .update_data = frame_header->segmentation_update_data,
540- },
541- },
542- .film_grain = (StdVideoAV1MESAFilmGrainParameters) {
543- .flags = (StdVideoAV1MESAFilmGrainFlags) {
544- .apply_grain = apply_grain,
545- .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma,
546- .overlap_flag = film_grain->overlap_flag,
547- .clip_to_restricted_range = film_grain->clip_to_restricted_range,
548- },
549- .grain_scaling_minus_8 = film_grain->grain_scaling_minus_8,
550- .ar_coeff_lag = film_grain->ar_coeff_lag,
551- .ar_coeff_shift_minus_6 = film_grain->ar_coeff_shift_minus_6,
552- .grain_scale_shift = film_grain->grain_scale_shift,
553- .grain_seed = film_grain->grain_seed,
554- .num_y_points = film_grain->num_y_points,
555- .num_cb_points = film_grain->num_cb_points,
556- .num_cr_points = film_grain->num_cr_points,
557- .cb_mult = film_grain->cb_mult,
558- .cb_luma_mult = film_grain->cb_luma_mult,
559- .cb_offset = film_grain->cb_offset,
560- .cr_mult = film_grain->cr_mult,
561- .cr_luma_mult = film_grain->cr_luma_mult,
562- .cr_offset = film_grain->cr_offset,
563- },
564+ .TxMode = frame_header->tx_mode,
565+ .delta_q_res = frame_header->delta_q_res,
566+ .delta_lf_res = frame_header->delta_lf_res,
567+ .SkipModeFrame[0] = s->cur_frame.skip_mode_frame_idx[0],
568+ .SkipModeFrame[1] = s->cur_frame.skip_mode_frame_idx[1],
569+ .coded_denom = frame_header->coded_denom,
570+ .pTileInfo = &ap->tile_info,
571+ .pQuantization = &ap->quantization,
572+ .pSegmentation = &ap->segmentation,
573+ .pLoopFilter = &ap->loop_filter,
574+ .pCDEF = &ap->cdef,
575+ .pLoopRestoration = &ap->loop_restoration,
576+ .pGlobalMotion = &ap->global_motion,
577+ .pFilmGrain = apply_grain ? &ap->film_grain : NULL,
578 };
579
580 for (int i = 0; i < 64; i++) {
581- ap->av1_frame_header.tiling.width_in_sbs_minus_1[i] = frame_header->width_in_sbs_minus_1[i];
582- ap->av1_frame_header.tiling.height_in_sbs_minus_1[i] = frame_header->height_in_sbs_minus_1[i];
583- ap->av1_frame_header.tiling.tile_start_col_sb[i] = frame_header->tile_start_col_sb[i];
584- ap->av1_frame_header.tiling.tile_start_row_sb[i] = frame_header->tile_start_row_sb[i];
585+ ap->width_in_sbs_minus1[i] = frame_header->width_in_sbs_minus_1[i];
586+ ap->height_in_sbs_minus1[i] = frame_header->height_in_sbs_minus_1[i];
587+ ap->mi_col_starts[i] = frame_header->tile_start_col_sb[i];
588+ ap->mi_row_starts[i] = frame_header->tile_start_row_sb[i];
589 }
590
591- for (int i = 0; i < 8; i++) {
592- ap->av1_frame_header.segmentation.feature_enabled_bits[i] = 0;
593- for (int j = 0; j < 8; j++) {
594- ap->av1_frame_header.segmentation.feature_enabled_bits[i] |= (frame_header->feature_enabled[i][j] << j);
595- ap->av1_frame_header.segmentation.feature_data[i][j] = frame_header->feature_value[i][j];
596+ for (int i = 0; i < STD_VIDEO_AV1_MAX_SEGMENTS; i++) {
597+ ap->segmentation.FeatureEnabled[i] = 0x0;
598+ for (int j = 0; j < STD_VIDEO_AV1_SEG_LVL_MAX; j++) {
599+ ap->segmentation.FeatureEnabled[i] |= (frame_header->feature_enabled[i][j] << j);
600+ ap->segmentation.FeatureData[i][j] = frame_header->feature_value[i][j];
601 }
602-
603- ap->av1_frame_header.loop_filter.ref_deltas[i] = frame_header->loop_filter_ref_deltas[i];
604-
605- ap->av1_frame_header.cdef.y_pri_strength[i] = frame_header->cdef_y_pri_strength[i];
606- ap->av1_frame_header.cdef.y_sec_strength[i] = frame_header->cdef_y_sec_strength[i];
607- ap->av1_frame_header.cdef.uv_pri_strength[i] = frame_header->cdef_uv_pri_strength[i];
608- ap->av1_frame_header.cdef.uv_sec_strength[i] = frame_header->cdef_uv_sec_strength[i];
609-
610- ap->av1_frame_header.ref_order_hint[i] = frame_header->ref_order_hint[i];
611- ap->av1_frame_header.global_motion[i] = (StdVideoAV1MESAGlobalMotion) {
612- .flags = (StdVideoAV1MESAGlobalMotionFlags) {
613- .gm_invalid = s->cur_frame.gm_invalid[i],
614- },
615- .gm_type = s->cur_frame.gm_type[i],
616- .gm_params = {
617- s->cur_frame.gm_params[i][0], s->cur_frame.gm_params[i][1],
618- s->cur_frame.gm_params[i][2], s->cur_frame.gm_params[i][3],
619- s->cur_frame.gm_params[i][4], s->cur_frame.gm_params[i][5],
620- },
621- };
622 }
623
624- for (int i = 0; i < 7; i++) {
625- ap->av1_frame_header.ref_frame_idx[i] = frame_header->ref_frame_idx[i];
626- ap->av1_frame_header.delta_frame_id_minus1[i] = frame_header->delta_frame_id_minus1[i];
627+ for (int i = 0; i < STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME; i++)
628+ ap->loop_filter.loop_filter_ref_deltas[i] = frame_header->loop_filter_ref_deltas[i];
629+
630+ for (int i = 0; i < STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS; i++) {
631+ ap->cdef.cdef_y_pri_strength[i] = frame_header->cdef_y_pri_strength[i];
632+ ap->cdef.cdef_y_sec_strength[i] = frame_header->cdef_y_sec_strength[i];
633+ ap->cdef.cdef_uv_pri_strength[i] = frame_header->cdef_uv_pri_strength[i];
634+ ap->cdef.cdef_uv_sec_strength[i] = frame_header->cdef_uv_sec_strength[i];
635 }
636
637- ap->av1_pic_info.skip_mode_frame_idx[0] = s->cur_frame.skip_mode_frame_idx[0];
638- ap->av1_pic_info.skip_mode_frame_idx[1] = s->cur_frame.skip_mode_frame_idx[1];
639+ for (int i = 0; i < STD_VIDEO_AV1_NUM_REF_FRAMES; i++) {
640+ ap->std_pic_info.OrderHints[i] = frame_header->ref_order_hint[i];
641+ ap->global_motion.GmType[i] = s->cur_frame.gm_type[i];
642+ for (int j = 0; j < STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS; j++) {
643+ ap->global_motion.gm_params[i][j] = s->cur_frame.gm_params[i][j];
644+ }
645+ }
646
647 if (apply_grain) {
648- for (int i = 0; i < 14; i++) {
649- ap->av1_frame_header.film_grain.point_y_value[i] = film_grain->point_y_value[i];
650- ap->av1_frame_header.film_grain.point_y_scaling[i] = film_grain->point_y_scaling[i];
651+ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_Y_POINTS; i++) {
652+ ap->film_grain.point_y_value[i] = film_grain->point_y_value[i];
653+ ap->film_grain.point_y_scaling[i] = film_grain->point_y_scaling[i];
654 }
655
656- for (int i = 0; i < 10; i++) {
657- ap->av1_frame_header.film_grain.point_cb_value[i] = film_grain->point_cb_value[i];
658- ap->av1_frame_header.film_grain.point_cb_scaling[i] = film_grain->point_cb_scaling[i];
659- ap->av1_frame_header.film_grain.point_cr_value[i] = film_grain->point_cr_value[i];
660- ap->av1_frame_header.film_grain.point_cr_scaling[i] = film_grain->point_cr_scaling[i];
661+ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_CB_POINTS; i++) {
662+ ap->film_grain.point_cb_value[i] = film_grain->point_cb_value[i];
663+ ap->film_grain.point_cb_scaling[i] = film_grain->point_cb_scaling[i];
664+ ap->film_grain.point_cr_value[i] = film_grain->point_cr_value[i];
665+ ap->film_grain.point_cr_scaling[i] = film_grain->point_cr_scaling[i];
666 }
667
668- for (int i = 0; i < 24; i++) {
669- ap->av1_frame_header.film_grain.ar_coeffs_y_plus_128[i] = film_grain->ar_coeffs_y_plus_128[i];
670- ap->av1_frame_header.film_grain.ar_coeffs_cb_plus_128[i] = film_grain->ar_coeffs_cb_plus_128[i];
671- ap->av1_frame_header.film_grain.ar_coeffs_cr_plus_128[i] = film_grain->ar_coeffs_cr_plus_128[i];
672- }
673+ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_POS_LUMA; i++)
674+ ap->film_grain.ar_coeffs_y_plus_128[i] = film_grain->ar_coeffs_y_plus_128[i];
675
676- ap->av1_frame_header.film_grain.ar_coeffs_cb_plus_128[24] = film_grain->ar_coeffs_cb_plus_128[24];
677- ap->av1_frame_header.film_grain.ar_coeffs_cr_plus_128[24] = film_grain->ar_coeffs_cr_plus_128[24];
678+ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_POS_CHROMA; i++) {
679+ ap->film_grain.ar_coeffs_cb_plus_128[i] = film_grain->ar_coeffs_cb_plus_128[i];
680+ ap->film_grain.ar_coeffs_cr_plus_128[i] = film_grain->ar_coeffs_cr_plus_128[i];
681+ }
682 }
683
684- /* Workaround for a spec issue. */
685 ap->dec = dec;
686
687 return 0;
688@@ -484,25 +545,20 @@ static int vk_av1_decode_slice(AVCodecContext *avctx,
689 AV1VulkanDecodePicture *ap = s->cur_frame.hwaccel_picture_private;
690 FFVulkanDecodePicture *vp = &ap->vp;
691
692+ /* Too many tiles, exceeding all defined levels in the AV1 spec */
693+ if (ap->av1_pic_info.tileCount > MAX_TILES)
694+ return AVERROR(ENOSYS);
695+
696 for (int i = s->tg_start; i <= s->tg_end; i++) {
697- ap->tiles[ap->tile_list.nb_tiles] = (StdVideoAV1MESATile) {
698- .size = s->tile_group_info[i].tile_size,
699- .offset = s->tile_group_info[i].tile_offset,
700- .row = s->tile_group_info[i].tile_row,
701- .column = s->tile_group_info[i].tile_column,
702- .tg_start = s->tg_start,
703- .tg_end = s->tg_end,
704- };
705+ ap->tile_sizes[ap->av1_pic_info.tileCount] = s->tile_group_info[i].tile_size;
706
707 err = ff_vk_decode_add_slice(avctx, vp,
708 data + s->tile_group_info[i].tile_offset,
709 s->tile_group_info[i].tile_size, 0,
710- &ap->tile_list.nb_tiles,
711- &ap->tile_offsets);
712+ &ap->av1_pic_info.tileCount,
713+ &ap->av1_pic_info.pTileOffsets);
714 if (err < 0)
715 return err;
716-
717- ap->tiles[ap->tile_list.nb_tiles - 1].offset = ap->tile_offsets[ap->tile_list.nb_tiles - 1];
718 }
719
720 return 0;
721@@ -518,7 +574,7 @@ static int vk_av1_end_frame(AVCodecContext *avctx)
722 FFVulkanDecodePicture *rvp[AV1_NUM_REF_FRAMES] = { 0 };
723 AVFrame *rav[AV1_NUM_REF_FRAMES] = { 0 };
724
725- if (!ap->tile_list.nb_tiles)
726+ if (!ap->av1_pic_info.tileCount)
727 return 0;
728
729 if (!dec->session_params) {
730@@ -536,7 +592,7 @@ static int vk_av1_end_frame(AVCodecContext *avctx)
731 }
732
733 av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n",
734- vp->slices_size, ap->tile_list.nb_tiles);
735+ vp->slices_size, ap->av1_pic_info.tileCount);
736
737 return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp);
738 }
739@@ -580,8 +636,6 @@ const FFHWAccel ff_av1_vulkan_hwaccel = {
740 * flexibility, this index cannot be present anywhere.
741 * The current implementation tracks the index for the driver and submits it
742 * as necessary information. Due to needing to modify the decoding context,
743- * which is not thread-safe, on frame free, threading is disabled.
744- * In the future, once this is fixed in the spec, the workarounds may be removed
745- * and threading enabled. */
746+ * which is not thread-safe, on frame free, threading is disabled. */
747 .caps_internal = HWACCEL_CAP_ASYNC_SAFE,
748 };
749diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c
750index 91929d165f..4561f26b62 100644
751--- a/libavcodec/vulkan_decode.c
752+++ b/libavcodec/vulkan_decode.c
753@@ -61,7 +61,7 @@ static const VkVideoProfileInfoKHR *get_video_profile(FFVulkanDecodeShared *ctx,
754 VkStructureType profile_struct_type =
755 codec_id == AV_CODEC_ID_H264 ? VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR :
756 codec_id == AV_CODEC_ID_HEVC ? VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR :
757- codec_id == AV_CODEC_ID_AV1 ? VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_MESA :
758+ codec_id == AV_CODEC_ID_AV1 ? VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR :
759 0;
760
761 profile_list = ff_vk_find_struct(ctx->s.hwfc->create_pnext,
762@@ -674,7 +674,7 @@ static VkResult vulkan_setup_profile(AVCodecContext *avctx,
763 const struct FFVkCodecMap *vk_codec,
764 VkVideoDecodeH264CapabilitiesKHR *h264_caps,
765 VkVideoDecodeH265CapabilitiesKHR *h265_caps,
766- VkVideoDecodeAV1CapabilitiesMESA *av1_caps,
767+ VkVideoDecodeAV1CapabilitiesKHR *av1_caps,
768 VkVideoCapabilitiesKHR *caps,
769 VkVideoDecodeCapabilitiesKHR *dec_caps,
770 int cur_profile)
771@@ -685,7 +685,7 @@ static VkResult vulkan_setup_profile(AVCodecContext *avctx,
772
773 VkVideoDecodeH264ProfileInfoKHR *h264_profile = &prof->h264_profile;
774 VkVideoDecodeH265ProfileInfoKHR *h265_profile = &prof->h265_profile;
775- VkVideoDecodeAV1ProfileInfoMESA *av1_profile = &prof->av1_profile;
776+ VkVideoDecodeAV1ProfileInfoKHR *av1_profile = &prof->av1_profile;
777
778 const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->sw_pix_fmt);
779 if (!desc)
780@@ -713,8 +713,9 @@ static VkResult vulkan_setup_profile(AVCodecContext *avctx,
781 } else if (avctx->codec_id == AV_CODEC_ID_AV1) {
782 dec_caps->pNext = av1_caps;
783 usage->pNext = av1_profile;
784- av1_profile->sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_MESA;
785- av1_profile->stdProfileIdc = cur_profile;
786+ av1_profile->sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR;
787+ av1_profile->stdProfile = cur_profile;
788+ av1_profile->filmGrainSupport = !(avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN);
789 }
790
791 usage->sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR;
792@@ -769,8 +770,8 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_
793 VkVideoDecodeH265CapabilitiesKHR h265_caps = {
794 .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR,
795 };
796- VkVideoDecodeAV1CapabilitiesMESA av1_caps = {
797- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_MESA,
798+ VkVideoDecodeAV1CapabilitiesKHR av1_caps = {
799+ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR,
800 };
801
802 VkPhysicalDeviceVideoFormatInfoKHR fmt_info = {
803@@ -789,7 +790,7 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_
804 cur_profile = avctx->profile;
805 base_profile = avctx->codec_id == AV_CODEC_ID_H264 ? AV_PROFILE_H264_CONSTRAINED_BASELINE :
806 avctx->codec_id == AV_CODEC_ID_H265 ? AV_PROFILE_HEVC_MAIN :
807- avctx->codec_id == AV_CODEC_ID_AV1 ? STD_VIDEO_AV1_MESA_PROFILE_MAIN :
808+ avctx->codec_id == AV_CODEC_ID_AV1 ? STD_VIDEO_AV1_PROFILE_MAIN :
809 0;
810
811 ret = vulkan_setup_profile(avctx, prof, hwctx, vk, vk_codec,
812@@ -837,7 +838,7 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_
813
814 max_level = avctx->codec_id == AV_CODEC_ID_H264 ? ff_vk_h264_level_to_av(h264_caps.maxLevelIdc) :
815 avctx->codec_id == AV_CODEC_ID_H265 ? ff_vk_h265_level_to_av(h265_caps.maxLevelIdc) :
816- avctx->codec_id == AV_CODEC_ID_AV1 ? av1_caps.maxLevelIdc :
817+ avctx->codec_id == AV_CODEC_ID_AV1 ? av1_caps.maxLevel :
818 0;
819
820 av_log(avctx, AV_LOG_VERBOSE, "Decoder capabilities for %s profile \"%s\":\n",
821@@ -908,17 +909,11 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_
822 "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR set "
823 "but VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR is unset!\n");
824 return AVERROR_EXTERNAL;
825- } else if (!(dec_caps->flags & VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR) &&
826- avctx->codec_id == AV_CODEC_ID_AV1) {
827- av_log(avctx, AV_LOG_ERROR, "Cannot initialize Vulkan decoding session, buggy driver: "
828- "codec is AV1, but VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR isn't set!\n");
829- return AVERROR_EXTERNAL;
830 }
831
832 /* TODO: make dedicated_dpb tunable */
833 dec->dedicated_dpb = !(dec_caps->flags & VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR);
834 dec->layered_dpb = !(caps->flags & VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR);
835- dec->external_fg = av1_caps.flags & VK_VIDEO_DECODE_AV1_CAPABILITY_EXTERNAL_FILM_GRAIN_MESA;
836
837 if (dec->dedicated_dpb) {
838 fmt_info.imageUsage = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR;
839@@ -1126,8 +1121,10 @@ int ff_vk_decode_init(AVCodecContext *avctx)
840 VkVideoDecodeH265SessionParametersCreateInfoKHR h265_params = {
841 .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
842 };
843- VkVideoDecodeAV1SessionParametersCreateInfoMESA av1_params = {
844- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA,
845+ StdVideoAV1SequenceHeader av1_empty_seq = { 0 };
846+ VkVideoDecodeAV1SessionParametersCreateInfoKHR av1_params = {
847+ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR,
848+ .pStdSequenceHeader = &av1_empty_seq,
849 };
850 VkVideoSessionParametersCreateInfoKHR session_params_create = {
851 .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
852diff --git a/libavcodec/vulkan_decode.h b/libavcodec/vulkan_decode.h
853index a43e328d73..7ba8b239cb 100644
854--- a/libavcodec/vulkan_decode.h
855+++ b/libavcodec/vulkan_decode.h
856@@ -37,7 +37,7 @@ typedef struct FFVulkanDecodeDescriptor {
857 typedef struct FFVulkanDecodeProfileData {
858 VkVideoDecodeH264ProfileInfoKHR h264_profile;
859 VkVideoDecodeH265ProfileInfoKHR h265_profile;
860- VkVideoDecodeAV1ProfileInfoMESA av1_profile;
861+ VkVideoDecodeAV1ProfileInfoKHR av1_profile;
862 VkVideoDecodeUsageInfoKHR usage;
863 VkVideoProfileInfoKHR profile;
864 VkVideoProfileListInfoKHR profile_list;
865diff --git a/libavcodec/vulkan_video.h b/libavcodec/vulkan_video.h
866index bb69e920bb..01a1de7d9d 100644
867--- a/libavcodec/vulkan_video.h
868+++ b/libavcodec/vulkan_video.h
869@@ -22,8 +22,6 @@
870 #include "vulkan.h"
871
872 #include <vk_video/vulkan_video_codecs_common.h>
873-#include "vulkan_video_codec_av1std.h"
874-#include "vulkan_video_codec_av1std_decode.h"
875
876 #define CODEC_VER_MAJ(ver) (ver >> 22)
877 #define CODEC_VER_MIN(ver) ((ver >> 12) & ((1 << 10) - 1))
878diff --git a/libavcodec/vulkan_video_codec_av1std_decode.h b/libavcodec/vulkan_video_codec_av1std_decode.h
879deleted file mode 100644
880index e2f37b4e6e..0000000000
881--- a/libavcodec/vulkan_video_codec_av1std_decode.h
882+++ /dev/null
883@@ -1,36 +0,0 @@
884-/* Copyright 2023 Lynne
885- * Copyright 2023 Dave Airlie
886- *
887- * Licensed under the Apache License, Version 2.0 (the "License");
888- * you may not use this file except in compliance with the License.
889- * You may obtain a copy of the License at
890- *
891- * http://www.apache.org/licenses/LICENSE-2.0
892- *
893- * Unless required by applicable law or agreed to in writing, software
894- * distributed under the License is distributed on an "AS IS" BASIS,
895- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
896- * See the License for the specific language governing permissions and
897- * limitations under the License.
898- */
899-
900-#ifndef VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_
901-#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1
902-
903-/*
904-** This header is NOT YET generated from the Khronos Vulkan XML API Registry.
905-**
906-*/
907-
908-#ifdef __cplusplus
909-extern "C" {
910-#endif
911-#define vulkan_video_codec_av1std_decode 1
912-
913-
914-
915-#ifdef __cplusplus
916-}
917-#endif
918-
919-#endif
920diff --git a/libavcodec/vulkan_video_codec_av1std.h b/libavcodec/vulkan_video_codec_av1std.h
921deleted file mode 100644
922index c91589eee2..0000000000
923--- a/libavcodec/vulkan_video_codec_av1std.h
924+++ /dev/null
925@@ -1,403 +0,0 @@
926-/* Copyright 2023 Lynne
927- * Copyright 2023 Dave Airlie
928- *
929- * Licensed under the Apache License, Version 2.0 (the "License");
930- * you may not use this file except in compliance with the License.
931- * You may obtain a copy of the License at
932- *
933- * http://www.apache.org/licenses/LICENSE-2.0
934- *
935- * Unless required by applicable law or agreed to in writing, software
936- * distributed under the License is distributed on an "AS IS" BASIS,
937- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
938- * See the License for the specific language governing permissions and
939- * limitations under the License.
940- */
941-
942-#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_
943-#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
944-
945-/*
946-** This header is NOT YET generated from the Khronos Vulkan XML API Registry.
947-**
948-*/
949-
950-#ifdef __cplusplus
951-extern "C" {
952-#endif
953-#define vulkan_video_codec_av1std 1
954-
955-#define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \
956- ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
957-#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_0_1_0 VK_MAKE_VIDEO_STD_VERSION(0, 1, 0)
958-#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_0_1_0
959-#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_av1_decode"
960-
961-typedef enum StdVideoAV1MESAProfile {
962- STD_VIDEO_AV1_MESA_PROFILE_MAIN = 0,
963- STD_VIDEO_AV1_MESA_PROFILE_HIGH = 1,
964- STD_VIDEO_AV1_MESA_PROFILE_PROFESSIONAL = 2,
965-} StdVideoAV1MESAProfile;
966-
967-typedef enum StdVideoAV1MESALevel {
968- STD_VIDEO_AV1_MESA_LEVEL_2_0 = 0,
969- STD_VIDEO_AV1_MESA_LEVEL_2_1 = 1,
970- STD_VIDEO_AV1_MESA_LEVEL_2_2 = 2,
971- STD_VIDEO_AV1_MESA_LEVEL_2_3 = 3,
972- STD_VIDEO_AV1_MESA_LEVEL_3_0 = 4,
973- STD_VIDEO_AV1_MESA_LEVEL_3_1 = 5,
974- STD_VIDEO_AV1_MESA_LEVEL_3_2 = 6,
975- STD_VIDEO_AV1_MESA_LEVEL_3_3 = 7,
976- STD_VIDEO_AV1_MESA_LEVEL_4_0 = 8,
977- STD_VIDEO_AV1_MESA_LEVEL_4_1 = 9,
978- STD_VIDEO_AV1_MESA_LEVEL_4_2 = 10,
979- STD_VIDEO_AV1_MESA_LEVEL_4_3 = 11,
980- STD_VIDEO_AV1_MESA_LEVEL_5_0 = 12,
981- STD_VIDEO_AV1_MESA_LEVEL_5_1 = 13,
982- STD_VIDEO_AV1_MESA_LEVEL_5_2 = 14,
983- STD_VIDEO_AV1_MESA_LEVEL_5_3 = 15,
984- STD_VIDEO_AV1_MESA_LEVEL_6_0 = 16,
985- STD_VIDEO_AV1_MESA_LEVEL_6_1 = 17,
986- STD_VIDEO_AV1_MESA_LEVEL_6_2 = 18,
987- STD_VIDEO_AV1_MESA_LEVEL_6_3 = 19,
988- STD_VIDEO_AV1_MESA_LEVEL_7_0 = 20,
989- STD_VIDEO_AV1_MESA_LEVEL_7_1 = 21,
990- STD_VIDEO_AV1_MESA_LEVEL_7_2 = 22,
991- STD_VIDEO_AV1_MESA_LEVEL_7_3 = 23,
992- STD_VIDEO_AV1_MESA_LEVEL_MAX = 31,
993-} StdVideoAV1MESALevel;
994-
995-typedef struct StdVideoAV1MESAFilmGrainFlags {
996- uint8_t apply_grain;
997- uint8_t chroma_scaling_from_luma;
998- uint8_t overlap_flag;
999- uint8_t clip_to_restricted_range;
1000-} StdVideoAV1MESAFilmGrainFlags;
1001-
1002-typedef struct StdVideoAV1MESAFilmGrainParameters {
1003- StdVideoAV1MESAFilmGrainFlags flags;
1004- uint32_t grain_scaling_minus_8;
1005- uint32_t ar_coeff_lag;
1006- uint32_t ar_coeff_shift_minus_6;
1007- uint32_t grain_scale_shift;
1008-
1009- uint16_t grain_seed;
1010- uint8_t num_y_points;
1011- uint8_t point_y_value[14];
1012- uint8_t point_y_scaling[14];
1013-
1014- uint8_t num_cb_points;
1015- uint8_t point_cb_value[10];
1016- uint8_t point_cb_scaling[10];
1017-
1018- uint8_t num_cr_points;
1019- uint8_t point_cr_value[10];
1020- uint8_t point_cr_scaling[10];
1021-
1022- int8_t ar_coeffs_y_plus_128[24];
1023- int8_t ar_coeffs_cb_plus_128[25];
1024- int8_t ar_coeffs_cr_plus_128[25];
1025- uint8_t cb_mult;
1026- uint8_t cb_luma_mult;
1027- uint16_t cb_offset;
1028- uint8_t cr_mult;
1029- uint8_t cr_luma_mult;
1030- uint16_t cr_offset;
1031-} StdVideoAV1MESAFilmGrainParameters;
1032-
1033-typedef struct StdVideoAV1MESAGlobalMotionFlags {
1034- uint8_t gm_invalid;
1035-} StdVideoAV1MESAGlobalMotionFlags;
1036-
1037-typedef struct StdVideoAV1MESAGlobalMotion {
1038- StdVideoAV1MESAGlobalMotionFlags flags;
1039- uint8_t gm_type;
1040- uint32_t gm_params[6];
1041-} StdVideoAV1MESAGlobalMotion;
1042-
1043-typedef struct StdVideoAV1MESALoopRestoration {
1044- uint8_t lr_type[3];
1045- uint8_t lr_unit_shift;
1046- uint8_t lr_uv_shift;
1047-} StdVideoAV1MESALoopRestoration;
1048-
1049-typedef struct StdVideoAV1MESATileInfoFlags {
1050- uint8_t uniform_tile_spacing_flag;
1051-} StdVideoAV1MESATileInfoFlags;
1052-
1053-typedef struct StdVideoAV1MESATileInfo {
1054- StdVideoAV1MESATileInfoFlags flags;
1055- uint8_t tile_cols;
1056- uint8_t tile_rows;
1057- uint8_t tile_start_col_sb[64];
1058- uint8_t tile_start_row_sb[64];
1059- uint8_t width_in_sbs_minus_1[64];
1060- uint8_t height_in_sbs_minus_1[64];
1061- uint16_t context_update_tile_id;
1062- uint8_t tile_size_bytes_minus1;
1063-} StdVideoAV1MESATileInfo;
1064-
1065-typedef struct StdVideoAV1MESAQuantizationFlags {
1066- uint8_t using_qmatrix;
1067-} StdVideoAV1MESAQuantizationFlags;
1068-
1069-typedef struct StdVideoAV1MESAQuantization {
1070- StdVideoAV1MESAQuantizationFlags flags;
1071- uint8_t base_q_idx;
1072- int8_t delta_q_y_dc;
1073- uint8_t diff_uv_delta;
1074- int8_t delta_q_u_dc;
1075- int8_t delta_q_u_ac;
1076- int8_t delta_q_v_dc;
1077- int8_t delta_q_v_ac;
1078- uint8_t qm_y;
1079- uint8_t qm_u;
1080- uint8_t qm_v;
1081-} StdVideoAV1MESAQuantization;
1082-
1083-typedef struct StdVideoAV1MESACDEF {
1084- uint8_t damping_minus_3;
1085- uint8_t bits;
1086- uint8_t y_pri_strength[8];
1087- uint8_t y_sec_strength[8];
1088- uint8_t uv_pri_strength[8];
1089- uint8_t uv_sec_strength[8];
1090-} StdVideoAV1MESACDEF;
1091-
1092-typedef struct StdVideoAV1MESADeltaQFlags {
1093- uint8_t delta_lf_present;
1094- uint8_t delta_lf_multi;
1095-} StdVideoAV1MESADeltaQFlags;
1096-
1097-typedef struct StdVideoAV1MESADeltaQ {
1098- StdVideoAV1MESADeltaQFlags flags;
1099- uint8_t delta_q_res;
1100- uint8_t delta_lf_res;
1101-} StdVideoAV1MESADeltaQ;
1102-
1103-typedef struct StdVideoAV1MESASegmentationFlags {
1104- uint8_t enabled;
1105- uint8_t update_map;
1106- uint8_t temporal_update;
1107- uint8_t update_data;
1108-} StdVideoAV1MESASegmentationFlags;
1109-
1110-typedef struct StdVideoAV1MESASegmentation {
1111- StdVideoAV1MESASegmentationFlags flags;
1112- uint8_t feature_enabled_bits[8];
1113- int16_t feature_data[8][8];
1114-} StdVideoAV1MESASegmentation;
1115-
1116-typedef struct StdVideoAV1MESALoopFilterFlags {
1117- uint8_t delta_enabled;
1118- uint8_t delta_update;
1119-} StdVideoAV1MESALoopFilterFlags;
1120-
1121-typedef struct StdVideoAV1MESALoopFilter {
1122- StdVideoAV1MESALoopFilterFlags flags;
1123- uint8_t level[4];
1124- uint8_t sharpness;
1125- int8_t ref_deltas[8];
1126- int8_t mode_deltas[2];
1127-} StdVideoAV1MESALoopFilter;
1128-
1129-typedef struct StdVideoAV1MESAFrameHeaderFlags {
1130- uint8_t error_resilient_mode;
1131- uint8_t disable_cdf_update;
1132- uint8_t use_superres;
1133- uint8_t render_and_frame_size_different;
1134- uint8_t allow_screen_content_tools;
1135- uint8_t is_filter_switchable;
1136- uint8_t force_integer_mv;
1137- uint8_t frame_size_override_flag;
1138- uint8_t buffer_removal_time_present_flag;
1139- uint8_t allow_intrabc;
1140- uint8_t frame_refs_short_signaling;
1141- uint8_t allow_high_precision_mv;
1142- uint8_t is_motion_mode_switchable;
1143- uint8_t use_ref_frame_mvs;
1144- uint8_t disable_frame_end_update_cdf;
1145- uint8_t allow_warped_motion;
1146- uint8_t reduced_tx_set;
1147- uint8_t reference_select;
1148- uint8_t skip_mode_present;
1149- uint8_t delta_q_present;
1150- uint8_t UsesLr;
1151-} StdVideoAV1MESAFrameHeaderFlags;
1152-
1153-typedef struct StdVideoAV1MESAFrameHeader {
1154- StdVideoAV1MESAFrameHeaderFlags flags;
1155-
1156- uint32_t frame_presentation_time;
1157- uint32_t display_frame_id;
1158- uint32_t current_frame_id;
1159- uint8_t frame_to_show_map_idx;
1160- uint8_t frame_type;
1161- uint8_t order_hint;
1162- uint8_t primary_ref_frame;
1163- uint16_t frame_width_minus_1;
1164- uint16_t frame_height_minus_1;
1165- uint16_t render_width_minus_1;
1166- uint16_t render_height_minus_1;
1167- uint8_t coded_denom;
1168-
1169- uint8_t refresh_frame_flags;
1170- uint8_t ref_order_hint[8];
1171- int8_t ref_frame_idx[7];
1172- uint32_t delta_frame_id_minus1[7];
1173-
1174- uint8_t interpolation_filter;
1175- uint8_t tx_mode;
1176-
1177- StdVideoAV1MESATileInfo tiling;
1178- StdVideoAV1MESAQuantization quantization;
1179- StdVideoAV1MESASegmentation segmentation;
1180- StdVideoAV1MESADeltaQ delta_q;
1181- StdVideoAV1MESALoopFilter loop_filter;
1182- StdVideoAV1MESACDEF cdef;
1183- StdVideoAV1MESALoopRestoration lr;
1184- StdVideoAV1MESAGlobalMotion global_motion[8]; // One per ref frame
1185- StdVideoAV1MESAFilmGrainParameters film_grain;
1186-} StdVideoAV1MESAFrameHeader;
1187-
1188-typedef struct StdVideoAV1MESAScreenCoding {
1189- uint8_t seq_force_screen_content_tools;
1190-} StdVideoAV1MESAScreenCoding;
1191-
1192-typedef struct StdVideoAV1MESATimingInfoFlags {
1193- uint8_t equal_picture_interval;
1194-} StdVideoAV1MESATimingInfoFlags;
1195-
1196-typedef struct StdVideoAV1MESATimingInfo {
1197- StdVideoAV1MESATimingInfoFlags flags;
1198- uint32_t num_units_in_display_tick;
1199- uint32_t time_scale;
1200- uint32_t num_ticks_per_picture_minus_1;
1201-} StdVideoAV1MESATimingInfo;
1202-
1203-typedef struct StdVideoAV1MESAColorConfigFlags {
1204- uint8_t mono_chrome;
1205- uint8_t color_range;
1206- uint8_t separate_uv_delta_q;
1207-} StdVideoAV1MESAColorConfigFlags;
1208-
1209-typedef struct StdVideoAV1MESAColorConfig {
1210- StdVideoAV1MESAColorConfigFlags flags;
1211- uint8_t bit_depth;
1212- uint8_t subsampling_x;
1213- uint8_t subsampling_y;
1214-} StdVideoAV1MESAColorConfig;
1215-
1216-typedef struct StdVideoAV1MESASequenceHeaderFlags {
1217- uint8_t still_picture;
1218- uint8_t reduced_still_picture_header;
1219- uint8_t use_128x128_superblock;
1220- uint8_t enable_filter_intra;
1221- uint8_t enable_intra_edge_filter;
1222- uint8_t enable_interintra_compound;
1223- uint8_t enable_masked_compound;
1224- uint8_t enable_warped_motion;
1225- uint8_t enable_dual_filter;
1226- uint8_t enable_order_hint;
1227- uint8_t enable_jnt_comp;
1228- uint8_t enable_ref_frame_mvs;
1229- uint8_t frame_id_numbers_present_flag;
1230- uint8_t enable_superres;
1231- uint8_t enable_cdef;
1232- uint8_t enable_restoration;
1233- uint8_t film_grain_params_present;
1234- uint8_t timing_info_present_flag;
1235- uint8_t initial_display_delay_present_flag;
1236-} StdVideoAV1MESASequenceHeaderFlags;
1237-
1238-typedef struct StdVideoAV1MESASequenceHeader {
1239- StdVideoAV1MESASequenceHeaderFlags flags;
1240-
1241- StdVideoAV1MESAProfile seq_profile;
1242- uint8_t frame_width_bits_minus_1;
1243- uint8_t frame_height_bits_minus_1;
1244- uint16_t max_frame_width_minus_1;
1245- uint16_t max_frame_height_minus_1;
1246- uint8_t delta_frame_id_length_minus_2;
1247- uint8_t additional_frame_id_length_minus_1;
1248- uint8_t order_hint_bits_minus_1;
1249- uint8_t seq_choose_integer_mv;
1250- uint8_t seq_force_integer_mv;
1251-
1252- StdVideoAV1MESATimingInfo timing_info;
1253- StdVideoAV1MESAColorConfig color_config;
1254-} StdVideoAV1MESASequenceHeader;
1255-
1256-typedef struct StdVideoAV1MESATile {
1257- uint16_t tg_start;
1258- uint16_t tg_end;
1259- uint16_t row;
1260- uint16_t column;
1261- uint32_t size;
1262- uint32_t offset;
1263-} StdVideoAV1MESATile;
1264-
1265-typedef struct StdVideoAV1MESATileList {
1266- StdVideoAV1MESATile *tile_list;
1267- uint32_t nb_tiles;
1268-} StdVideoAV1MESATileList;
1269-
1270-typedef struct VkVideoDecodeAV1PictureInfoMESA {
1271- VkStructureType sType;
1272- const void *pNext;
1273- StdVideoAV1MESAFrameHeader *frame_header;
1274- StdVideoAV1MESATileList *tile_list;
1275- uint8_t skip_mode_frame_idx[2];
1276-} VkVideoDecodeAV1PictureInfoMESA;
1277-
1278-typedef struct VkVideoDecodeAV1DpbSlotInfoMESA {
1279- VkStructureType sType;
1280- const void *pNext;
1281- uint8_t frameIdx;
1282- uint8_t ref_order_hint[7];
1283- uint8_t disable_frame_end_update_cdf;
1284-} VkVideoDecodeAV1DpbSlotInfoMESA;
1285-
1286-typedef struct VkVideoDecodeAV1SessionParametersAddInfoMESA {
1287- VkStructureType sType;
1288- const void *pNext;
1289- StdVideoAV1MESASequenceHeader *sequence_header;
1290-} VkVideoDecodeAV1SessionParametersAddInfoMESA;
1291-
1292-typedef struct VkVideoDecodeAV1SessionParametersCreateInfoMESA {
1293- VkStructureType sType;
1294- const void *pNext;
1295- const VkVideoDecodeAV1SessionParametersAddInfoMESA *pParametersAddInfo;
1296-} VkVideoDecodeAV1SessionParametersCreateInfoMESA;
1297-
1298-typedef struct VkVideoDecodeAV1ProfileInfoMESA {
1299- VkStructureType sType;
1300- const void *pNext;
1301- StdVideoAV1MESAProfile stdProfileIdc;
1302-} VkVideoDecodeAV1ProfileInfoMESA;
1303-
1304-typedef enum VkVideoDecodeAV1CapabilityFlagBitsMESA {
1305- VK_VIDEO_DECODE_AV1_CAPABILITY_EXTERNAL_FILM_GRAIN_MESA = 0x00000001,
1306- VK_VIDEO_DECODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_MESA = 0x7FFFFFFF
1307-} VkVideoDecodeAV1CapabilityFlagBitsMESA;
1308-typedef VkFlags VkVideoDecodeAV1CapabilityFlagsMESA;
1309-
1310-typedef struct VkVideoDecodeAV1CapabilitiesMESA {
1311- VkStructureType sType;
1312- const void *pNext;
1313- VkVideoDecodeAV1CapabilityFlagsMESA flags;
1314- StdVideoAV1MESALevel maxLevelIdc;
1315-} VkVideoDecodeAV1CapabilitiesMESA;
1316-
1317-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_MESA 1000509000
1318-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA 1000509001
1319-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_ADD_INFO_MESA 1000509002
1320-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_MESA 1000509003
1321-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_MESA 1000509004
1322-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_MESA 1000509005
1323-
1324-#ifdef __cplusplus
1325-}
1326-#endif
1327-
1328-#endif
1329diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
1330index 91b9f96ccf..6e3b96b73a 100644
1331--- a/libavutil/hwcontext_vulkan.c
1332+++ b/libavutil/hwcontext_vulkan.c
1333@@ -446,7 +446,7 @@ static const VulkanOptExtension optional_device_exts[] = {
1334 { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_QUEUE },
1335 { VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H264 },
1336 { VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H265 },
1337- { "VK_MESA_video_decode_av1", FF_VK_EXT_VIDEO_DECODE_AV1 },
1338+ { VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_AV1 },
1339 };
1340
1341 static VkBool32 VKAPI_CALL vk_dbg_callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity,
1342diff --git a/libavutil/vulkan_functions.h b/libavutil/vulkan_functions.h
1343index 65021b04b1..6b379acf93 100644
1344--- a/libavutil/vulkan_functions.h
1345+++ b/libavutil/vulkan_functions.h
1346@@ -43,7 +43,7 @@ typedef enum FFVulkanExtensions {
1347 FF_VK_EXT_VIDEO_DECODE_QUEUE = 1ULL << 11, /* VK_KHR_video_decode_queue */
1348 FF_VK_EXT_VIDEO_DECODE_H264 = 1ULL << 12, /* VK_EXT_video_decode_h264 */
1349 FF_VK_EXT_VIDEO_DECODE_H265 = 1ULL << 13, /* VK_EXT_video_decode_h265 */
1350- FF_VK_EXT_VIDEO_DECODE_AV1 = 1ULL << 14, /* VK_MESA_video_decode_av1 */
1351+ FF_VK_EXT_VIDEO_DECODE_AV1 = 1ULL << 14, /* VK_KHR_video_decode_av1 */
1352 FF_VK_EXT_ATOMIC_FLOAT = 1ULL << 15, /* VK_EXT_shader_atomic_float */
1353 FF_VK_EXT_COOP_MATRIX = 1ULL << 16, /* VK_KHR_cooperative_matrix */
1354
1355diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h
1356index f9e739e1e3..73cf03935d 100644
1357--- a/libavutil/vulkan_loader.h
1358+++ b/libavutil/vulkan_loader.h
1359@@ -58,7 +58,7 @@ static inline uint64_t ff_vk_extensions_to_mask(const char * const *extensions,
1360 { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_QUEUE },
1361 { VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H264 },
1362 { VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H265 },
1363- { "VK_MESA_video_decode_av1", FF_VK_EXT_VIDEO_DECODE_AV1 },
1364+ { VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_AV1 },
1365 };
1366
1367 FFVulkanExtensions mask = 0x0;
1368diff --git a/libavcodec/vulkan_video.c b/libavcodec/vulkan_video.c
1369--- ffmpeg-6.1.1.orig/libavcodec/vulkan_video.c
1370+++ ffmpeg-6.1.1/libavcodec/vulkan_video.c
1371@@ -37,7 +37,7 @@ const FFVkCodecMap ff_vk_codec_map[AV_CO
1372 0,
1373 0,
1374 FF_VK_EXT_VIDEO_DECODE_AV1,
1375- 0x01000000 /* TODO fix this */
1376+ VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR
1377 },
1378 };
1379
1380--
13812.25.1
1382
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
index aa59755034..c0bce2db7a 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
@@ -22,7 +22,11 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
22 file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ 22 file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
23 file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" 23 file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
24 24
25SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz" 25SRC_URI = " \
26 https://www.ffmpeg.org/releases/${BP}.tar.xz \
27 file://av1_ordering_info.patch \
28 file://vulkan_av1_stable_API.patch \
29"
26 30
27SRC_URI[sha256sum] = "8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968" 31SRC_URI[sha256sum] = "8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968"
28 32
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch b/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch
index 21e30d6d46..8520567f17 100644
--- a/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch
+++ b/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch
@@ -1,4 +1,4 @@
1From 0c73b8131efba63c5cd37ea8c7551434c3b57304 Mon Sep 17 00:00:00 2001 1From c20894a5e6f52aa9fe3437e733a228b1a0eb6428 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 9 Sep 2018 17:38:10 -0700 3Date: Sun, 9 Sep 2018 17:38:10 -0700
4Subject: [PATCH] connect has a different signature on musl 4Subject: [PATCH] connect has a different signature on musl
@@ -11,7 +11,6 @@ typcasted to struct sockaddr_in* type inside the function before use
11Upstream-Status: Pending 11Upstream-Status: Pending
12 12
13Signed-off-by: Khem Raj <raj.khem@gmail.com> 13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14
15--- 14---
16 validate/plugins/fault_injection/socket_interposer.c | 7 ++++++- 15 validate/plugins/fault_injection/socket_interposer.c | 7 ++++++-
17 1 file changed, 6 insertions(+), 1 deletion(-) 16 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gst-devtools_1.24.3.bb
index 363d12612f..9df802afe9 100644
--- a/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-devtools_1.24.3.bb
@@ -12,7 +12,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${PV}
12 file://0001-connect-has-a-different-signature-on-musl.patch \ 12 file://0001-connect-has-a-different-signature-on-musl.patch \
13 " 13 "
14 14
15SRC_URI[sha256sum] = "0e1ec0d0b8f2d3d314a397399cd01dfc50c02ac088176996f934758119075ea9" 15SRC_URI[sha256sum] = "b91114a2fd958f42acf441186e87e2bec93538ef35a9f8248111197360ffb237"
16 16
17DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" 17DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
18RRECOMMENDS:${PN} = "git" 18RRECOMMENDS:${PN} = "git"
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
index 02282ac5d9..70b72fd7fb 100644
--- a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb
@@ -23,7 +23,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 23ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
24 24
25do_install:append() { 25do_install:append() {
26 install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop 26 install -m 0644 -D ${UNPACKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop
27} 27}
28 28
29RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback" 29RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.24.3.bb
index 818dbf4e5e..d468f2983c 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.24.3.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
12 " 12 "
13 13
14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz" 14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
15SRC_URI[sha256sum] = "d6dda7aa38a44173278de675ccd92acff0abf473f7bc02e7d1cdd4ce0f3b7642" 15SRC_URI[sha256sum] = "d9c5b152468a45c1fa8351410422090a7192707ad74d2e1a4367f5254e188d91"
16 16
17S = "${WORKDIR}/gst-libav-${PV}" 17S = "${WORKDIR}/gst-libav-${PV}"
18 18
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.10.bb
deleted file mode 100644
index 4cb83937dc..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.10.bb
+++ /dev/null
@@ -1,47 +0,0 @@
1SUMMARY = "OpenMAX IL plugins for GStreamer"
2DESCRIPTION = "Wraps available OpenMAX IL components and makes them available as standard GStreamer elements."
3HOMEPAGE = "http://gstreamer.freedesktop.org/"
4SECTION = "multimedia"
5
6LICENSE = "LGPL-2.1-or-later"
7LICENSE_FLAGS = "commercial"
8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
9 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
10
11SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
12
13SRC_URI[sha256sum] = "ce0126f6de908df4fa7b12136d47d6840dd9f7131ae997e55a817d96a2728a41"
14
15S = "${WORKDIR}/gst-omx-${PV}"
16
17DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad virtual/libomxil"
18
19inherit meson pkgconfig upstream-version-is-even
20
21GSTREAMER_1_0_OMX_TARGET ?= "bellagio"
22GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0"
23
24EXTRA_OEMESON += "-Dtarget=${GSTREAMER_1_0_OMX_TARGET}"
25
26python __anonymous () {
27 omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET")
28 if omx_target in ['generic', 'bellagio']:
29 # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,#
30 # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros);
31 # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this
32 d.appendVar("CFLAGS", " -I${S}/omx/openmax")
33 elif omx_target == "rpi":
34 # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific
35 d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH"))
36}
37
38set_omx_core_name() {
39 sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}${sysconfdir}/xdg/gstomx.conf"
40}
41do_install[postfuncs] += " set_omx_core_name "
42
43FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
44FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
45
46VIRTUAL-RUNTIME_libomxil ?= "libomxil"
47RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_libomxil}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch
index a57fcd7d21..13a481485a 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch
@@ -1,4 +1,4 @@
1From 8be0c6ac60c96e87d8aa443be9c431844dc3d92a Mon Sep 17 00:00:00 2001 1From bb7f964d51de6b888b3b7a6d0c3d260fcad24008 Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com> 2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 26 Jan 2016 15:16:01 -0800 3Date: Tue, 26 Jan 2016 15:16:01 -0800
4Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os 4Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os
@@ -6,13 +6,12 @@ Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os
6Upstream-Status: Pending 6Upstream-Status: Pending
7 7
8Signed-off-by: Andre McCurdy <armccurdy@gmail.com> 8Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
9
10--- 9---
11 gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- 10 gst-libs/gst/codecparsers/gstvc1parser.c | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-) 11 1 file changed, 1 insertion(+), 1 deletion(-)
13 12
14diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c 13diff --git a/gst-libs/gst/codecparsers/gstvc1parser.c b/gst-libs/gst/codecparsers/gstvc1parser.c
15index 2c60ced..e8226d8 100644 14index f9af175..6661e2e 100644
16--- a/gst-libs/gst/codecparsers/gstvc1parser.c 15--- a/gst-libs/gst/codecparsers/gstvc1parser.c
17+++ b/gst-libs/gst/codecparsers/gstvc1parser.c 16+++ b/gst-libs/gst/codecparsers/gstvc1parser.c
18@@ -1730,7 +1730,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size, 17@@ -1730,7 +1730,7 @@ gst_vc1_parse_sequence_layer (const guint8 * data, gsize size,
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch
index 6509a293b7..298337cb0a 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch
@@ -1,4 +1,4 @@
1From 426ee79adeecc24605426030a486d7c5a755048c Mon Sep 17 00:00:00 2001 1From 25efc5b2d22aed4527470ef93970664b210bf8c5 Mon Sep 17 00:00:00 2001
2From: Andre McCurdy <armccurdy@gmail.com> 2From: Andre McCurdy <armccurdy@gmail.com>
3Date: Wed, 3 Feb 2016 18:05:41 -0800 3Date: Wed, 3 Feb 2016 18:05:41 -0800
4Subject: [PATCH] avoid including <sys/poll.h> directly 4Subject: [PATCH] avoid including <sys/poll.h> directly
@@ -8,13 +8,12 @@ musl libc generates warnings if <sys/poll.h> is included directly.
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: Andre McCurdy <armccurdy@gmail.com> 10Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
11
12--- 11---
13 sys/dvb/gstdvbsrc.c | 2 +- 12 sys/dvb/gstdvbsrc.c | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
15 14
16diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c 15diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c
17index b8e5b1a..5bca6e5 100644 16index 33ee3ff..b8ddea9 100644
18--- a/sys/dvb/gstdvbsrc.c 17--- a/sys/dvb/gstdvbsrc.c
19+++ b/sys/dvb/gstdvbsrc.c 18+++ b/sys/dvb/gstdvbsrc.c
20@@ -98,7 +98,7 @@ 19@@ -98,7 +98,7 @@
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
index 50a3143eca..965053348f 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch
@@ -1,4 +1,4 @@
1From e6eb7536fcfc2c75f7831f67b1f16f3f36ef2545 Mon Sep 17 00:00:00 2001 1From 39fbcdfc5383bdae95293a3109c847f64d193b54 Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.z@gmail.com> 2From: Andrey Zhizhikin <andrey.z@gmail.com>
3Date: Mon, 27 Jan 2020 10:22:35 +0000 3Date: Mon, 27 Jan 2020 10:22:35 +0000
4Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build 4Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build
@@ -12,18 +12,17 @@ Upstream-Status: Inappropriate [OE-specific]
12 12
13Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com> 13Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
15
16--- 15---
17 ext/opencv/meson.build | 3 +++ 16 gst-libs/gst/opencv/meson.build | 3 +++
18 1 file changed, 3 insertions(+) 17 1 file changed, 3 insertions(+)
19 18
20diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build 19diff --git a/gst-libs/gst/opencv/meson.build b/gst-libs/gst/opencv/meson.build
21index 37e2015..326f737 100644 20index 1d337f1..f47939a 100644
22--- a/ext/opencv/meson.build 21--- a/gst-libs/gst/opencv/meson.build
23+++ b/ext/opencv/meson.build 22+++ b/gst-libs/gst/opencv/meson.build
24@@ -87,6 +87,9 @@ if opencv_found 23@@ -52,6 +52,9 @@ if opencv_found
25 opencv_prefix = opencv_dep.get_variable('prefix') 24 # /usr/include/opencv4/opencv2/flann/logger.h:83:36: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
26 gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"'] 25 gstopencv_cargs += cxx.get_supported_arguments(['-Wno-missing-include-dirs', '-Wno-format-nonliteral'])
27 26
28+ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() 27+ pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip()
29+ opencv_prefix = pkgconf_sysroot + opencv_prefix 28+ opencv_prefix = pkgconf_sysroot + opencv_prefix
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.3.bb
index 70b9850a49..693ee06669 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.24.3.bb
@@ -10,7 +10,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad
10 file://0002-avoid-including-sys-poll.h-directly.patch \ 10 file://0002-avoid-including-sys-poll.h-directly.patch \
11 file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ 11 file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
12 " 12 "
13SRC_URI[sha256sum] = "dabcd60c762165bb043eba753d599212514c94684e4db9a2e25484cb6508ebbf" 13SRC_URI[sha256sum] = "e90f26c7dc9c76f4aa599b758cfd6d8c10d6a0b9cb265ba2c3c9bdf3888558f8"
14 14
15S = "${WORKDIR}/gst-plugins-bad-${PV}" 15S = "${WORKDIR}/gst-plugins-bad-${PV}"
16 16
@@ -60,7 +60,7 @@ PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde26
60PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" 60PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2"
61PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" 61PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
62PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" 62PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
63PACKAGECONFIG[msdk] = "-Dmsdk=enabled -Dmfx_api=oneVPL,-Dmsdk=disabled,onevpl-intel-gpu" 63PACKAGECONFIG[msdk] = "-Dmsdk=enabled -Dmfx_api=oneVPL,-Dmsdk=disabled,vpl-gpu-rt"
64PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" 64PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon"
65PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" 65PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
66PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" 66PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv"
@@ -124,7 +124,6 @@ EXTRA_OEMESON += " \
124 -Dgs=disabled \ 124 -Dgs=disabled \
125 -Dgsm=disabled \ 125 -Dgsm=disabled \
126 -Diqa=disabled \ 126 -Diqa=disabled \
127 -Dkate=disabled \
128 -Dladspa=disabled \ 127 -Dladspa=disabled \
129 -Dldac=disabled \ 128 -Dldac=disabled \
130 -Dlv2=disabled \ 129 -Dlv2=disabled \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch
index 34c99ded42..38d0fbf6bf 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch
@@ -1,4 +1,4 @@
1From 63fe5a7b4ef70e2c490bad3b0838329935a8d77c Mon Sep 17 00:00:00 2001 1From 5a4d65e13a326103ac02f156c01b6fcbb0269902 Mon Sep 17 00:00:00 2001
2From: zhouming <b42586@freescale.com> 2From: zhouming <b42586@freescale.com>
3Date: Wed, 14 May 2014 10:16:20 +0800 3Date: Wed, 14 May 2014 10:16:20 +0800
4Subject: [PATCH] ENGR00312515: get caps from src pad when query caps 4Subject: [PATCH] ENGR00312515: get caps from src pad when query caps
@@ -8,7 +8,6 @@ https://bugzilla.gnome.org/show_bug.cgi?id=728312
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: zhouming <b42586@freescale.com> 10Signed-off-by: zhouming <b42586@freescale.com>
11
12--- 11---
13 gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++ 12 gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++
14 1 file changed, 13 insertions(+) 13 1 file changed, 13 insertions(+)
@@ -17,7 +16,7 @@ Signed-off-by: zhouming <b42586@freescale.com>
17diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c 16diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
18old mode 100644 17old mode 100644
19new mode 100755 18new mode 100755
20index 173da37..2b7f34c 19index ef0ff90..53f05c8
21--- a/gst-libs/gst/tag/gsttagdemux.c 20--- a/gst-libs/gst/tag/gsttagdemux.c
22+++ b/gst-libs/gst/tag/gsttagdemux.c 21+++ b/gst-libs/gst/tag/gsttagdemux.c
23@@ -1796,6 +1796,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) 22@@ -1796,6 +1796,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
index c922aadede..4090b77c8d 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
@@ -1,4 +1,4 @@
1From 7bf9525528c8f4a47413d7f82214d76f95f0c5f6 Mon Sep 17 00:00:00 2001 1From 21b8339077f52ec9220e0d3d1f3872e23c7c2e88 Mon Sep 17 00:00:00 2001
2From: Mingke Wang <mingke.wang@freescale.com> 2From: Mingke Wang <mingke.wang@freescale.com>
3Date: Thu, 19 Mar 2015 14:17:10 +0800 3Date: Thu, 19 Mar 2015 14:17:10 +0800
4Subject: [PATCH] ssaparse: enhance SSA text lines parsing. 4Subject: [PATCH] ssaparse: enhance SSA text lines parsing.
@@ -6,10 +6,9 @@ Subject: [PATCH] ssaparse: enhance SSA text lines parsing.
6some parser will pass in the original ssa text line which starts with "Dialog:" 6some parser will pass in the original ssa text line which starts with "Dialog:"
7and there's are maybe multiple Dialog lines in one input buffer. 7and there's are maybe multiple Dialog lines in one input buffer.
8 8
9Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747496] 9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/178]
10 10
11Signed-off-by: Mingke Wang <mingke.wang@freescale.com> 11Signed-off-by: Mingke Wang <mingke.wang@freescale.com>
12
13--- 12---
14 gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++---- 13 gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++----
15 1 file changed, 134 insertions(+), 16 deletions(-) 14 1 file changed, 134 insertions(+), 16 deletions(-)
@@ -18,7 +17,7 @@ Signed-off-by: Mingke Wang <mingke.wang@freescale.com>
18diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c 17diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c
19old mode 100644 18old mode 100644
20new mode 100755 19new mode 100755
21index d6fdb9c..5ebe678 20index 42fbb42..2dab51c
22--- a/gst/subparse/gstssaparse.c 21--- a/gst/subparse/gstssaparse.c
23+++ b/gst/subparse/gstssaparse.c 22+++ b/gst/subparse/gstssaparse.c
24@@ -270,6 +270,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) 23@@ -270,6 +270,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
index a605533be8..ab46ecee5d 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
@@ -1,4 +1,4 @@
1From 2b07840122bc2e83bd23dad59aa80d9479f2e1e4 Mon Sep 17 00:00:00 2001 1From 246e6f5ed75696b2e9d9a9ee8cd59252724e1334 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org> 2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Tue, 21 May 2019 14:01:11 +0200 3Date: Tue, 21 May 2019 14:01:11 +0200
4Subject: [PATCH] viv-fb: Make sure config.h is included 4Subject: [PATCH] viv-fb: Make sure config.h is included
@@ -8,7 +8,6 @@ This prevents build errors due to missing GST_API_* symbols
8Upstream-Status: Pending 8Upstream-Status: Pending
9 9
10Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> 10Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
11
12--- 11---
13 gst-libs/gst/gl/gl-prelude.h | 4 ++++ 12 gst-libs/gst/gl/gl-prelude.h | 4 ++++
14 1 file changed, 4 insertions(+) 13 1 file changed, 4 insertions(+)
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.3.bb
index d4b69b103f..8a967cf6eb 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.24.3.bb
@@ -11,7 +11,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-ba
11 file://0003-viv-fb-Make-sure-config.h-is-included.patch \ 11 file://0003-viv-fb-Make-sure-config.h-is-included.patch \
12 file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ 12 file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
13 " 13 "
14SRC_URI[sha256sum] = "843a3a2da28e1ee6aeea56dd2be9bffcc3b4bbcd0f974eba4abfc3aa31f0399c" 14SRC_URI[sha256sum] = "f1094397eaa7932f06e57ebbb075aa33aa2c76e4b75630a16b02c8d4af46832e"
15 15
16S = "${WORKDIR}/gst-plugins-base-${PV}" 16S = "${WORKDIR}/gst-plugins-base-${PV}"
17 17
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch
deleted file mode 100644
index 9703a3a889..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1From 99f48716051ce5ddb8c1b77292213af1e462549e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 31 Mar 2020 21:23:28 -0700
4Subject: [PATCH] qt: include ext/qt/gstqtgl.h instead of gst/gl/gstglfuncs.h
5
6gst/gl/gstglfuncs.h is included via ext/qt/gstqtgl.h which has logic to
7prefer qt headers definitions for GLsync
8
9This helps in fixing build errors like below
10
11/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: error: conflicting declaration 'typedef struct __GLsync* GLsync'
12 24 | typedef struct __GLsync *GLsync;
13 | ^~~~~~
14In file included from /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:84,
15 from ../gst-plugins-good-1.16.2/ext/qt/gstqsgtexture.cc:30:
16/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: note: previous declaration as 'typedef void* GLsync
17'
18 40 | typedef gpointer GLsync;
19 | ^~~~~~
20
21Upstream-Status: Pending
22Signed-off-by: Khem Raj <raj.khem@gmail.com>
23
24---
25 ext/qt/gstqsgtexture.cc | 2 +-
26 ext/qt/qtwindow.cc | 2 +-
27 2 files changed, 2 insertions(+), 2 deletions(-)
28
29diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
30index 663696b..36b17d4 100644
31--- a/ext/qt/gstqsgtexture.cc
32+++ b/ext/qt/gstqsgtexture.cc
33@@ -27,7 +27,7 @@
34
35 #include <gst/video/video.h>
36 #include <gst/gl/gl.h>
37-#include <gst/gl/gstglfuncs.h>
38+#include <ext/qt/gstqtgl.h>
39 #include "gstqsgtexture.h"
40
41 #define GST_CAT_DEFAULT gst_qsg_texture_debug
42diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
43index 2872cb5..5a36be9 100644
44--- a/ext/qt/qtwindow.cc
45+++ b/ext/qt/qtwindow.cc
46@@ -25,7 +25,7 @@
47 #include <stdio.h>
48
49 #include <gst/video/video.h>
50-#include <gst/gl/gstglfuncs.h>
51+#include <ext/qt/gstqtgl.h>
52 #include "qtwindow.h"
53 #include "gstqsgtexture.h"
54 #include "gstqtglutility.h"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch
deleted file mode 100644
index 33bd4200f6..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From b77d4806fd5de50d0b017a3e6a19c5bfdef7b3e4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 13 Feb 2023 12:47:31 -0800
4Subject: [PATCH] v4l2: Define ioctl_req_t for posix/linux case
5
6this is an issue seen with musl based linux distros e.g. alpine [1]
7musl is not going to change this since it breaks ABI/API interfaces
8Newer compilers are stringent ( e.g. clang16 ) which can now detect
9signature mismatches in function pointers too, existing code warned but
10did not error with older clang
11
12Fixes
13gstv4l2object.c:544:23: error: incompatible function pointer types assigning to 'gint (*)(gint, ioctl_req_t, ...)' (aka 'int (*)(int, unsigned long, ...)') from 'int (int, int, ...)' [-Wincompatible-function-pointer-types]
14 v4l2object->ioctl = ioctl;
15 ^ ~~~~~
16
17[1] https://gitlab.alpinelinux.org/alpine/aports/-/issues/7580
18
19Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3950]
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21
22---
23 sys/v4l2/gstv4l2object.h | 2 ++
24 1 file changed, 2 insertions(+)
25
26diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
27index d95b375..5223cbb 100644
28--- a/sys/v4l2/gstv4l2object.h
29+++ b/sys/v4l2/gstv4l2object.h
30@@ -76,6 +76,8 @@ typedef gboolean (*GstV4l2UpdateFpsFunction) (GstV4l2Object * v4l2object);
31 * 'unsigned long' for the 2nd parameter */
32 #ifdef __ANDROID__
33 typedef unsigned ioctl_req_t;
34+#elif defined(__linux__) && !defined(__GLIBC__) /* musl/linux */
35+typedef int ioctl_req_t;
36 #else
37 typedef gulong ioctl_req_t;
38 #endif
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.3.bb
index 9a76aaf247..41a93e85a4 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.24.3.bb
@@ -4,11 +4,9 @@ SUMMARY = "'Good' GStreamer plugins"
4HOMEPAGE = "https://gstreamer.freedesktop.org/" 4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues" 5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues"
6 6
7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ 7SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz"
8 file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
9 file://0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch"
10 8
11SRC_URI[sha256sum] = "f748feae922cad62f20102a84ade8f42b78e1e44a34866aa3ea766f9172e1c7f" 9SRC_URI[sha256sum] = "150f914e61dc05600b68b88ca103c7cc227130158e389ea9ea159f4050a2ebb0"
12 10
13S = "${WORKDIR}/gst-plugins-good-${PV}" 11S = "${WORKDIR}/gst-plugins-good-${PV}"
14 12
@@ -37,6 +35,8 @@ X11DISABLEOPTS = "-Dximagesrc=disabled -Dximagesrc-xshm=disabled -Dximagesrc-xfi
37 35
38QT5WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}" 36QT5WAYLANDDEPENDS = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "qtwayland", "", d)}"
39 37
38PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr"
39PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr"
40PACKAGECONFIG[asm] = "-Dasm=enabled,-Dasm=disabled,nasm-native" 40PACKAGECONFIG[asm] = "-Dasm=enabled,-Dasm=disabled,nasm-native"
41PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" 41PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2"
42PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" 42PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
@@ -52,7 +52,7 @@ PACKAGECONFIG[libpng] = "-Dpng=enabled,-Dpng=disabled,libpng"
52PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils" 52PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils"
53PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" 53PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123"
54PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" 54PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio"
55PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native ${QT5WAYLANDDEPENDS}" 55PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native qttools-native ${QT5WAYLANDDEPENDS}"
56PACKAGECONFIG[soup2] = "-Dsoup=enabled,,libsoup-2.4,,,soup3" 56PACKAGECONFIG[soup2] = "-Dsoup=enabled,,libsoup-2.4,,,soup3"
57PACKAGECONFIG[soup3] = "-Dsoup=enabled,,libsoup,,,soup2" 57PACKAGECONFIG[soup3] = "-Dsoup=enabled,,libsoup,,,soup2"
58PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex" 58PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.24.3.bb
index 7cbbf9fda0..533de0234f 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.24.3.bb
@@ -15,7 +15,7 @@ SRC_URI = " \
15 https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ 15 https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
16 " 16 "
17 17
18SRC_URI[sha256sum] = "cc80a81a22c0b3b31ab7f1b8bf18dda23c72d2791b86cc6264923a68336329ea" 18SRC_URI[sha256sum] = "4c951341c4c648630b6fe1234ec113d81dd2d248529bf2b5478e0ad077c80ed3"
19 19
20S = "${WORKDIR}/gst-plugins-ugly-${PV}" 20S = "${WORKDIR}/gst-plugins-ugly-${PV}"
21 21
@@ -25,11 +25,8 @@ GST_PLUGIN_SET_HAS_EXAMPLES = "0"
25 25
26PACKAGECONFIG ??= " \ 26PACKAGECONFIG ??= " \
27 ${GSTREAMER_ORC} \ 27 ${GSTREAMER_ORC} \
28 a52dec mpeg2dec \
29" 28"
30 29
31PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr"
32PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr"
33PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52" 30PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52"
34PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio" 31PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio"
35PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread" 32PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.24.3.bb
index b829a0fc62..5fbf860741 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.24.3.bb
@@ -8,7 +8,7 @@ LICENSE = "LGPL-2.1-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" 8LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
9 9
10SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" 10SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
11SRC_URI[sha256sum] = "99e37ea9f7163099734f9b0fce361bc67a0e7a65ffba9bc497127506a3fdedb3" 11SRC_URI[sha256sum] = "ecdb3e2ba94ea2c82b93a8c715d5a7e04f9726a8838c0a6b17694928fd1e8595"
12 12
13DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" 13DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
14RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" 14RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.24.3.bb
index 0e910e3dc4..f63d61b2c9 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.24.3.bb
@@ -10,7 +10,7 @@ PNREAL = "gst-rtsp-server"
10 10
11SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" 11SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
12 12
13SRC_URI[sha256sum] = "60eb4f80b5a7ca929c21a61d50be9813a3413787959a5875de56a8ad5ca25f35" 13SRC_URI[sha256sum] = "62628ecca78b8f5b51c59a4d602c65e9205ffc50c3c83cd61fab1f6348b63565"
14 14
15S = "${WORKDIR}/${PNREAL}-${PV}" 15S = "${WORKDIR}/${PNREAL}-${PV}"
16 16
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.24.3.bb
index b52b7aa4c4..8ddfe15de9 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.24.3.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
11 11
12SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz" 12SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
13 13
14SRC_URI[sha256sum] = "094ca144aca8f2c554a2517dfdc421fa37c80294c6f12b992c20cbc73aa2c0bd" 14SRC_URI[sha256sum] = "845f2efe0dca8dab234dde8fb091da2cd06a9d2a683422b56dcb688954f9070e"
15 15
16S = "${WORKDIR}/${REALPN}-${PV}" 16S = "${WORKDIR}/${REALPN}-${PV}"
17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" 17DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
index 0d839bd6c8..a190370c16 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch
@@ -1,4 +1,4 @@
1From 5372cd5bf2a9dd247b9c5fc6e4fe248046dbb085 Mon Sep 17 00:00:00 2001 1From 381f50a27766c425af36a7203061716497e6603f Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100 3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH] tests: respect the idententaion used in meson 4Subject: [PATCH] tests: respect the idententaion used in meson
@@ -6,16 +6,15 @@ Subject: [PATCH] tests: respect the idententaion used in meson
6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
7 7
8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
9
10--- 9---
11 tests/check/meson.build | 10 +++++----- 10 tests/check/meson.build | 10 +++++-----
12 1 file changed, 5 insertions(+), 5 deletions(-) 11 1 file changed, 5 insertions(+), 5 deletions(-)
13 12
14diff --git a/tests/check/meson.build b/tests/check/meson.build 13diff --git a/tests/check/meson.build b/tests/check/meson.build
15index 9787b0a..16caac7 100644 14index 6540279..e9501fe 100644
16--- a/tests/check/meson.build 15--- a/tests/check/meson.build
17+++ b/tests/check/meson.build 16+++ b/tests/check/meson.build
18@@ -145,11 +145,11 @@ foreach t : core_tests 17@@ -146,11 +146,11 @@ foreach t : core_tests
19 18
20 if not skip_test 19 if not skip_test
21 exe = executable(test_name, fname, 20 exe = executable(test_name, fname,
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
index 64717e66c3..a990940cc6 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch
@@ -1,4 +1,4 @@
1From 27e977d03b0f7c1d0bf19621ef0cec0585410e7b Mon Sep 17 00:00:00 2001 1From 31dea17a1d5de0003719a875a1089df43a50219a Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100 3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH] tests: add support for install the tests 4Subject: [PATCH] tests: add support for install the tests
@@ -10,7 +10,6 @@ This will provide to run the tests using the gnome-desktop-testing [1]
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11 11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13
14--- 13---
15 meson.build | 4 ++++ 14 meson.build | 4 ++++
16 meson_options.txt | 1 + 15 meson_options.txt | 1 +
@@ -20,10 +19,10 @@ Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
20 create mode 100644 tests/check/template.test.in 19 create mode 100644 tests/check/template.test.in
21 20
22diff --git a/meson.build b/meson.build 21diff --git a/meson.build b/meson.build
23index 60c7bec..f7650b1 100644 22index efcf189..c97d9a8 100644
24--- a/meson.build 23--- a/meson.build
25+++ b/meson.build 24+++ b/meson.build
26@@ -606,6 +606,10 @@ if bashcomp_dep.found() 25@@ -624,6 +624,10 @@ if bashcomp_dep.found()
27 endif 26 endif
28 endif 27 endif
29 28
@@ -35,10 +34,10 @@ index 60c7bec..f7650b1 100644
35 34
36 pkgconfig = import('pkgconfig') 35 pkgconfig = import('pkgconfig')
37diff --git a/meson_options.txt b/meson_options.txt 36diff --git a/meson_options.txt b/meson_options.txt
38index 7363bdb..a34ba37 100644 37index 340fb58..5b87f68 100644
39--- a/meson_options.txt 38--- a/meson_options.txt
40+++ b/meson_options.txt 39+++ b/meson_options.txt
41@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso 40@@ -16,6 +16,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
42 option('memory-alignment', type: 'combo', 41 option('memory-alignment', type: 'combo',
43 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'], 42 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
44 value: 'malloc') 43 value: 'malloc')
@@ -47,14 +46,14 @@ index 7363bdb..a34ba37 100644
47 # Feature options 46 # Feature options
48 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries') 47 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
49diff --git a/tests/check/meson.build b/tests/check/meson.build 48diff --git a/tests/check/meson.build b/tests/check/meson.build
50index 16caac7..f2d400f 100644 49index e9501fe..08f8fd8 100644
51--- a/tests/check/meson.build 50--- a/tests/check/meson.build
52+++ b/tests/check/meson.build 51+++ b/tests/check/meson.build
53@@ -124,10 +124,16 @@ test_defines = [ 52@@ -125,10 +125,16 @@ test_defines = [
54 '-UG_DISABLE_ASSERT', 53 '-UG_DISABLE_ASSERT',
55 '-UG_DISABLE_CAST_CHECKS', 54 '-UG_DISABLE_CAST_CHECKS',
56 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"', 55 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
57- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"', 56- '-DTESTFILE="' + fsmod.as_posix(meson.current_source_dir()) + '/meson.build"',
58 '-DGST_DISABLE_DEPRECATED', 57 '-DGST_DISABLE_DEPRECATED',
59 ] 58 ]
60 59
@@ -68,7 +67,7 @@ index 16caac7..f2d400f 100644
68 # sanity checking 67 # sanity checking
69 if get_option('check').disabled() 68 if get_option('check').disabled()
70 if get_option('tests').enabled() 69 if get_option('tests').enabled()
71@@ -150,6 +156,8 @@ foreach t : core_tests 70@@ -151,6 +157,8 @@ foreach t : core_tests
72 include_directories : [configinc], 71 include_directories : [configinc],
73 link_with : link_with_libs, 72 link_with : link_with_libs,
74 dependencies : gst_deps + test_deps, 73 dependencies : gst_deps + test_deps,
@@ -77,7 +76,7 @@ index 16caac7..f2d400f 100644
77 ) 76 )
78 77
79 env = environment() 78 env = environment()
80@@ -161,6 +169,18 @@ foreach t : core_tests 79@@ -162,6 +170,18 @@ foreach t : core_tests
81 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner') 80 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
82 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer') 81 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
83 82
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
index 0fd830f150..27623bf96b 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch
@@ -1,4 +1,4 @@
1From 7041bc5adf9501beb1428d8bbae6b351a6bf07f9 Mon Sep 17 00:00:00 2001 1From 453865e8938c5f50f14409b67246bbbd801fa44d Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sat, 24 Apr 2021 10:34:47 +0100 3Date: Sat, 24 Apr 2021 10:34:47 +0100
4Subject: [PATCH] tests: use a dictionaries for environment 4Subject: [PATCH] tests: use a dictionaries for environment
@@ -9,16 +9,15 @@ use a dictionary as this is simplest solution to install the environment.
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
10 10
11Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 11Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
12
13--- 12---
14 tests/check/meson.build | 21 +++++++++++++-------- 13 tests/check/meson.build | 21 +++++++++++++--------
15 1 file changed, 13 insertions(+), 8 deletions(-) 14 1 file changed, 13 insertions(+), 8 deletions(-)
16 15
17diff --git a/tests/check/meson.build b/tests/check/meson.build 16diff --git a/tests/check/meson.build b/tests/check/meson.build
18index f2d400f..50dff7f 100644 17index 08f8fd8..330abaa 100644
19--- a/tests/check/meson.build 18--- a/tests/check/meson.build
20+++ b/tests/check/meson.build 19+++ b/tests/check/meson.build
21@@ -160,14 +160,19 @@ foreach t : core_tests 20@@ -161,14 +161,19 @@ foreach t : core_tests
22 install: installed_tests_enabled, 21 install: installed_tests_enabled,
23 ) 22 )
24 23
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
index 5689dc9fbb..97b056072d 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch
@@ -1,4 +1,4 @@
1From 1b1d1ce4227b6bea7c7def5dac4a663486e070c2 Mon Sep 17 00:00:00 2001 1From 506ff13a044439a170f770b6663a64c942ae0a05 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 2 May 2021 01:58:01 +0100 3Date: Sun, 2 May 2021 01:58:01 +0100
4Subject: [PATCH] tests: add helper script to run the installed_tests 4Subject: [PATCH] tests: add helper script to run the installed_tests
@@ -10,7 +10,6 @@ testing framework.
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] 10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11 11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> 12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13
14--- 13---
15 tests/check/meson.build | 17 +++++++++++++++++ 14 tests/check/meson.build | 17 +++++++++++++++++
16 tests/check/template.sh.in | 9 +++++++++ 15 tests/check/template.sh.in | 9 +++++++++
@@ -19,10 +18,10 @@ Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
19 create mode 100755 tests/check/template.sh.in 18 create mode 100755 tests/check/template.sh.in
20 19
21diff --git a/tests/check/meson.build b/tests/check/meson.build 20diff --git a/tests/check/meson.build b/tests/check/meson.build
22index 50dff7f..2b9e979 100644 21index 330abaa..5d383b1 100644
23--- a/tests/check/meson.build 22--- a/tests/check/meson.build
24+++ b/tests/check/meson.build 23+++ b/tests/check/meson.build
25@@ -184,6 +184,23 @@ foreach t : core_tests 24@@ -185,6 +185,23 @@ foreach t : core_tests
26 install_dir: installed_tests_metadir, 25 install_dir: installed_tests_metadir,
27 configuration: test_conf 26 configuration: test_conf
28 ) 27 )
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
index 7d0312005f..ab2df80dcc 100755
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -1,11 +1,13 @@
1#! /bin/sh 1#! /bin/sh
2 2
3# Multiply all timeouts by ten so they're more likely to work 3# Multiply all timeouts by five so they're more likely to work
4# on a loaded system. 4# on a loaded system. The default timeout is 20s so this makes it
5# one minute.
5export CK_TIMEOUT_MULTIPLIER=5 6export CK_TIMEOUT_MULTIPLIER=5
6 7
7# Skip some tests that we know are problematic 8# Skip some tests that we know are problematic
8export GST_CHECKS_IGNORE="" 9export GST_CHECKS_IGNORE=""
10
9# gstnetclientclock.c:test_functioning is very sensitive to load 11# gstnetclientclock.c:test_functioning is very sensitive to load
10GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning" 12GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning"
11 13
@@ -13,4 +15,7 @@ GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning"
13# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410 15# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410
14GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live" 16GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live"
15 17
18# Known unreliable tests as per subprojects/gst-devtools/validate/launcher/testsuites/check.py:
19GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE:parser_pull_short_read"
20
16gnome-desktop-testing-runner gstreamer 21gnome-desktop-testing-runner gstreamer
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.10.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.24.3.bb
index 0c944e9e11..cd04ade602 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.10.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.24.3.bb
@@ -22,7 +22,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.x
22 file://0003-tests-use-a-dictionaries-for-environment.patch \ 22 file://0003-tests-use-a-dictionaries-for-environment.patch \
23 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \ 23 file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \
24 " 24 "
25SRC_URI[sha256sum] = "969aaef396f252ce925132a4be2aa004e0320f5c1baf0acaaae09c544a6759f4" 25SRC_URI[sha256sum] = "1225ef4a329fae1cadc5ec727dab249ad567e8072879493561ceb91ed34aa414"
26 26
27PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ 27PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
28 check \ 28 check \
diff --git a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch b/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch
deleted file mode 100644
index 5168100f3a..0000000000
--- a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch
+++ /dev/null
@@ -1,89 +0,0 @@
1It makes much more sense to control our own CFLAGS and avoiding fPIC breaks
2some arches too. Assume we know what we're doing and remove all the messing
3around.
4
5RP 23/2/10
6
7Upstream-Status: Inappropriate [configuration]
8
9Index: a52dec-0.7.4/configure.in
10===================================================================
11--- a52dec-0.7.4.orig/configure.in 2010-02-23 14:51:50.000000000 +0000
12+++ a52dec-0.7.4/configure.in 2010-02-23 14:52:36.000000000 +0000
13@@ -14,62 +14,6 @@
14 AC_PROG_CC
15 AC_PROG_GCC_TRADITIONAL
16
17-if test x"$GCC" = x"yes"; then
18-
19- dnl GCC-specific flags - try to optimize them sometime
20- dnl -Wall -Werror moved to the end to not disturb the configure script
21-
22- dnl -O3
23- changequote(<<,>>)
24- OPT_CFLAGS=`echo "$CFLAGS"|sed "s/-O[0-9]*//g"`
25- changequote([,])
26- OPT_CFLAGS="$OPT_CFLAGS -O3"
27- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS])
28-
29- dnl -fomit-frame-pointer
30- OPT_CFLAGS="$CFLAGS -fomit-frame-pointer"
31- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS])
32-
33- dnl arch-specific flags
34- case "$host" in
35- i?86-* | k?-*)
36- case "$host" in
37- i386-*) OPT_CFLAGS="$CFLAGS -mcpu=i386";;
38- i486-*) OPT_CFLAGS="$CFLAGS -mcpu=i486";;
39- i586-*) OPT_CFLAGS="$CFLAGS -mcpu=pentium";;
40- i686-*) OPT_CFLAGS="$CFLAGS -mcpu=pentiumpro";;
41- k6-*) OPT_CFLAGS="$CFLAGS -mcpu=k6";;
42- esac
43- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
44- sparc-* | sparc64-*)
45- OPT_CFLAGS="$CFLAGS -mtune=ultrasparc"
46- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
47- mips-sgi-irix6.*) dnl do we need to be that specific ?
48- OPT_CFLAGS="$CFLAGS -mabi=64"
49- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
50- esac
51-elif test x"$CC" = x"tcc" -a x"`$CC -version 2>&1 | grep TenDRA`" != x""; then
52- dnl TenDRA portability checking compiler
53- TENDRA=yes
54- CFLAGS="-Xp -Yansi -f`pwd`/include/tendra.h -DELIDE_CODE"
55- enable_mlib=no
56- enable_oss=no
57- enable_solaris_audio=no
58-elif test x"$CC" = x"icc" -a x"`$CC -V 2>&1 | grep Intel`" != x""; then
59- dnl Intel C++ compiler
60- CFLAGS="-g -O3 -unroll -ip"
61-else
62- dnl non-gcc flags - we probably need exact configuration triplets here.
63- case "$host" in
64- mips-sgi-irix6.*)
65- OPT_CFLAGS="$CFLAGS -64"
66- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
67- sparc-sun-solaris*)
68- OPT_CFLAGS="$CFLAGS -xCC -fast -xO5"
69- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
70- esac
71-fi
72-
73 dnl Checks for libtool - this must be done after we set cflags
74 AC_DISABLE_SHARED
75 AC_LIBTOOL_WIN32_DLL
76Index: a52dec-0.7.4/liba52/configure.incl
77===================================================================
78--- a52dec-0.7.4.orig/liba52/configure.incl 2010-02-23 14:51:44.000000000 +0000
79+++ a52dec-0.7.4/liba52/configure.incl 2010-02-23 14:51:59.000000000 +0000
80@@ -1,9 +1,6 @@
81 AC_SUBST([LIBA52_CFLAGS])
82 AC_SUBST([LIBA52_LIBS])
83
84-dnl avoid -fPIC when possible
85-LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic"
86-
87 AC_ARG_ENABLE([double],
88 [ --enable-double use double-precision samples])
89 if test x"$enable_double" = x"yes"; then
diff --git a/meta/recipes-multimedia/liba52/liba52_0.7.4.bb b/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
deleted file mode 100644
index 7a3b4a43c8..0000000000
--- a/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
+++ /dev/null
@@ -1,28 +0,0 @@
1SUMMARY = "ATSC A/52 surround sound stream decoder"
2DESCRIPTION = "Library for decoding ATSC A/52 streams. The A/52 standard \
3is used in a variety of applications, including digital television \
4and DVD. It is also known as AC-3."
5HOMEPAGE = "http://liba52.sourceforge.net/"
6LICENSE = "GPL-2.0-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
8 file://include/a52.h;beginline=1;endline=12;md5=81152ceb3562bf20a60d1b6018175dd1"
9SECTION = "libs"
10
11inherit autotools
12
13SRC_URI = "http://liba52.sourceforge.net/files/a52dec-${PV}.tar.gz \
14 file://buildcleanup.patch"
15
16SRC_URI[md5sum] = "caa9f5bc44232dc8aeea773fea56be80"
17SRC_URI[sha256sum] = "a21d724ab3b3933330194353687df82c475b5dfb997513eef4c25de6c865ec33"
18
19UPSTREAM_CHECK_URI = "http://liba52.sourceforge.net/downloads.html"
20
21S = "${WORKDIR}/a52dec-${PV}"
22
23EXTRA_OECONF = " --enable-shared "
24
25PACKAGES =+ "a52dec a52dec-doc"
26
27FILES:a52dec = " ${bindir}/* "
28FILES:a52dec-doc = " ${mandir}/man1/* "
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch
deleted file mode 100644
index 876e80ef76..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1To enable --disable-Werror for libomxil to avoid some compilers which check code strictly.
2
3For example, at least the following errors happened to some compilers:
4
51) OMX_INDEXTYPE in include/OMX_Index.h IS NOT OMX_INDEXVENDORTYPE in src/base/omx_base_component.h
6| i586-poky-linux-libtool: compile: i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/yocto-build5/poky/build/tmp/sysroots/qemux86 -DHAVE_Climinate-unused-debug-types -Wall -Werror -DCONFIG_DEBUG_LEVEL=0 -c OMXComponentRMExt.c -fPIC -DPIC -o .libs/libomxbase_la-OMXComponentRMExt.o
7| omx_base_component.c: In function 'omx_base_component_GetParameter':
8| omx_base_component.c:991:3: error: case value '2130706435' not in enumerated type 'OMX_INDEXTYPE' [-Werror=switch]
9| omx_base_component.c:918:3: error: case value '2130706436' not in enumerated type 'OMX_INDEXTYPE' [-Werror=switch]
10
112)
12| i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/yocto-build5/poky/build/tmp/sysroots/qemux86 -DHAVE_CONFIG_H -I. -I.. -DOMXILCOMPOminate-unused-debug-types -Wall -Werror -DCONFIG_DEBUG_LEVEL=0 -c -o omxregister_bellagio-omxregister.o `test -f 'omxregister.c' || echo './'`o
13| omxregister.c: In function 'buildComponentsList':
14| omxregister.c:175:7: error: variable 'err' set but not used [-Werror=unused-but-set-variable]
15| cc1: all warnings being treated as errors
16
17Upstream-Status: Inappropriate [configuration]
18
19Signed-off-by: Shane Wang <shane.wang@intel.com>
20
21diff -r 82d742d3ea90 configure.ac
22--- a/configure.ac Tue Dec 27 15:30:35 2011 +0800
23+++ b/configure.ac Tue Dec 27 16:26:03 2011 +0800
24@@ -5,7 +5,7 @@
25 AC_PREREQ([2.59])
26
27 AC_CONFIG_HEADERS([config.h])
28-CFLAGS="${CFLAGS} -Wall -Werror"
29+CFLAGS="${CFLAGS} -Wall"
30
31 ################################################################################
32 # Set the shared versioning info, according to section 6.3 of the libtool info #
33@@ -122,6 +122,14 @@
34 [with_android=$enableval],
35 [with_android=no])
36
37+AC_ARG_ENABLE(
38+ [Werror],
39+ [AC_HELP_STRING(
40+ [--disable-Werror],
41+ [whether to diable treating gcc warnings as errors])],
42+ [with_Werror=$enableval],
43+ [with_Werror=yes])
44+
45 ################################################################################
46 # Check for programs #
47 ################################################################################
48@@ -193,6 +201,10 @@
49 CFG_DEBUG_LEVEL=255
50 fi
51
52+if test "x$with_Werror" = "xyes"; then
53+ CFLAGS="${CFLAGS} -Werror"
54+fi
55+
56 AC_SUBST(CFG_DEBUG_LEVEL)
57 CFLAGS="${CFLAGS} -DCONFIG_DEBUG_LEVEL=$CFG_DEBUG_LEVEL"
58
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch
deleted file mode 100644
index f408e4a621..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/disable-so-versioning.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1Disable so versioning since they are really not a versioned shared lib.
2
3Upstream-Status: Submitted @ https://sourceforge.net/p/omxil/bugs/59/
4
5Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
6
7diff -rub libomxil-bellagio-0.9.3-orig/src/components/audio_effects/Makefile.am libomxil-bellagio-0.9.3/src/components/audio_effects/Makefile.am
8--- libomxil-bellagio-0.9.3-orig/src/components/audio_effects/Makefile.am 2014-07-20 15:22:00.858425234 -0400
9+++ libomxil-bellagio-0.9.3/src/components/audio_effects/Makefile.am 2014-07-20 15:25:42.687525225 -0400
10@@ -10,4 +10,5 @@
11 libomxaudio_effects_la_CFLAGS = -I$(top_srcdir)/include \
12 -I$(top_srcdir)/src \
13 -I$(top_srcdir)/src/base
14+libomxaudio_effects_la_LDFLAGS = -avoid-version
15
16diff -rub libomxil-bellagio-0.9.3-orig/src/components/clocksrc/Makefile.am libomxil-bellagio-0.9.3/src/components/clocksrc/Makefile.am
17--- libomxil-bellagio-0.9.3-orig/src/components/clocksrc/Makefile.am 2014-07-20 15:22:00.858425234 -0400
18+++ libomxil-bellagio-0.9.3/src/components/clocksrc/Makefile.am 2014-07-20 15:24:49.151259753 -0400
19@@ -10,4 +10,4 @@
20 -I$(top_srcdir)/include \
21 -I$(top_srcdir)/src \
22 -I$(top_srcdir)/src/base
23-
24+libomxclocksrc_la_LDFLAGS = -avoid-version
25diff -rub libomxil-bellagio-0.9.3-orig/src/components/videoscheduler/Makefile.am libomxil-bellagio-0.9.3/src/components/videoscheduler/Makefile.am
26--- libomxil-bellagio-0.9.3-orig/src/components/videoscheduler/Makefile.am 2014-07-20 15:22:00.862425254 -0400
27+++ libomxil-bellagio-0.9.3/src/components/videoscheduler/Makefile.am 2014-07-20 15:22:36.462601786 -0400
28@@ -6,7 +6,7 @@
29 library_entry_point.c
30
31 libomxvideosched_la_LIBADD = $(top_builddir)/src/libomxil-bellagio.la
32-libomxvideosched_la_LDFLAGS =
33+libomxvideosched_la_LDFLAGS = -avoid-version
34 libomxvideosched_la_CFLAGS = -I$(top_srcdir)/include \
35 -I$(top_srcdir)/src \
36 -I$(top_srcdir)/src/base
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch
deleted file mode 100644
index 787953a99b..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1This patch fixes link issue when libomxdynamicloader.so is loaded :
2Missing symbol RM_Deinit.
3
4This patch comes from "http://pkgs.fedoraproject.org/cgit/libomxil-bellagio.git/commit/?h=f17&id=4996a95828943d345e51ded6876c3103653eecf8"
5
6Upstream-Status: Pending
7
8Signed-off-by: Sébastien Mennetrier <s.mennetrier@innotis.org>
9
10--- a/src/dynamic_loader/Makefile.am 2014-02-25 15:29:10.128549636 +0100
11+++ b/src/dynamic_loader/Makefile.am 2014-02-25 15:30:15.756548808 +0100
12@@ -3,7 +3,7 @@
13 omxdynamicloader_LTLIBRARIES = libomxdynamicloader.la
14 libomxdynamicloader_la_SOURCES = ste_dynamic_component_loader.c ste_dynamic_component_loader.h
15
16-libomxdynamicloader_la_LDFLAGS =
17+libomxdynamicloader_la_LDFLAGS = -lomxil-bellagio -L$(top_builddir)/src/.libs
18 libomxdynamicloader_la_CFLAGS = -I$(top_srcdir)/include \
19 -I$(top_srcdir)/src \
20 -I$(top_srcdir)/src/base \
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch
deleted file mode 100644
index dbe8c41f74..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1This patch is to remove DESTDIR in docdir.
2Otherwise, when users install by running `make install DESTDIR=/alternate/directory' specified in the file INSTALL, the doc will go into /alternate/directory/alternate/directory, which is not expected.
3
4Upstream-Status: Pending
5
6Signed-off-by: Shane Wang <shane.wang@intel.com>
7
8diff -r 30b597e4e70d Makefile.am
9--- a/Makefile.am Wed Dec 28 15:38:35 2011 +0800
10+++ b/Makefile.am Wed Dec 28 15:39:25 2011 +0800
11@@ -7,7 +7,7 @@
12 pkgconfigdir = $(libdir)/pkgconfig
13 pkgconfig_DATA = libomxil-bellagio.pc
14
15-docdir = $(DESTDIR)$(prefix)/share/doc/@PACKAGE@
16+docdir = $(prefix)/share/doc/@PACKAGE@
17 doc_DATA = README \
18 ChangeLog \
19 TODO
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch
deleted file mode 100644
index 483ca1328b..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch
+++ /dev/null
@@ -1,18 +0,0 @@
1This patch is to make libomxil Makefile support "make -jN".
2The omxregister_bellagio stuffs depend on libomxil_bellagio library.
3
4Upstream-Status: Pending
5
6Signed-off-by: Shane Wang <shane.wang@intel.com>
7
8diff -r f59d077d3dd5 Makefile.am
9--- a/src/Makefile.am Wed Dec 28 10:54:36 2011 +0800
10+++ b/src/Makefile.am Wed Dec 28 10:55:46 2011 +0800
11@@ -7,6 +7,7 @@
12 omxregister_bellagio_SOURCES = omxregister.c common.c common.h
13 omxregister_bellagio_CFLAGS = -DOMXILCOMPONENTSPATH=\"$(plugindir)/\" \
14 -I$(top_srcdir)/include
15+omxregister_bellagio_LDADD = $(lib_LTLIBRARIES)
16 omxregister_bellagio_LDFLAGS = -lomxil-bellagio -L$(builddir)
17
18 lib_LTLIBRARIES = libomxil-bellagio.la
diff --git a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
deleted file mode 100644
index 4564d619ae..0000000000
--- a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
+++ /dev/null
@@ -1,45 +0,0 @@
1SUMMARY = "Bellagio OpenMAX Integration Layer (IL)"
2DESCRIPTION = "Bellagio is an opensource implementation of the Khronos OpenMAX \
3 Integration Layer API to access multimedia components."
4HOMEPAGE = "http://omxil.sourceforge.net/"
5
6LICENSE = "LGPL-2.1-or-later"
7LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'amr', 'commercial', '', d)}"
8LIC_FILES_CHKSUM = "file://COPYING;md5=ae6f0f4dbc7ac193b50f323a6ae191cb \
9 file://src/omxcore.h;beginline=1;endline=27;md5=806b1e5566c06486fe8e42b461e03a90"
10
11SRC_URI = "${SOURCEFORGE_MIRROR}/omxil/libomxil-bellagio-${PV}.tar.gz \
12 file://configure-fix.patch \
13 file://parallel-make.patch \
14 file://makefile-docdir-fix.patch \
15 file://dynamicloader-linking.patch \
16 file://disable-so-versioning.patch"
17
18SRC_URI[md5sum] = "a1de827fdb75c02c84e55f740ca27cb8"
19SRC_URI[sha256sum] = "593c0729c8ef8c1467b3bfefcf355ec19a46dd92e31bfc280e17d96b0934d74c"
20
21S = "${WORKDIR}/${BPN}-bellagio-${PV}"
22
23inherit autotools
24
25EXTRA_OECONF += "--disable-doc --disable-Werror"
26
27PROVIDES += "virtual/libomxil"
28
29CFLAGS += "-fcommon"
30
31PACKAGECONFIG ??= ""
32
33PACKAGECONFIG[amr] = "--enable-amr,,"
34
35#
36# The .so files under ${libdir}/bellagio are not intended to be versioned and symlinked.
37# Make sure they get packaged in the main package.
38#
39FILES:${PN} += "${libdir}/bellagio/*.so \
40 ${libdir}/omxloaders/*${SOLIBS}"
41FILES:${PN}-staticdev += "${libdir}/bellagio/*.a \
42 ${libdir}/omxloaders/*.a"
43FILES:${PN}-dev += "${libdir}/bellagio/*.la \
44 ${libdir}/omxloaders/*.la \
45 ${libdir}/omxloaders/*${SOLIBSDEV}"
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.42.bb b/meta/recipes-multimedia/libpng/libpng_1.6.43.bb
index cadbe957db..f1febd0a02 100644
--- a/meta/recipes-multimedia/libpng/libpng_1.6.42.bb
+++ b/meta/recipes-multimedia/libpng/libpng_1.6.43.bb
@@ -10,8 +10,8 @@ DEPENDS = "zlib"
10 10
11LIBV = "16" 11LIBV = "16"
12 12
13SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/${BP}.tar.xz" 13SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
14SRC_URI[sha256sum] = "c919dbc11f4c03b05aba3f8884d8eb7adfe3572ad228af972bb60057bdb48450" 14SRC_URI[sha256sum] = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c"
15 15
16MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/" 16MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/"
17 17
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch b/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch
index b06029b98b..d4fac605b6 100644
--- a/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch
+++ b/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch
@@ -5,9 +5,9 @@ Subject: [PATCH] configure: Check for clang
5 5
6Disable gcc specific options if using clang 6Disable gcc specific options if using clang
7 7
8Upstream-Status: Inactive-Upstream [https://gitlab.xiph.org/xiph/vorbis,https://github.com/xiph/vorbis]
8Signed-off-by: Khem Raj <raj.khem@gmail.com> 9Signed-off-by: Khem Raj <raj.khem@gmail.com>
9--- 10---
10Upstream-Status: Pending
11 11
12 configure.ac | 19 +++++++++++++++++-- 12 configure.ac | 19 +++++++++++++++++--
13 1 file changed, 17 insertions(+), 2 deletions(-) 13 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch b/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch
deleted file mode 100644
index b2544cb44d..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch
+++ /dev/null
@@ -1,156 +0,0 @@
1From 0cafb99b57f43cf6ac2c6208718e49ad2dbe462d Mon Sep 17 00:00:00 2001
2From: Jan Schmidt <thaytan@noraisin.net>
3Date: Sun, 10 Nov 2013 00:49:52 +1100
4Subject: [PATCH] Import revision 1206 from upstream to fix PIE build.
5
6Functions MC_put_o_16_arm, MC_put_o_8_arm, MC_put_x_16_arm, MC_put_x_8_arm
7in libmpeg2/motion_comp_arm_s.S have addresses in .text, which is bad
8for shared libraries. Some environments demand that .text actually be
9read-only all the time, yet MC_put_o_16_arm etc require that the addresses
10be modified by the dynamic linking mechanism (dlopen, LoadLibrary, etc.)
11Even in those environments which permit the dynamic linker to modify the
12.text segment, the runtime cost of doing the relocation can be noticeable.
13
14This commit rewrites the linkage, discarding the tables of addresses
15in favor of tables of offsets. All transfers are local within each individual
16function, so there can be no interference by processing that occurs
17after assembly, such as link-time re-ordering (even of individual functions.)
18
19Patch by John Reiser <jreiser@bitwagon.com>
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
21Upstream-Status: Backport [https://code.videolan.org/videolan/libmpeg2/commit/946bf4b518aacc224f845e73708f99e394744499]
22---
23 libmpeg2/motion_comp_arm_s.S | 70 +++++++++++++++++-------------------
24 1 file changed, 33 insertions(+), 37 deletions(-)
25
26diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S
27index c921f7c..82143f8 100644
28--- a/libmpeg2/motion_comp_arm_s.S
29+++ b/libmpeg2/motion_comp_arm_s.S
30@@ -30,9 +30,13 @@ MC_put_o_16_arm:
31 pld [r1]
32 stmfd sp!, {r4-r11, lr} @ R14 is also called LR
33 and r4, r1, #3
34- adr r5, MC_put_o_16_arm_align_jt
35- add r5, r5, r4, lsl #2
36- ldr pc, [r5]
37+ ldrb r4, [pc, r4]
38+ add pc, pc, r4, lsl #2
39+ .byte (MC_put_o_16_arm_align0 - 0f)>>2
40+ .byte (MC_put_o_16_arm_align1 - 0f)>>2
41+ .byte (MC_put_o_16_arm_align2 - 0f)>>2
42+ .byte (MC_put_o_16_arm_align3 - 0f)>>2
43+0:
44
45 MC_put_o_16_arm_align0:
46 ldmia r1, {r4-r7}
47@@ -76,11 +80,6 @@ MC_put_o_16_arm_align3:
48 1: PROC(24)
49 bne 1b
50 ldmfd sp!, {r4-r11, pc} @@ update PC with LR content.
51-MC_put_o_16_arm_align_jt:
52- .word MC_put_o_16_arm_align0
53- .word MC_put_o_16_arm_align1
54- .word MC_put_o_16_arm_align2
55- .word MC_put_o_16_arm_align3
56
57 @ ----------------------------------------------------------------
58 .align
59@@ -91,9 +90,14 @@ MC_put_o_8_arm:
60 pld [r1]
61 stmfd sp!, {r4-r10, lr} @ R14 is also called LR
62 and r4, r1, #3
63- adr r5, MC_put_o_8_arm_align_jt
64- add r5, r5, r4, lsl #2
65- ldr pc, [r5]
66+ ldrb r4, [pc, r4]
67+ add pc, pc, r4, lsl #2
68+ .byte (MC_put_o_8_arm_align0 - 0f)>>2
69+ .byte (MC_put_o_8_arm_align1 - 0f)>>2
70+ .byte (MC_put_o_8_arm_align2 - 0f)>>2
71+ .byte (MC_put_o_8_arm_align3 - 0f)>>2
72+0:
73+
74 MC_put_o_8_arm_align0:
75 ldmia r1, {r4-r5}
76 add r1, r1, r2
77@@ -135,12 +139,6 @@ MC_put_o_8_arm_align3:
78 bne 1b
79 ldmfd sp!, {r4-r10, pc} @@ update PC with LR content.
80
81-MC_put_o_8_arm_align_jt:
82- .word MC_put_o_8_arm_align0
83- .word MC_put_o_8_arm_align1
84- .word MC_put_o_8_arm_align2
85- .word MC_put_o_8_arm_align3
86-
87 @ ----------------------------------------------------------------
88 .macro AVG_PW rW1, rW2
89 mov \rW2, \rW2, lsl #24
90@@ -160,12 +158,17 @@ MC_put_x_16_arm:
91 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
92 pld [r1]
93 stmfd sp!, {r4-r11,lr} @ R14 is also called LR
94+ ldr r11, 0f
95 and r4, r1, #3
96- adr r5, MC_put_x_16_arm_align_jt
97- ldr r11, [r5]
98 mvn r12, r11
99- add r5, r5, r4, lsl #2
100- ldr pc, [r5, #4]
101+ ldrb r4, [pc, r4]
102+ add pc, pc, r4, lsl #2
103+ .byte (MC_put_x_16_arm_align0 - 0f)>>2
104+ .byte (MC_put_x_16_arm_align1 - 0f)>>2
105+ .byte (MC_put_x_16_arm_align2 - 0f)>>2
106+ .byte (MC_put_x_16_arm_align3 - 0f)>>2
107+0:
108+ .word 0x01010101
109
110 .macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4
111 mov \R0, \R0, lsr #(\shift)
112@@ -238,12 +241,6 @@ MC_put_x_16_arm_align3:
113 add r0, r0, r2
114 bne 1b
115 ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
116-MC_put_x_16_arm_align_jt:
117- .word 0x01010101
118- .word MC_put_x_16_arm_align0
119- .word MC_put_x_16_arm_align1
120- .word MC_put_x_16_arm_align2
121- .word MC_put_x_16_arm_align3
122
123 @ ----------------------------------------------------------------
124 .align
125@@ -253,12 +250,17 @@ MC_put_x_8_arm:
126 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
127 pld [r1]
128 stmfd sp!, {r4-r11,lr} @ R14 is also called LR
129+ ldr r11, 0f
130 and r4, r1, #3
131- adr r5, MC_put_x_8_arm_align_jt
132- ldr r11, [r5]
133 mvn r12, r11
134- add r5, r5, r4, lsl #2
135- ldr pc, [r5, #4]
136+ ldrb r4, [pc, r4]
137+ add pc, pc, r4, lsl #2
138+ .byte (MC_put_x_8_arm_align0 - 0f)>>2
139+ .byte (MC_put_x_8_arm_align1 - 0f)>>2
140+ .byte (MC_put_x_8_arm_align2 - 0f)>>2
141+ .byte (MC_put_x_8_arm_align3 - 0f)>>2
142+0:
143+ .word 0x01010101
144
145 .macro ADJ_ALIGN_DW shift, R0, R1, R2
146 mov \R0, \R0, lsr #(\shift)
147@@ -319,9 +321,3 @@ MC_put_x_8_arm_align3:
148 add r0, r0, r2
149 bne 1b
150 ldmfd sp!, {r4-r11,pc} @@ update PC with LR content.
151-MC_put_x_8_arm_align_jt:
152- .word 0x01010101
153- .word MC_put_x_8_arm_align0
154- .word MC_put_x_8_arm_align1
155- .word MC_put_x_8_arm_align2
156- .word MC_put_x_8_arm_align3
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch b/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch
deleted file mode 100644
index 5bf68b39ee..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch
+++ /dev/null
@@ -1,55 +0,0 @@
1From cbcff58ed670c8edc0be1004384cbe0fd07d8d26 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 5 Jul 2017 18:49:21 -0700
4Subject: [PATCH 1/2] check for available arm optimizations
5
6Taken From
7http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/65_arm-test-with-compiler.patch/
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 configure.ac | 12 ++++++++----
14 1 file changed, 8 insertions(+), 4 deletions(-)
15
16diff --git a/configure.ac b/configure.ac
17index acdcb1e..2c0a721 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -59,7 +59,7 @@ elif test x"$GCC" = x"yes"; then
21 AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"])
22
23 dnl arch-specific flags
24- arm_conditional=false
25+ build_arm_opt=false
26 case "$host" in
27 i?86-* | k?-* | x86_64-* | amd64-*)
28 AC_DEFINE([ARCH_X86],,[x86 architecture])
29@@ -102,8 +102,12 @@ elif test x"$GCC" = x"yes"; then
30 alpha*)
31 AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);;
32 arm*)
33- arm_conditional=:
34- AC_DEFINE([ARCH_ARM],,[ARM architecture]);;
35+ AC_LANG(C)
36+ AC_COMPILE_IFELSE(
37+ [AC_LANG_SOURCE([[
38+ void foo(void) { __asm__ volatile("pld [r1]"); }]])],
39+ build_arm_opt=true; AC_DEFINE([ARCH_ARM],,[ARM architecture]),
40+ build_arm_opt=false);;
41 esac
42 elif test x"$CC" = x"tendracc"; then
43 dnl TenDRA portability checking compiler
44@@ -123,7 +127,7 @@ else
45 esac
46 fi
47
48-AM_CONDITIONAL(ARCH_ARM, ${arm_conditional})
49+AM_CONDITIONAL(ARCH_ARM, test x$build_arm_opt = xtrue)
50
51 dnl Checks for libtool - this must be done after we set cflags
52 AC_LIBTOOL_WIN32_DLL
53--
542.13.2
55
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch b/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch
deleted file mode 100644
index 8301692368..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch
+++ /dev/null
@@ -1,63 +0,0 @@
1From f9d9dc92d75f8910e3cd5fdcbea72e505cdf3493 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 5 Jul 2017 19:03:36 -0700
4Subject: [PATCH 2/2] Set visibility of global symbols used in ARM specific
5 assembly file to internal
6
7Taken from
8http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/60_arm-private-symbols.patch/
9
10Upstream-Status: Pending
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 libmpeg2/motion_comp_arm_s.S | 12 ++++++++----
15 1 file changed, 8 insertions(+), 4 deletions(-)
16
17diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S
18index f6c3d7d..c921f7c 100644
19--- a/libmpeg2/motion_comp_arm_s.S
20+++ b/libmpeg2/motion_comp_arm_s.S
21@@ -23,7 +23,8 @@
22
23 @ ----------------------------------------------------------------
24 .align
25- .global MC_put_o_16_arm
26+ .global MC_put_o_16_arm
27+ .internal MC_put_o_16_arm
28 MC_put_o_16_arm:
29 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
30 pld [r1]
31@@ -83,7 +84,8 @@ MC_put_o_16_arm_align_jt:
32
33 @ ----------------------------------------------------------------
34 .align
35- .global MC_put_o_8_arm
36+ .global MC_put_o_8_arm
37+ .internal MC_put_o_8_arm
38 MC_put_o_8_arm:
39 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
40 pld [r1]
41@@ -152,7 +154,8 @@ MC_put_o_8_arm_align_jt:
42 .endm
43
44 .align
45- .global MC_put_x_16_arm
46+ .global MC_put_x_16_arm
47+ .internal MC_put_x_16_arm
48 MC_put_x_16_arm:
49 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
50 pld [r1]
51@@ -244,7 +247,8 @@ MC_put_x_16_arm_align_jt:
52
53 @ ----------------------------------------------------------------
54 .align
55- .global MC_put_x_8_arm
56+ .global MC_put_x_8_arm
57+ .internal MC_put_x_8_arm
58 MC_put_x_8_arm:
59 @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height)
60 pld [r1]
61--
622.13.2
63
diff --git a/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch b/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch
deleted file mode 100644
index 00b667d336..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch
+++ /dev/null
@@ -1,70 +0,0 @@
1Rewrite the public symbol check to verify the shared libraries, to check for
2more things, and to avoid duplication; fixes make check on ARM
3
4Taken From
5https://sources.debian.org/src/mpeg2dec/0.5.1-8/debian/patches/61_global-symbol-test.patch/
6
7Upstream-Status: Pending
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 test/globals | 42 +++++++++++++++++++++++++++---------------
12 1 file changed, 27 insertions(+), 15 deletions(-)
13
14--- mpeg2dec.orig/test/globals
15+++ mpeg2dec/test/globals
16@@ -1,4 +1,8 @@
17 #!/bin/sh
18+# TODO
19+# - fix checking of .a libs; problem is that "nm -g --defined-only" lists
20+# internal symbols; this can be solved by using objdump, but it's probably
21+# good enough to just run the tests on the shared lib
22
23 if test x"$srcdir" != x""; then
24 builddir="." # running from make check, but it does not define that
25@@ -14,22 +18,30 @@ builddir=`cd $builddir;pwd`
26
27 error=0
28
29-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/*.o |\
30- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2_'`
31-
32-if test x"$bad_globals" != x""; then
33- echo BAD GLOBAL SYMBOLS:
34- for s in $bad_globals; do echo $s; done
35+# check_bad_public_symbols <symbol prefix> <lib file> [<lib file>...]
36+#
37+# checks public symbols in shared libs:
38+# - allow prefix_anything
39+# - reject _prefixanything
40+# - allow _anything
41+# - reject anything else
42+#
43+# NB: skips missing files
44+check_bad_public_symbols() {
45+ symbols_prefix="$1"
46+ shift
47+ lib_files=`ls "$@" 2>/dev/null`
48+ [ -z "$lib_files" ] && return
49+ bad_globals=`nm -g --defined-only $lib_files |
50+ awk '{if ($3) print $3}' |
51+ sed -n "/^${symbols_prefix}_/ d; /^_${symbols_prefix}/ { p; d }; /^_/ d; p"`
52+ [ -z "$bad_globals" ] && return
53 error=1
54-fi
55-
56-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/convert/*.o |\
57- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2convert_'`
58+ echo BAD GLOBAL SYMBOLS in $lib_files:
59+ echo "$bad_globals"
60+}
61
62-if test x"$bad_globals" != x""; then
63- echo BAD GLOBAL SYMBOLS:
64- for s in $bad_globals; do echo $s; done
65- error=1
66-fi
67+check_bad_public_symbols mpeg2 $builddir/../libmpeg2/.libs/libmpeg2.so
68+check_bad_public_symbols mpeg2convert $builddir/../libmpeg2/convert/.libs/libmpeg2convert.so
69
70 exit $error
diff --git a/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch b/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch
deleted file mode 100644
index 5113ad44fe..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch
+++ /dev/null
@@ -1,43 +0,0 @@
1Add new method to judge whether <altivec.h> is needed
2
3The original logic will use "typedef vector int t;" to judge
4whether <altivec.h> is needed. altivec.h contains the following
5statement:
6
7 #if !defined(__APPLE_ALTIVEC__)
8 #define vector __vector
9 #define pixel __pixel
10 #define bool
11 #endif
12
13In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither
14as vector, pixel, and bool. In order to make "typedef vector int t;"
15pass the compilation, we need to include altivec.h.
16
17However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler,
18so as vector, pixel, and bool. We could not judge whether
19altivec.h is needed by "typedef vector int t;".
20Here we include another statement "int tmp = __CR6_EQ;", in
21which __CR6_EQ is defined in altivec.h.
22
23Upstream-Status: Pending
24
25Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
26
27diff -ruN a/configure.in b/configure.in
28--- a/configure.ac 2010-09-14 20:55:42.399687663 +0800
29+++ b/configure.ac 2010-09-14 20:56:43.403204648 +0800
30@@ -79,11 +79,11 @@
31 CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
32 AC_MSG_CHECKING([if <altivec.h> is needed])
33 AC_TRY_COMPILE([],
34- [typedef vector int t;
35+ [typedef vector int t; int tmp = __CR6_EQ;
36 vec_ld(0, (unsigned char *)0);],
37 [have_altivec=yes; AC_MSG_RESULT(no)],
38 [AC_TRY_COMPILE([#include <altivec.h>],
39- [typedef vector int t; vec_ld(0, (unsigned char *)0);],
40+ [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);],
41 [AC_DEFINE([HAVE_ALTIVEC_H],,
42 [Define to 1 if you have the <altivec.h> header.])
43 have_altivec=yes; AC_MSG_RESULT(yes)],
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb
deleted file mode 100644
index fd8b561657..0000000000
--- a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb
+++ /dev/null
@@ -1,51 +0,0 @@
1SUMMARY = "Library and test program for decoding MPEG-2 and MPEG-1 video streams"
2DESCRIPTION = "mpeg2dec is a test program for libmpeg2. It decodes \
3mpeg-1 and mpeg-2 video streams, and also includes a demultiplexer \
4for mpeg-1 and mpeg-2 program streams. The main purpose of mpeg2dec \
5is to have a simple test bed for libmpeg2."
6HOMEPAGE = "https://libmpeg2.sourceforge.io/"
7SECTION = "libs"
8LICENSE = "GPL-2.0-or-later"
9LICENSE_FLAGS = "commercial"
10LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
11 file://include/mpeg2.h;beginline=1;endline=22;md5=7766f4fcb58f0f8413c49a746f2ab89b"
12
13SRC_URI = "http://libmpeg2.sourceforge.net/files/libmpeg2-${PV}.tar.gz \
14 file://altivec_h_needed.patch \
15 file://0001-check-for-available-arm-optimizations.patch \
16 file://0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch \
17 file://61_global-symbol-test.patch \
18 file://0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch \
19 "
20
21S = "${WORKDIR}/libmpeg2-${PV}"
22
23SRC_URI[md5sum] = "0f92c7454e58379b4a5a378485bbd8ef"
24SRC_URI[sha256sum] = "dee22e893cb5fc2b2b6ebd60b88478ab8556cb3b93f9a0d7ce8f3b61851871d4"
25
26UPSTREAM_CHECK_URI = "http://libmpeg2.sourceforge.net/downloads.html"
27
28inherit autotools pkgconfig
29
30EXTRA_OECONF = "--enable-shared --disable-sdl"
31
32PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
33PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxv"
34
35PACKAGES = "mpeg2dec-dbg mpeg2dec mpeg2dec-doc libmpeg2 libmpeg2-dev libmpeg2convert libmpeg2convert-dev libmpeg2-staticdev libmpeg2convert-staticdev"
36
37FILES:${PN} = "${bindir}/*"
38FILES:libmpeg2 = "${libdir}/libmpeg2.so.*"
39FILES:libmpeg2convert = "${libdir}/libmpeg2convert.so.*"
40FILES:libmpeg2-dev = "${libdir}/libmpeg2.so \
41 ${libdir}/libmpeg2.la \
42 ${libdir}/libmpeg2arch.la \
43 ${libdir}/pkgconfig/libmpeg2.pc \
44 ${includedir}/mpeg2dec/mpeg2.h"
45FILES:libmpeg2-staticdev = "${libdir}/libmpeg2.a"
46FILES:libmpeg2convert-dev = "${libdir}/libmpeg2convert.so \
47 ${libdir}/libmpeg2convert.la \
48 ${libdir}/libmpeg2convertarch.la \
49 ${libdir}/pkgconfig/libmpeg2convert.pc \
50 ${includedir}/mpeg2dec/mpeg2convert.h"
51FILES:libmpeg2convert-staticdev = "${libdir}/libmpeg2convert.a"
diff --git a/meta/recipes-multimedia/mpg123/mpg123_1.32.5.bb b/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb
index 52526471ef..f7786e8588 100644
--- a/meta/recipes-multimedia/mpg123/mpg123_1.32.5.bb
+++ b/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb
@@ -10,7 +10,7 @@ LICENSE = "LGPL-2.1-only"
10LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169" 10LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
11 11
12SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" 12SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
13SRC_URI[sha256sum] = "af908cdf6cdb6544b97bc706a799f79894e69468af5881bf454a0ebb9171ed63" 13SRC_URI[sha256sum] = "ccdd1d0abc31d73d8b435fc658c79049d0a905b30669b6a42a03ad169dc609e6"
14 14
15UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar" 15UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
16 16
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index ae16056d24..9fb5c81757 100644
--- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -142,7 +142,7 @@ do_compile:append () {
142 142
143do_install:append() { 143do_install:append() {
144 install -d ${D}${sysconfdir}/default/volatiles 144 install -d ${D}${sysconfdir}/default/volatiles
145 install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse 145 install -m 0644 ${UNPACKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse
146} 146}
147 147
148USERADD_PACKAGES = "pulseaudio-server" 148USERADD_PACKAGES = "pulseaudio-server"
diff --git a/meta/recipes-multimedia/webp/libwebp_1.3.2.bb b/meta/recipes-multimedia/webp/libwebp_1.4.0.bb
index 63b0fd9a6c..d922970479 100644
--- a/meta/recipes-multimedia/webp/libwebp_1.3.2.bb
+++ b/meta/recipes-multimedia/webp/libwebp_1.4.0.bb
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \
14 file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" 14 file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
15 15
16SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" 16SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz"
17SRC_URI[sha256sum] = "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4" 17SRC_URI[sha256sum] = "61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5"
18 18
19UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" 19UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"
20 20
diff --git a/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch b/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch
deleted file mode 100644
index cb771fb0bf..0000000000
--- a/meta/recipes-multimedia/x264/x264/Fix-X32-build-by-disabling-asm.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1From 7bc25f4d1aaa5186d2eff3e2326c7245fcd7e7f3 Mon Sep 17 00:00:00 2001
2From: Christopher Larson <chris_larson@mentor.com>
3Date: Tue, 13 Dec 2016 14:22:32 -0700
4Subject: [PATCH] Fix X32 build by disabling asm
5
6This applies gentoo's x32 patch, adjusted slightly, which disables asm support
7for x32 as well as correcting -m.
8
9Debian has a different patch which does the same, and there's a superior yet
10out of date patch series on the x264 list which keeps asm support enabled, but
11doesn't successfully build at this time, and my assembly is very rusty.
12
13Upstream-Status: Pending
14Signed-off-by: Christopher Larson <chris_larson@mentor.com>
15
16---
17 configure | 14 ++++++++++++--
18 1 file changed, 12 insertions(+), 2 deletions(-)
19
20diff --git a/configure b/configure
21index 51b128d..6ea9469 100755
22--- a/configure
23+++ b/configure
24@@ -754,7 +754,13 @@ case $host_cpu in
25 AS_EXT=".asm"
26 ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -I\$(SRCPATH)/common/x86/"
27 stack_alignment=16
28- [ $compiler = GNU ] && CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
29+ if [ $compiler = GNU ]; then
30+ if cpp_check "" "" "__ILP32__" ; then
31+ CFLAGS="-mx32 $CFLAGS" && LDFLAGS="-mx32 $LDFLAGS"
32+ else
33+ CFLAGS="-m64 $CFLAGS" && LDFLAGS="-m64 $LDFLAGS"
34+ fi
35+ fi
36 if [ "$SYS" = MACOSX ]; then
37 ASFLAGS="$ASFLAGS -f macho64 -DPREFIX"
38 if cc_check '' "-arch x86_64"; then
39@@ -773,7 +779,11 @@ case $host_cpu in
40 RCFLAGS="--target=pe-x86-64 $RCFLAGS"
41 fi
42 else
43- ASFLAGS="$ASFLAGS -f elf64"
44+ if cpp_check "" "" "__ILP32__" ; then
45+ asm=no
46+ else
47+ ASFLAGS="$ASFLAGS -f elf64"
48+ fi
49 fi
50 ;;
51 powerpc*)
diff --git a/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch b/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
deleted file mode 100644
index 065e3b35b7..0000000000
--- a/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From a72bf499a0674fc75eedf15008b424e28f67e4bd Mon Sep 17 00:00:00 2001
2From: Andrei Gherzan <andrei@gherzan.ro>
3Date: Fri, 2 Feb 2018 15:10:08 +0200
4Subject: [PATCH] dont default to cortex-a9 with neon
5
6-march flag is not in CFLAGS so this will always default to
7 -mcpu=cortex-a8 -mfpu=neon.
8
9Upstream-Status: Pending
10
11Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
12Signed-off-by: Maxin B. John <maxin.john@intel.com>
13---
14 configure | 3 ---
15 1 file changed, 3 deletions(-)
16
17diff --git a/configure b/configure
18index 0e3ef23..955b993 100755
19--- a/configure
20+++ b/configure
21@@ -911,9 +911,6 @@ if [ $asm = auto -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
22 fi
23
24 if [ $asm = auto -a $ARCH = ARM ] ; then
25- # set flags so neon is built by default
26- [ $compiler == CL ] || echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
27-
28 cc_check '' '' '__asm__("add r0, r1, r2");' && define HAVE_ARM_INLINE_ASM
29 if [ $compiler = CL ] && cpp_check '' '' 'defined(_M_ARM) && _M_ARM >= 7' ; then
30 define HAVE_ARMV6
31--
322.4.0
33
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb
index e7d9e75e8d..fae88d24d1 100644
--- a/meta/recipes-multimedia/x264/x264_git.bb
+++ b/meta/recipes-multimedia/x264/x264_git.bb
@@ -8,13 +8,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
8 8
9DEPENDS = "nasm-native" 9DEPENDS = "nasm-native"
10 10
11SRC_URI = "git://github.com/mirror/x264;branch=stable;protocol=https \ 11SRC_URI = "git://code.videolan.org/videolan/x264.git;branch=stable;protocol=https \
12 file://don-t-default-to-cortex-a9-with-neon.patch \
13 file://Fix-X32-build-by-disabling-asm.patch \
14 " 12 "
15UPSTREAM_CHECK_COMMITS = "1" 13UPSTREAM_CHECK_COMMITS = "1"
16 14
17SRCREV = "baee400fa9ced6f5481a728138fed6e867b0ff7f" 15SRCREV = "31e19f92f00c7003fa115047ce50978bc98c3a0d"
18 16
19PV = "r3039+git" 17PV = "r3039+git"
20 18
@@ -41,6 +39,7 @@ EXTRA_OECONF = '--prefix=${prefix} \
41 --disable-opencl \ 39 --disable-opencl \
42 --enable-pic \ 40 --enable-pic \
43 ${X264_DISABLE_ASM} \ 41 ${X264_DISABLE_ASM} \
42 --extra-cflags="${TUNE_CCARGS}" \
44 ' 43 '
45 44
46do_configure() { 45do_configure() {
@@ -54,3 +53,5 @@ do_install() {
54} 53}
55 54
56AS[unexport] = "1" 55AS[unexport] = "1"
56
57COMPATIBLE_HOST:x86-x32 = "null"