From 4f2bf945a949b2902c74fc360c4cda30b73a06eb Mon Sep 17 00:00:00 2001 From: Kiriti Gowda Date: Wed, 28 Feb 2024 09:37:33 -0800 Subject: [PATCH] FFMPEG 5.X - Support (#268) --- samples/videoDecode/CMakeLists.txt | 5 +++++ samples/videoDecodeMem/CMakeLists.txt | 5 +++++ samples/videoDecodeMultiFiles/CMakeLists.txt | 5 +++++ samples/videoDecodePerf/CMakeLists.txt | 5 +++++ samples/videoDecodeRGB/CMakeLists.txt | 5 +++++ utils/video_demuxer.h | 3 +++ 6 files changed, 28 insertions(+) diff --git a/samples/videoDecode/CMakeLists.txt b/samples/videoDecode/CMakeLists.txt index e777d67ea7..ae9cc23c80 100644 --- a/samples/videoDecode/CMakeLists.txt +++ b/samples/videoDecode/CMakeLists.txt @@ -74,6 +74,11 @@ if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND) include_directories(${AVUTIL_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${FFMPEG_LIBRARIES}) + if(_FFMPEG_AVCODEC_VERSION VERSION_LESS_EQUAL 58.54.100) + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=0) + else() + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=1) + endif() # rocDecode include_directories (${ROCDECODE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCDECODE_LIBRARY}) diff --git a/samples/videoDecodeMem/CMakeLists.txt b/samples/videoDecodeMem/CMakeLists.txt index 32f48a1905..e5f9d88a1c 100644 --- a/samples/videoDecodeMem/CMakeLists.txt +++ b/samples/videoDecodeMem/CMakeLists.txt @@ -74,6 +74,11 @@ if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND) include_directories(${AVUTIL_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${FFMPEG_LIBRARIES}) + if(_FFMPEG_AVCODEC_VERSION VERSION_LESS_EQUAL 58.54.100) + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=0) + else() + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=1) + endif() # rocDecode include_directories (${ROCDECODE_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCDECODE_LIBRARY}) diff --git a/samples/videoDecodeMultiFiles/CMakeLists.txt b/samples/videoDecodeMultiFiles/CMakeLists.txt index 8eba0e9fd3..716f6c8280 100644 --- a/samples/videoDecodeMultiFiles/CMakeLists.txt +++ b/samples/videoDecodeMultiFiles/CMakeLists.txt @@ -74,6 +74,11 @@ if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND) include_directories(${AVUTIL_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${FFMPEG_LIBRARIES}) + if(_FFMPEG_AVCODEC_VERSION VERSION_LESS_EQUAL 58.54.100) + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=0) + else() + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=1) + endif() # rocDecode include_directories (${ROCDECODE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCDECODE_LIBRARY}) diff --git a/samples/videoDecodePerf/CMakeLists.txt b/samples/videoDecodePerf/CMakeLists.txt index f0f4bd8c9f..fa107154b5 100644 --- a/samples/videoDecodePerf/CMakeLists.txt +++ b/samples/videoDecodePerf/CMakeLists.txt @@ -74,6 +74,11 @@ if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND AND Threads_FOUND) include_directories(${AVUTIL_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR} ${SWSCALE_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${FFMPEG_LIBRARIES}) + if(_FFMPEG_AVCODEC_VERSION VERSION_LESS_EQUAL 58.54.100) + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=0) + else() + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=1) + endif() # rocDecode include_directories (${ROCDECODE_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCDECODE_LIBRARY}) diff --git a/samples/videoDecodeRGB/CMakeLists.txt b/samples/videoDecodeRGB/CMakeLists.txt index a25d053cf5..f64f63966a 100644 --- a/samples/videoDecodeRGB/CMakeLists.txt +++ b/samples/videoDecodeRGB/CMakeLists.txt @@ -81,6 +81,11 @@ if(HIP_FOUND AND FFMPEG_FOUND AND ROCDECODE_FOUND) # FFMPEG include_directories(${AVUTIL_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${FFMPEG_LIBRARIES}) + if(_FFMPEG_AVCODEC_VERSION VERSION_LESS_EQUAL 58.54.100) + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=0) + else() + target_compile_definitions(${PROJECT_NAME} PUBLIC USE_AVCODEC_58_54=1) + endif() # rocDecode and utils include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../../utils ${ROCDECODE_INCLUDE_DIR}) set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${ROCDECODE_LIBRARY}) diff --git a/utils/video_demuxer.h b/utils/video_demuxer.h index c20afc23f7..131fc360d9 100644 --- a/utils/video_demuxer.h +++ b/utils/video_demuxer.h @@ -26,6 +26,9 @@ THE SOFTWARE. extern "C" { #include #include + #if USE_AVCODEC_58_54 + #include + #endif } #include "rocdecode.h"