Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.10.0
-
None
-
Ubuntu (Mint 18.3) Linux kernel 4.10.0-42-generic #46~16.04.1-Ubuntu SMP x86_64
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
{noformat}
ffmpeg version N-89430-ge1121f9 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
configuration: --prefix=$HOME/util --pkg-config-flags=--static --extra-cflags=-I$HOME/util/include --extra-ldflags=-L$HOME/util/lib --extra-libs='-lpthread -lm' --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-shared --enable-static
libavutil 56. 5.100 / 56. 5.100
libavcodec 58. 6.103 / 58. 6.103
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 7.100 / 7. 7.100
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100{noformat}Ubuntu (Mint 18.3) Linux kernel 4.10.0-42-generic #46~16.04.1-Ubuntu SMP x86_64 gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) {noformat} ffmpeg version N-89430-ge1121f9 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609 configuration: --prefix=$HOME/util --pkg-config-flags=--static --extra-cflags=-I$HOME/util/include --extra-ldflags=-L$HOME/util/lib --extra-libs='-lpthread -lm' --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-shared --enable-static libavutil 56. 5.100 / 56. 5.100 libavcodec 58. 6.103 / 58. 6.103 libavformat 58. 3.100 / 58. 3.100 libavdevice 58. 0.100 / 58. 0.100 libavfilter 7. 7.100 / 7. 7.100 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 libpostproc 55. 0.100 / 55. 0.100{noformat}
Description
During building of bleeding-edge QtWebEngine configured with 'ffmpeg' CLI option with bleeding-edge FFmpeg (from github) GCC reports some errors on the deprecated constants' names. This issue has forced me to analyse changes in FFmpeg sources. I found 4 deprecated names declared in file qtwebengine/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc:
- FF_INPUT_BUFFER_PADDING_SIZE
- CODEC_CAP_DR1
- CODEC_FLAG2_CHUNKS
- CODEC_FLAG_EMU_EDGE
These names are now deprecated and CODEC_FLAG_EMU_EDGE removed from original FFmpeg source. To initially fix the problem I added the following definitions into ffmpeg_common.h:
#define FF_INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE
#define CODEC_CAP_DR1 AV_CODEC_CAP_DR1
#define CODEC_FLAG2_CHUNKS AV_CODEC_FLAG2_CHUNKS
#define CODEC_FLAG_EMU_EDGE 0x4000 //Deprecated in FFmpeg, derived from old docs
The changed file is attached to this report.
UPDATE: the first assert in ffmpeg_common.cc now returns false when Qt is built from source with ffmpeg installed also from source:
// Why FF_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, "DecoderBuffer padding size does not fit ffmpeg requirement");