Fix build with ffmpeg-4.x Obtained from: https://git.archlinux.org/svntogit/packages.git/tree/trunk/qtwebengine-ffmpeg4.patch?h=packages/qt5-webengine&id=421103a8798335f7788498e56b5eef3f33ecba26 --- src/3rdparty/chromium/media/base/decoder_buffer.h.orig 2018-01-15 11:39:43 UTC +++ src/3rdparty/chromium/media/base/decoder_buffer.h @@ -37,7 +37,7 @@ class MEDIA_EXPORT DecoderBuffer : public base::RefCountedThreadSafe { public: enum { - kPaddingSize = 32, + kPaddingSize = 64, #if defined(ARCH_CPU_ARM_FAMILY) kAlignmentSize = 16 #else --- src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc.orig 2018-01-15 11:39:43 UTC +++ src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc @@ -30,10 +30,10 @@ EncryptionScheme GetEncryptionScheme(const AVStream* s } // namespace -// Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are +// Why AV_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are // padded. Check here to ensure FFmpeg only receives data padded to its // specifications. -static_assert(DecoderBuffer::kPaddingSize >= FF_INPUT_BUFFER_PADDING_SIZE, +static_assert(DecoderBuffer::kPaddingSize >= AV_INPUT_BUFFER_PADDING_SIZE, "DecoderBuffer padding size does not fit ffmpeg requirement"); // Alignment requirement by FFmpeg for input and output buffers. This need to @@ -429,11 +429,11 @@ void AudioDecoderConfigToAVCodecContext(const AudioDec } else { codec_context->extradata_size = config.extra_data().size(); codec_context->extradata = reinterpret_cast( - av_malloc(config.extra_data().size() + FF_INPUT_BUFFER_PADDING_SIZE)); + av_malloc(config.extra_data().size() + AV_INPUT_BUFFER_PADDING_SIZE)); memcpy(codec_context->extradata, &config.extra_data()[0], config.extra_data().size()); memset(codec_context->extradata + config.extra_data().size(), '\0', - FF_INPUT_BUFFER_PADDING_SIZE); + AV_INPUT_BUFFER_PADDING_SIZE); } } @@ -561,11 +561,11 @@ void VideoDecoderConfigToAVCodecContext( } else { codec_context->extradata_size = config.extra_data().size(); codec_context->extradata = reinterpret_cast( - av_malloc(config.extra_data().size() + FF_INPUT_BUFFER_PADDING_SIZE)); + av_malloc(config.extra_data().size() + AV_INPUT_BUFFER_PADDING_SIZE)); memcpy(codec_context->extradata, &config.extra_data()[0], config.extra_data().size()); memset(codec_context->extradata + config.extra_data().size(), '\0', - FF_INPUT_BUFFER_PADDING_SIZE); + AV_INPUT_BUFFER_PADDING_SIZE); } } --- src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc.orig 2018-01-15 11:39:43 UTC +++ src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc @@ -53,7 +53,7 @@ static void ReleaseAudioBufferImpl(void* opaque, uint8 // AVCodecContext.opaque to get the object reference in order to call // GetAudioBuffer() to do the actual allocation. static int GetAudioBuffer(struct AVCodecContext* s, AVFrame* frame, int flags) { - DCHECK(s->codec->capabilities & CODEC_CAP_DR1); + DCHECK(s->codec->capabilities & AV_CODEC_CAP_DR1); DCHECK_EQ(s->codec_type, AVMEDIA_TYPE_AUDIO); // Since this routine is called by FFmpeg when a buffer is required for audio --- src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc.orig 2018-01-15 11:39:43 UTC +++ src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc @@ -415,12 +415,11 @@ bool FFmpegVideoDecoder::ConfigureDecoder(bool low_del codec_context_->thread_type = FF_THREAD_SLICE | (low_delay ? 0 : FF_THREAD_FRAME); codec_context_->opaque = this; - codec_context_->flags |= CODEC_FLAG_EMU_EDGE; codec_context_->get_buffer2 = GetVideoBufferImpl; codec_context_->refcounted_frames = 1; if (decode_nalus_) - codec_context_->flags2 |= CODEC_FLAG2_CHUNKS; + codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS; AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id); if (!codec || avcodec_open2(codec_context_.get(), codec, NULL) < 0) {