File welle-io-fdk-aac.patch of Package welle-io

127
 
1
diff --git a/CMakeLists.txt b/CMakeLists.txt
2
index 5e0ef762..208ad4e7 100644
3
--- a/CMakeLists.txt
4
+++ b/CMakeLists.txt
5
@@ -24,10 +24,10 @@ option(AIRSPY            "Compile with Airspy support"           OFF )
6
 option(RTLSDR            "Compile with RTL-SDR support"          OFF )
7
 option(SOAPYSDR          "Compile with SoapySDR support"         OFF )
8
 option(FLAC              "Compile with flac support for streaming" OFF )
9
+option(FDK_AAC           "Use FDK-AAC instead of FAAD"           OFF )
10
 
11
 add_definitions(-Wall)
12
 add_definitions(-g)
13
-add_definitions(-DDABLIN_AAC_FAAD2)
14
 
15
 if(MINGW)
16
     add_definitions(-municode)
17
@@ -94,7 +94,21 @@ if(NOT ANDROID)
18
         set(fft_sources "")
19
         set(KISS_INCLUDE_DIRS "")
20
     endif()
21
-    find_package(Faad REQUIRED)
22
+    if (FDK_AAC)
23
+        find_package(FdkAac REQUIRED)
24
+        if (FDKAAC_FOUND)
25
+            add_definitions(-DDABLIN_AAC_FDKAAC)
26
+            set(AAC_LIBRARIES ${FDKAAC_LIBRARIES})
27
+            set(AAC_INCLUDE_DIRS ${FDKAAC_INCLUDE_DIRS})
28
+        endif()
29
+    else()
30
+        find_package(Faad REQUIRED)
31
+        if (FAAD_FOUND)
32
+            add_definitions(-DDABLIN_AAC_FAAD2)
33
+            set(AAC_LIBRARIES ${FAAD_LIBRARIES})
34
+            set(AAC_INCLUDE_DIRS ${FAAD_INCLUDE_DIRS})
35
+        endif()
36
+    endif()
37
     find_package(MPG123 REQUIRED)
38
 else()
39
     # For KISSFFT
40
@@ -141,6 +155,7 @@ else()
41
     )
42
 
43
     # For FAAD
44
+    add_definitions(-DDABLIN_AAC_FAAD2)
45
     add_definitions(-DHAVE_CONFIG_H)
46
     include_directories(
47
         src/libs/faad2
48
@@ -215,7 +230,7 @@ include_directories(
49
     src/libs/fec
50
     ${FFTW3F_INCLUDE_DIRS}
51
     ${KISS_INCLUDE_DIRS}
52
-    ${FAAD_INCLUDE_DIRS}
53
+    ${AAC_INCLUDE_DIRS}
54
     ${LIBRTLSDR_INCLUDE_DIRS}
55
     ${SoapySDR_INCLUDE_DIRS}
56
     ${FLACPP_INCLUDE_DIRS}
57
@@ -416,7 +431,7 @@ if(BUILD_WELLE_IO)
58
       ${LIBRTLSDR_LIBRARIES}
59
       ${LIBAIRSPY_LIBRARIES}
60
       ${FFTW3F_LIBRARIES}
61
-      ${FAAD_LIBRARIES}
62
+      ${AAC_LIBRARIES}
63
       ${SoapySDR_LIBRARIES}
64
       ${MPG123_LIBRARIES}
65
       Threads::Threads
66
@@ -477,7 +492,7 @@ if(BUILD_WELLE_CLI AND NOT ANDROID)
67
       ${LIBRTLSDR_LIBRARIES}
68
       ${LIBAIRSPY_LIBRARIES}
69
       ${FFTW3F_LIBRARIES}
70
-      ${FAAD_LIBRARIES}
71
+      ${AAC_LIBRARIES}
72
       ${ALSA_LIBRARIES}
73
       ${LAME_LIBRARIES}
74
       ${SoapySDR_LIBRARIES}
75
diff --git a/cmake/Modules/FindFdkAac.cmake b/cmake/Modules/FindFdkAac.cmake
76
new file mode 100644
77
index 00000000..12b79243
78
--- /dev/null
79
+++ b/cmake/Modules/FindFdkAac.cmake
80
@@ -0,0 +1,34 @@
81
+# Try to find FDKAAC library and include path.
82
+# Once done this will define
83
+#
84
+# FDKAAC_INCLUDE_DIRS - where to find faad.h, etc.
85
+# FDKAAC_LIBRARIES - List of libraries when using libfaad.
86
+# FDKAAC_FOUND - True if libfaad found.
87
+
88
+find_path(FDKAAC_INCLUDE_DIR fdk-aac/aacdecoder_lib.h DOC "The directory where fdk-aac/aacdecoder_lib.h resides")
89
+find_library(FDKAAC_LIBRARY NAMES fdk-aac DOC "The libfdk-aac library")
90
+
91
+if(FDKAAC_INCLUDE_DIR AND FDKAAC_LIBRARY)
92
+  set(FDKAAC_FOUND 1)
93
+  set(FDKAAC_LIBRARIES ${FDKAAC_LIBRARY})
94
+  set(FDKAAC_INCLUDE_DIRS ${FDKAAC_INCLUDE_DIR})
95
+else(FDKAAC_INCLUDE_DIR AND FDKAAC_LIBRARY)
96
+  set(FDKAAC_FOUND 0)
97
+  set(FDKAAC_LIBRARIES)
98
+  set(FDKAAC_INCLUDE_DIRS)
99
+endif(FDKAAC_INCLUDE_DIR AND FDKAAC_LIBRARY)
100
+
101
+mark_as_advanced(FDKAAC_INCLUDE_DIR)
102
+mark_as_advanced(FDKAAC_LIBRARY)
103
+mark_as_advanced(FDKAAC_FOUND)
104
+
105
+if(NOT FDKAAC_FOUND)
106
+  set(FDKAAC_DIR_MESSAGE "libfaad was not found. Make sure FDKAAC_LIBRARY and FDKAAC_INCLUDE_DIR are set.")
107
+  if(NOT FDKAAC_FIND_QUIETLY)
108
+    message(STATUS "${FDKAAC_DIR_MESSAGE}")
109
+  else(NOT FDKAAC_FIND_QUIETLY)
110
+    if(FDKAAC_FIND_REQUIRED)
111
+      message(FATAL_ERROR "${FDKAAC_DIR_MESSAGE}")
112
+    endif(FDKAAC_FIND_REQUIRED)
113
+  endif(NOT FDKAAC_FIND_QUIETLY)
114
+endif(NOT FDKAAC_FOUND)
115
diff --git a/src/backend/subchannel_sink.h b/src/backend/subchannel_sink.h
116
index 826c9d22..4d234430 100644
117
--- a/src/backend/subchannel_sink.h
118
+++ b/src/backend/subchannel_sink.h
119
@@ -52,6 +52,7 @@ public:
120
    virtual void ProcessPAD(const uint8_t* /*xpad_data*/, size_t /*xpad_len*/, bool /*exact_xpad_len*/, const uint8_t* /*fpad_data*/) {}
121
 
122
    virtual void AudioError(const std::string& /*hint*/) {}
123
+   virtual void AudioWarning(const std::string& /*hint*/) {}
124
     virtual void ACCFrameError(const unsigned char /* error*/) {}
125
    virtual void FECInfo(int /*total_corr_count*/, bool /*uncorr_errors*/) {}
126
 };
127