[tracker-miners/sam/libav-testing: 6/15] build: Add 'ffmpeg' build option




commit 118286b812bc05dbce41b0d29754c9888a8e30b2
Author: Sam Thursfield <sam thursfield codethink co uk>
Date:   Wed Aug 31 10:46:52 2022 +0200

    build: Add 'ffmpeg' build option
    
    This is the same as 'libav' for now as the two libraries have
    similar enough API to be interchangeable for our purposes.
    
    Note that libav is abandoned since 2020[1] so we may eventually drop
    that option and leave only 'ffmpeg'.
    
    1. https://lists.libav.org/pipermail/libav-devel/2020-April/086589.html

 meson.build                     | 6 +++++-
 meson_options.txt               | 4 ++--
 src/tracker-extract/meson.build | 2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/meson.build b/meson.build
index cb757cd9b..5548fa2f9 100644
--- a/meson.build
+++ b/meson.build
@@ -265,7 +265,11 @@ elif get_option('generic_media_extractor') == 'gstreamer'
   else
     error('GStreamer media handler was enabled but required GStreamer libraries were not found')
   endif
-elif get_option('generic_media_extractor') == 'libav'
+elif get_option('generic_media_extractor') in ['libav', 'ffmpeg']
+  avcodec = dependency('libavcodec', version: '>= 0.8.4', required: false)
+  avformat = dependency('libavformat', version: '>= 0.8.4', required: false)
+  avutil = dependency('libavutil', version: '>= 0.8.4', required: false)
+
   if avcodec.found() and avformat.found() and avutil.found()
     generic_media_handler = [avcodec, avformat, avutil]
     generic_media_handler_name = 'libav'
diff --git a/meson_options.txt b/meson_options.txt
index d0e3095a1..57e56c16f 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -78,8 +78,8 @@ option('battery_detection', type: 'combo', choices: ['auto', 'hal', 'upower', 'n
        description: 'Enable upower or HAL for battery/mains power detection')
 option('charset_detection', type: 'combo', choices: ['auto', 'enca', 'icu', 'none'], value: 'auto',
        description: 'Enable enca or libicu for charset detection in MP3s')
-option('generic_media_extractor', type: 'combo', choices: ['auto', 'gstreamer', 'libav', 'none'], value: 
'auto',
-       description: 'Enables one of the (gstreamer, libav, auto) generic media extractor backends')
+option('generic_media_extractor', type: 'combo', choices: ['auto', 'gstreamer', 'ffmpeg', 'libav', 'none'], 
value: 'gstreamer',
+       description: 'Enables one of the (gstreamer, ffmpeg, libav) generic media extractor backends')
 option('gstreamer_backend', type: 'combo', choices: ['discoverer', 'gupnp'], value: 'discoverer',
        description: 'When GStreamer is used, this enables one of the (discoverer, gupnp) GStreamer backends')
 
diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build
index ccf806ca7..0505f9a6d 100644
--- a/src/tracker-extract/meson.build
+++ b/src/tracker-extract/meson.build
@@ -51,7 +51,7 @@ if libjpeg.found()
   modules += [['extract-jpeg', 'tracker-extract-jpeg.c', ['10-jpeg.rule'], [libjpeg, 
tracker_miners_common_dep]]]
 endif
 
-if generic_media_handler_name == 'libav'
+if generic_media_handler_name in ['ffmpeg', 'libav']
   rules = ['90-libav-audio-generic.rule', '90-libav-video-generic.rule']
   dependencies = [avcodec, avformat, avutil, tracker_miners_common_dep]
   modules += [['extract-libav', 'tracker-extract-libav.c', rules, dependencies]]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]