Przeglądaj źródła

(ffmpeg): add libav for decoding video frames

Douglas A 3 lat temu
rodzic
commit
09d252f672
2 zmienionych plików z 27 dodań i 1 usunięć
  1. 4 1
      CMakeLists.txt
  2. 23 0
      lib/FFmpeg/CMakeLists.txt

+ 4 - 1
CMakeLists.txt

@@ -5,15 +5,18 @@ project(video-app C CXX)
 
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED true)
+set(CMAKE_BUILD_TYPE Debug)
 
 add_subdirectory(lib/glfw)
+add_subdirectory(lib/FFmpeg)
 
 list(APPEND EXTRA_LIBS
             "-lGL -lGLU -lX11")
 
 
-add_executable(video-app src/main.cpp)
+add_executable(video-app src/main.cpp src/load_frame.cpp)
 target_link_libraries(video-app 
+                      FFmpeg
                       glfw
                       ${EXTRA_LIBS}
                       )

+ 23 - 0
lib/FFmpeg/CMakeLists.txt

@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.21.3)
+project(FFmpeg)
+
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(AVCODEC     REQUIRED IMPORTED_TARGET libavcodec)
+pkg_check_modules(AVFORMAT    REQUIRED IMPORTED_TARGET libavformat)
+pkg_check_modules(AVFILTER    REQUIRED IMPORTED_TARGET libavfilter)
+pkg_check_modules(AVDEVICE    REQUIRED IMPORTED_TARGET libavdevice)
+pkg_check_modules(AVUTIL      REQUIRED IMPORTED_TARGET libavutil)
+pkg_check_modules(SWRESAMPLE  REQUIRED IMPORTED_TARGET libswresample)
+pkg_check_modules(SWSCALE     REQUIRED IMPORTED_TARGET libswscale)
+
+add_library(FFmpeg INTERFACE IMPORTED GLOBAL)
+
+target_link_libraries(FFmpeg INTERFACE
+    PkgConfig::AVCODEC
+    PkgConfig::AVFORMAT
+    PkgConfig::AVFILTER
+    PkgConfig::AVDEVICE
+    PkgConfig::AVUTIL
+    PkgConfig::SWRESAMPLE
+    PkgConfig::SWSCALE
+)