guix/gnu/packages/patches/ungoogled-chromium-ffmpeg-compat.patch

69 lines
2.5 KiB
Diff
Raw Normal View History

The bundled ffmpeg in Chromium is newer than the one in Guix. Patch so
we can build with the new and old ffmpeg versions.
Taken from Gentoo:
https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-93-fix-build-with-system-ffmpeg.patch
diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
--- a/media/filters/audio_decoder_unittest.cc
+++ b/media/filters/audio_decoder_unittest.cc
@@ -109,7 +109,11 @@ void SetDiscardPadding(AVPacket* packet,
}
// If the timestamp is positive, try to use FFmpeg's discard data.
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0;
+#else
size_t skip_samples_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -427,11 +427,19 @@ void FFmpegDemuxerStream::EnqueuePacket(
scoped_refptr<DecoderBuffer> buffer;
if (type() == DemuxerStream::TEXT) {
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int id_size = 0;
+#else
size_t id_size = 0;
+#endif
uint8_t* id_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int settings_size = 0;
+#else
size_t settings_size = 0;
+#endif
uint8_t* settings_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
@@ -443,7 +451,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
side_data.data(), side_data.size());
} else {
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int side_data_size = 0;
+#else
size_t side_data_size = 0;
+#endif
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
@@ -504,7 +516,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
packet->size - data_offset);
}
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0;
+#else
size_t skip_samples_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));