diff --git a/CMakeLists.txt b/CMakeLists.txt index 33cb57946..5d6c1420d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -107,6 +107,7 @@ set_package_properties(terminfo PROPERTIES TYPE REQUIRED) set(PKGCONF_REQ_PRIV "${TERMINFO_LIBRARIES}") if(${USE_FFMPEG}) pkg_check_modules(AVCODEC REQUIRED libavcodec>=57.0) +pkg_check_modules(AVDEVICE REQUIRED libavdevice>=57.0) pkg_check_modules(AVFORMAT REQUIRED libavformat>=57.0) pkg_check_modules(AVUTIL REQUIRED libavutil>=56.0) pkg_check_modules(SWSCALE REQUIRED libswscale>=5.0) @@ -362,6 +363,7 @@ if(${USE_FFMPEG}) target_include_directories(notcurses PRIVATE "${AVCODEC_INCLUDE_DIRS}" + "${AVDEVICE_INCLUDE_DIRS}" "${AVFORMAT_INCLUDE_DIRS}" "${AVUTIL_INCLUDE_DIRS}" "${SWSCALE_INCLUDE_DIRS}" @@ -369,6 +371,7 @@ target_include_directories(notcurses target_include_directories(notcurses-static PRIVATE "${AVCODEC_STATIC_INCLUDE_DIRS}" + "${AVDEVICE_STATIC_INCLUDE_DIRS}" "${AVFORMAT_STATIC_INCLUDE_DIRS}" "${AVUTIL_STATIC_INCLUDE_DIRS}" "${SWSCALE_STATIC_INCLUDE_DIRS}" @@ -376,6 +379,7 @@ target_include_directories(notcurses-static target_link_libraries(notcurses PRIVATE "${AVCODEC_LIBRARIES}" + "${AVDEVICE_LIBRARIES}" "${AVFORMAT_LIBRARIES}" "${SWSCALE_LIBRARIES}" "${AVUTIL_LIBRARIES}" @@ -383,6 +387,7 @@ target_link_libraries(notcurses target_link_libraries(notcurses-static PRIVATE "${AVCODEC_STATIC_LIBRARIES}" + "${AVDEVICE_STATIC_LIBRARIES}" "${AVFORMAT_STATIC_LIBRARIES}" "${SWSCALE_STATIC_LIBRARIES}" "${AVUTIL_STATIC_LIBRARIES}" @@ -390,6 +395,7 @@ target_link_libraries(notcurses-static target_link_directories(notcurses PRIVATE "${AVCODEC_LIBRARY_DIRS}" + "${AVDEVICE_LIBRARY_DIRS}" "${AVFORMAT_LIBRARY_DIRS}" "${SWSCALE_LIBRARY_DIRS}" "${AVUTIL_LIBRARY_DIRS}" @@ -397,6 +403,7 @@ target_link_directories(notcurses target_link_directories(notcurses-static PRIVATE "${AVCODEC_STATIC_LIBRARY_DIRS}" + "${AVDEVICE_STATIC_LIBRARY_DIRS}" "${AVFORMAT_STATIC_LIBRARY_DIRS}" "${SWSCALE_STATIC_LIBRARY_DIRS}" "${AVUTIL_STATIC_LIBRARY_DIRS}" diff --git a/INSTALL.md b/INSTALL.md index a1808beb9..578e95839 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -16,13 +16,13 @@ There are no submodules. Dependencies are fairly minimal. Install build dependencies: -`apt-get install build-essential cmake doctest-dev libavformat-dev libavutil-dev libdeflate-dev libgpm-dev libncurses-dev libqrcodegen-dev libswscale-dev libunistring-dev pandoc pkg-config` +`apt-get install build-essential cmake doctest-dev libavformat-dev libavdevice-dev libavutil-dev libdeflate-dev libgpm-dev libncurses-dev libqrcodegen-dev libswscale-dev libunistring-dev pandoc pkg-config` -If you only intend to build core Notcurses (without multimedia support), you -can omit `libavformat-dev`, `libavutil-dev`, and `libswscale-dev` from this -list. `zlib1g-dev` can be substituted for `libdeflate-dev`; build with -`-DUSE_DEFLATE=off` in this case. If you don't want to generate QR codes, you can -omit 'libqrcodegen-dev'. +If you only intend to build core Notcurses (without multimedia support), you can +omit `libavformat-dev`, `libavdevice-dev`, `libavutil-dev`, and `libswscale-dev` +from this list. `zlib1g-dev` can be substituted for `libdeflate-dev`; build with +`-DUSE_DEFLATE=off` in this case. If you don't want to generate QR codes, you +can omit 'libqrcodegen-dev'. If you want to build the Python wrappers, you'll also need: diff --git a/src/media/ffmpeg.c b/src/media/ffmpeg.c index cc9ffb03f..e0cae256a 100644 --- a/src/media/ffmpeg.c +++ b/src/media/ffmpeg.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include "lib/visual-details.h" @@ -691,17 +692,19 @@ ffmpeg_log_level(int level){ static int ffmpeg_init(int logl){ av_log_set_level(ffmpeg_log_level(logl)); + avdevice_register_all(); // FIXME could also use av_log_set_callback() and capture the message... return 0; } static void ffmpeg_printbanner(fbuf* f){ - fbuf_printf(f, "avformat %u.%u.%u avutil %u.%u.%u swscale %u.%u.%u avcodec %u.%u.%u" NL, + fbuf_printf(f, "avformat %u.%u.%u avutil %u.%u.%u swscale %u.%u.%u avcodec %u.%u.%u avdevice %u.%u.%u" NL, LIBAVFORMAT_VERSION_MAJOR, LIBAVFORMAT_VERSION_MINOR, LIBAVFORMAT_VERSION_MICRO, LIBAVUTIL_VERSION_MAJOR, LIBAVUTIL_VERSION_MINOR, LIBAVUTIL_VERSION_MICRO, LIBSWSCALE_VERSION_MAJOR, LIBSWSCALE_VERSION_MINOR, LIBSWSCALE_VERSION_MICRO, - LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, LIBAVCODEC_VERSION_MICRO); + LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, LIBAVCODEC_VERSION_MICRO, + LIBAVDEVICE_VERSION_MAJOR, LIBAVDEVICE_VERSION_MINOR, LIBAVDEVICE_VERSION_MICRO); } static void