Apply fixes based on FFmpeg 5.0
See README.md for more details
This commit is contained in:
parent
2f62762ea7
commit
41c291f51c
3 changed files with 15 additions and 23 deletions
|
@ -30,27 +30,6 @@ find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(FFMPEG_LIBAVCODEC REQUIRED
|
pkg_check_modules(FFMPEG_LIBAVCODEC REQUIRED
|
||||||
libavcodec libavformat libavutil libswscale)
|
libavcodec libavformat libavutil libswscale)
|
||||||
|
|
||||||
if(${FFMPEG_LIBAVCODEC_libavcodec_VERSION} VERSION_GREATER "58.134.100"
|
|
||||||
OR
|
|
||||||
${FFMPEG_LIBAVCODEC_libavformat_VERSION} VERSION_GREATER "58.76.100"
|
|
||||||
OR
|
|
||||||
${FFMPEG_LIBAVCODEC_libavutil_VERSION} VERSION_GREATER "56.70.100"
|
|
||||||
OR
|
|
||||||
${FFMPEG_LIBAVCODEC_libswscale_VERSION} VERSION_GREATER "5.9.100")
|
|
||||||
message(FATAL_ERROR "FFmpeg version is newer than expected, please use FFmpeg version 4.4")
|
|
||||||
# The following may be necessary when moving to FFmpeg 5.0
|
|
||||||
#elseif(${FFMPEG_LIBAVCODEC_libavcodec_VERSION} VERSION_LESS_EQUAL "58.91.100"
|
|
||||||
# OR
|
|
||||||
# ${FFMPEG_LIBAVCODEC_libavformat_VERSION} VERSION_LESS_EQUAL "58.45.100"
|
|
||||||
# OR
|
|
||||||
# ${FFMPEG_LIBAVCODEC_libavutil_VERSION} VERSION_LESS_EQUAL "56.51.100"
|
|
||||||
# OR
|
|
||||||
# ${FFMPEG_LIBAVCODEC_libswscale_VERSION} VERSION_LESS_EQUAL "5.7.100")
|
|
||||||
# message(FATAL_ERROR "FFmpeg version is older than expected, please use FFmpeg version 4.4")
|
|
||||||
else()
|
|
||||||
message("FFmpeg version is OK")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_include_directories(DitheringProject PUBLIC
|
target_include_directories(DitheringProject PUBLIC
|
||||||
${OpenCL_INCLUDE_DIRS}
|
${OpenCL_INCLUDE_DIRS}
|
||||||
${PNG_INCLUDE_DIRS}
|
${PNG_INCLUDE_DIRS}
|
||||||
|
|
|
@ -2,14 +2,19 @@
|
||||||
|
|
||||||
## Note about Maintenance and Versions
|
## Note about Maintenance and Versions
|
||||||
|
|
||||||
The project at tag `1.0.0` refers to the state of the project upon completion
|
~~The project at tag `1.0.0` refers to the state of the project upon completion
|
||||||
of the course. Newer versions are meant to be maintenance releases; fixes that
|
of the course. Newer versions are meant to be maintenance releases; fixes that
|
||||||
keep the project working. As of 2022-01-18, there may be (after now) a version
|
keep the project working. As of 2022-01-18, there may be (after now) a version
|
||||||
`1.1.0` or `1.0.1` due to keeping up to date with the FFmpeg dependency as a new
|
`1.1.0` or `1.0.1` due to keeping up to date with the FFmpeg dependency as a new
|
||||||
major version of FFmpeg was released (version `5.0`).
|
major version of FFmpeg was released (version `5.0`).
|
||||||
|
|
||||||
To be clear, version `1.0.0` of this project is expected to work with FFmpeg
|
To be clear, version `1.0.0` of this project is expected to work with FFmpeg
|
||||||
version `4.4`.
|
version `4.4`.~~
|
||||||
|
|
||||||
|
Fixes were applied for FFmpeg version 5. A macro is used to change incompatible
|
||||||
|
code based on what version of FFmpeg is specified in the headers, so external
|
||||||
|
checking of version is not necessary. Thus, the latest version of this repo
|
||||||
|
should work with both FFmpeg 5.0 and 4.4.
|
||||||
|
|
||||||
## Background
|
## Background
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,11 @@ bool Video::DitherVideo(const std::string &output_filename, Image *blue_noise,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get "best" video stream
|
// Get "best" video stream
|
||||||
|
#if LIBAVFORMAT_VERSION_MAJOR >= 59
|
||||||
|
const AVCodec *dec_codec = nullptr;
|
||||||
|
#else
|
||||||
AVCodec *dec_codec = nullptr;
|
AVCodec *dec_codec = nullptr;
|
||||||
|
#endif
|
||||||
return_value = av_find_best_stream(
|
return_value = av_find_best_stream(
|
||||||
avf_dec_context, AVMediaType::AVMEDIA_TYPE_VIDEO, -1, -1, &dec_codec, 0);
|
avf_dec_context, AVMediaType::AVMEDIA_TYPE_VIDEO, -1, -1, &dec_codec, 0);
|
||||||
if (return_value < 0) {
|
if (return_value < 0) {
|
||||||
|
@ -193,7 +197,11 @@ bool Video::DitherVideo(const std::string &output_filename, Image *blue_noise,
|
||||||
|
|
||||||
// set output video codec (h264)
|
// set output video codec (h264)
|
||||||
AVCodecContext *enc_codec_context = nullptr;
|
AVCodecContext *enc_codec_context = nullptr;
|
||||||
|
#if LIBAVCODEC_VERSION_MAJOR >= 59
|
||||||
|
const AVCodec *enc_codec = nullptr;
|
||||||
|
#else
|
||||||
AVCodec *enc_codec = nullptr;
|
AVCodec *enc_codec = nullptr;
|
||||||
|
#endif
|
||||||
|
|
||||||
// get H264 codec
|
// get H264 codec
|
||||||
if (!output_as_pngs) {
|
if (!output_as_pngs) {
|
||||||
|
|
Loading…
Reference in a new issue