-
Notifications
You must be signed in to change notification settings - Fork 365
Portaudio with Oboe Implementation #840
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
hopefulGiupplo
wants to merge
133
commits into
PortAudio:master
Choose a base branch
from
NetResultsIT:Rebase
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 132 commits
Commits
Show all changes
133 commits
Select commit
Hold shift + click to select a range
9b6ceeb
Preparation to start patching - TODOS and directory src/hostapi/Oboe
aff3b5a
Added src/hostapi/oboe/README.md
7d2c0c9
Added include/pa_oboe.h and src/hostapi/oboe/pa_oboe.cpp
8ab4dd5
Added PA_USE_OBOE section to CMakeLists.txt
3aed6fe
Added PA_USE_OBOE section to CMakeLists.txt
f5a89e1
Heavily reworked CMake dependencies, added FindOboe.cmake, updated pa…
51b3757
Included build_all_PaOboe.sh, more work needed on CMake
0e05b66
Included build_all_PaOboe.sh, more work needed on CMake
ed974aa
Update src/hostapi/oboe/README.md
hopefulGiupplo af46735
Built shared library
cdbb27e
Polished bits
816e7f5
Fixing old problems
948cb3d
Added some debug messages
71e0fcb
added new build script
e96d724
Added paOboe in the paHostApi array
194c597
Added paOboe in pa_unix_hostapis.c
313d759
Working patch
dd40f71
Ready for other users to compile/build
5cca69c
Updated oboe/Readme.md
402fc77
Added sharing mode selection
5c24f22
Fixed minor issue with sharing mode selection
75605db
Removed references to KCTI
a6e4301
Fixed error callback, added performance mode autoselection
3618f11
Minor change to CMakeLists, added low latency costant in pa_oboe.h
746b3a1
Deleted Build_PaOboe.sh
4a2bf79
Ready to push (removed my paths to Oboe directory and Android NDK)
b5ca5f9
Update README.md
hopefulGiupplo 07b8347
Update README.md
hopefulGiupplo 11abb8f
Merge remote-tracking branch 'destination/PaOboe_Patch' into PaOboe_P…
16fa52a
Merge remote-tracking branch 'destination/PaOboe_Patch' into PaOboe_P…
4370459
updated readme
4100c06
fixed CMakeLists.txt
ff72947
fixed FindOboe.cmake
c6fb364
Preparation to start patching - TODOS and directory src/hostapi/Oboe
9a7349f
Added src/hostapi/oboe/README.md
78c202b
Added include/pa_oboe.h and src/hostapi/oboe/pa_oboe.cpp
a879301
Added PA_USE_OBOE section to CMakeLists.txt
b416121
Added PA_USE_OBOE section to CMakeLists.txt
9ae5170
Heavily reworked CMake dependencies, added FindOboe.cmake, updated pa…
7288c90
Included build_all_PaOboe.sh, more work needed on CMake
24465ed
Included build_all_PaOboe.sh, more work needed on CMake
63c48b2
Built shared library
5dab26b
Polished bits
35589ee
Fixing old problems
f6b7814
Added some debug messages
09aa1b8
added new build script
efb6f1a
Added paOboe in the paHostApi array
3bf8046
Added paOboe in pa_unix_hostapis.c
b22fee5
Working patch
7acde75
Ready for other users to compile/build
3ae7ac3
Updated oboe/Readme.md
a018452
Added sharing mode selection
73d5b56
Fixed minor issue with sharing mode selection
9bd1c31
Removed references to KCTI
ac7c1c9
Fixed error callback, added performance mode autoselection
a7f2859
Minor change to CMakeLists, added low latency costant in pa_oboe.h
fd67311
Deleted Build_PaOboe.sh
bbf847a
Ready to push (removed my paths to Oboe directory and Android NDK)
6a12b65
Update src/hostapi/oboe/README.md
hopefulGiupplo fd5967c
Update README.md
hopefulGiupplo aa6bcbb
Update README.md
hopefulGiupplo 4d4d071
updated readme
bde12ce
fixed CMakeLists.txt
8b0730f
fixed FindOboe.cmake
577b04c
Merge remote-tracking branch 'origin/PaOboe_Patch' into PaOboe_Patch
6e8701f
corrected oboe/Readme.md
b2adaa5
Updated oboe/Readme.md
ab0dbbc
Merge branch 'master' into Rebase
hopefulGiupplo c253251
added .idea to gitignore
b6cc2e1
added .idea to gitignore
2217003
restored workflows directory
b9e7f41
Minor fixes to FindOboe.cmake
42a02b4
Enhanced prebuilt libraries compatibility in FindOboe.cmake
26b11aa
Minor changes to Pa_Oboe/Readme and pa_oboe.cpp
8265a71
Removed auto latency tuning in favor of simpler impleentation in pa_o…
e19c30d
Set paFloat32 as default format in pa_oboe.cpp
4112fcb
Renamed most of the variables according to best coding practices.
49d8122
Added separate callback class to fix the single-stream issue.
8035e7e
Modified OboeEngine accordingly
494600d
Adjusted the code in the rest of pa_oboe.cpp
f389437
Removed stop and close phases of OboeEngine::restartStream
e626214
Updated functions' description
62cfeb6
minor description corrections
ae5c61c
fixed all compiling errors generated by typos
9d03a73
Added OboeMediator class in place of OboeCallback, that mediates Port…
5098235
Fixed allocation problem, working PaOboe implementation
d8b1b8e
fixed README.md indenting
72abf68
Removed .idea folder from repo
912e951
replaced 'g_' with 'paOboe_' in non-static global variables
48947c0
replaced 'm_' prefix with 'm' prefix
cc9a83e
fixed OboeEngine::tryStream as requested
a56e813
PulseAudio Portaudio HostAPI (#336)
illuusio fb38b7f
pulseaudio: Move Pulseaudio include in correct place when using autoc…
illuusio 7b71a12
restored workflows directory
34bf282
Minor fixes to FindOboe.cmake
603bdde
Enhanced prebuilt libraries compatibility in FindOboe.cmake
1412c1d
Minor changes to Pa_Oboe/Readme and pa_oboe.cpp
df7f7e9
Removed auto latency tuning in favor of simpler impleentation in pa_o…
125bc00
Set paFloat32 as default format in pa_oboe.cpp
ba44469
Renamed most of the variables according to best coding practices.
8bc554f
Added separate callback class to fix the single-stream issue.
6723d6d
Modified OboeEngine accordingly
ae0cef2
Adjusted the code in the rest of pa_oboe.cpp
9f8e6fc
Removed stop and close phases of OboeEngine::restartStream
74fa4b5
Updated functions' description
9304b07
minor description corrections
26a3497
fixed all compiling errors generated by typos
881970a
Added OboeMediator class in place of OboeCallback, that mediates Port…
b3a5422
Fixed allocation problem, working PaOboe implementation
b78a241
fixed README.md indenting
ea1a4a4
Removed .idea folder from repo
25999de
replaced 'g_' with 'paOboe_' in non-static global variables
f38179d
replaced 'm_' prefix with 'm' prefix
c212474
fixed OboeEngine::tryStream as requested
decac0d
Changed names to improve readability, i.e. OboeStream -> PaOboeStream
079e853
Merge remote-tracking branch 'origin/master'
be18a06
fixed all compiling errors generated by typos
1dbfd82
Merge remote-tracking branch 'origin/Rebase' into Rebase
512ed42
Fixed minor problem with TryStream
f88819a
fixed long line in FindOboe.cmake
6f84e76
fixed typos in pa_oboe.cpp
5ed3d7f
set to verbose some logs
eae9922
Fixed minor problem with TryStream
87508d9
fixed long line in FindOboe.cmake
263427d
fixed typos in pa_oboe.cpp
a5d2b71
set to verbose some logs
e03f929
Merge remote-tracking branch 'origin/Rebase' into Rebase
8a54970
Better handling of format in paOboe, removed junk code from CMakeLists
097b37d
Improved readability of some variables
6c1e81c
Removed '#include oboe/Oboe.h' from pa_oboe.h, and modified host api …
9669f5b
static cast fixes
aeff8c0
Merge branch 'master' into Rebase
hopefulGiupplo afb62bf
Removed typo in portaudio.h
hopefulGiupplo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| #!/bin/bash | ||
| # Script used to build Portaudio for multiple Android ABIs, useful for its Oboe host API. | ||
| # | ||
| # Ensure that ANDROID_NDK environment variable is set to your Android NDK location | ||
| # e.g. /Library/Android/sdk/ndk-bundle | ||
|
|
||
| if [ -z "$ANDROID_NDK" ]; then | ||
| echo "Please set ANDROID_NDK to the Android NDK folder" | ||
| exit 1 | ||
| fi | ||
|
|
||
| # Build directory | ||
| BUILD_DIR=build | ||
|
|
||
| CMAKE_ARGS="-H. \ | ||
| -DBUILD_SHARED_LIBS=true \ | ||
| -DCMAKE_BUILD_TYPE=RelWithDebInfo \ | ||
| -DANDROID_TOOLCHAIN=clang \ | ||
| -DANDROID_STL=c++_shared \ | ||
| -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ | ||
| -DCMAKE_INSTALL_PREFIX=." | ||
|
|
||
| function build_PaOboe { | ||
|
|
||
| ABI=$1 | ||
| MINIMUM_API_LEVEL=$2 | ||
| ABI_BUILD_DIR=${BUILD_DIR}/${ABI} | ||
|
|
||
| echo "Building Pa_Oboe for ${ABI}" | ||
|
|
||
| mkdir -p ${ABI_BUILD_DIR} ${ABI_BUILD_DIR}/${STAGING_DIR} | ||
|
|
||
| cmake -B${ABI_BUILD_DIR} \ | ||
| -DANDROID_ABI=${ABI} \ | ||
| -DANDROID_PLATFORM=android-${MINIMUM_API_LEVEL}\ | ||
| ${CMAKE_ARGS} | ||
|
|
||
| pushd ${ABI_BUILD_DIR} | ||
| make -j5 | ||
| popd | ||
| } | ||
|
|
||
| #build_PaOboe armeabi-v7a 16 | ||
| build_PaOboe arm64-v8a 21 | ||
| #build_PaOboe x86 16 | ||
| build_PaOboe x86_64 21 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| #[=======================================================================[.rst: | ||
| Findoboe | ||
| -------- | ||
|
|
||
| Finds the oboe library. OBOE_DIRECTORY has to be set to the path of the directory where | ||
| the oboe repository was cloned (see src/hostapi/oboe/README.md for more information). | ||
|
|
||
| Imported Targets | ||
| ^^^^^^^^^^^^^^^^ | ||
|
|
||
| This module provides the following imported target, if found: | ||
|
|
||
| ``Oboe::oboe`` | ||
| The OBOE library | ||
|
|
||
| #]=======================================================================] | ||
|
|
||
| if(NOT DEFINED OBOE_DIRECTORY) | ||
| #Insert the path of the directory where you cloned Oboe, i.e. ${CMAKE_CURRENT_SOURCE_DIR}/../oboe | ||
| set(OBOE_DIRECTORY FALSE) | ||
| endif() | ||
|
|
||
| if(NOT OBOE_DIRECTORY) | ||
| message(AUTHOR_WARNING | ||
| "If you're trying to use Oboe as a Host API, please specify the directory where you " | ||
| "cloned its repository. For further information, please read src/hostapi/oboe/README.md" | ||
| ) | ||
| set(OBOE_FOUND FALSE) | ||
| else() | ||
| if(NOT DEFINED OBOE_INCLUDE_DIR) | ||
| set(OBOE_INCLUDE_DIR ${OBOE_DIRECTORY}/include) | ||
| endif() | ||
|
|
||
| if(NOT DEFINED OBOE_LIBRARY_DIRS) | ||
| set(OBOE_LIBRARY_DIRS ${OBOE_DIRECTORY}/build/${ANDROID_ABI}) | ||
| endif() | ||
| set(OBOE_LIBRARIES ${OBOE_LIBRARY_DIRS}/liboboe.so) | ||
|
|
||
| find_package(PkgConfig QUIET) | ||
| if(PkgConfig_FOUND) | ||
| pkg_check_modules(OBOE Oboe) | ||
| else() | ||
| find_library(OBOE_LIBRARIES | ||
| NAMES liboboe.so | ||
| HINTS ${OBOE_LIBRARY_DIRS} | ||
| DOC "Oboe Library" | ||
| ) | ||
| find_path(OBOE_INCLUDE_DIR | ||
| NAMES oboe/Oboe.h | ||
| DOC "Oboe header" | ||
| ) | ||
| endif() | ||
|
|
||
| find_library(LOG_LIBRARY log) #used by pa_oboe.cpp and pa_oboe.h as a logging tool | ||
|
|
||
| set(OBOE_LINK_LIBRARIES ${OBOE_LIBRARIES} ${LOG_LIBRARY}) | ||
|
|
||
| include(FindPackageHandleStandardArgs) | ||
| find_package_handle_standard_args( | ||
| Oboe | ||
| DEFAULT_MSG | ||
| OBOE_LINK_LIBRARIES | ||
| OBOE_INCLUDE_DIR | ||
| ) | ||
|
|
||
| if(OBOE_INCLUDE_DIR AND OBOE_LINK_LIBRARIES) | ||
| set(OBOE_FOUND TRUE) | ||
| if(NOT TARGET Oboe::oboe) | ||
| add_library(Oboe::oboe INTERFACE IMPORTED GLOBAL) | ||
| target_link_libraries(Oboe::oboe INTERFACE "${OBOE_LINK_LIBRARIES}") | ||
| target_include_directories(Oboe::oboe INTERFACE "${OBOE_INCLUDE_DIR}") | ||
| endif() | ||
| endif() | ||
| endif() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,141 @@ | ||
| /* | ||
| * $Id: | ||
| * PortAudio Portable Real-Time Audio Library | ||
| * Latest Version at: http://www.portaudio.com | ||
| * | ||
| * Android Oboe implementation of PortAudio. | ||
| * | ||
| **************************************************************************************** | ||
| * Author: * | ||
| * Carlo Benfatti <[email protected]> * | ||
| **************************************************************************************** | ||
| * | ||
| * Permission is hereby granted, free of charge, to any person obtaining | ||
| * a copy of this software and associated documentation files | ||
| * (the "Software"), to deal in the Software without restriction, | ||
| * including without limitation the rights to use, copy, modify, merge, | ||
| * publish, distribute, sublicense, and/or sell copies of the Software, | ||
| * and to permit persons to whom the Software is furnished to do so, | ||
| * subject to the following conditions: | ||
| * | ||
| * The above copyright notice and this permission notice shall be | ||
| * included in all copies or substantial portions of the Software. | ||
| * | ||
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||
| * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR | ||
| * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF | ||
| * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
| * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| */ | ||
|
|
||
| /* | ||
| * The text above constitutes the entire PortAudio license; however, | ||
| * the PortAudio community also makes the following non-binding requests: | ||
| * | ||
| * Any person wishing to distribute modifications to the Software is | ||
| * requested to send the modifications to the original developer so that | ||
| * they can be incorporated into the canonical version. It is also | ||
| * requested that these non-binding requests be included along with the | ||
| * license above. | ||
| */ | ||
|
|
||
| #ifndef PA_OBOE_H | ||
| #define PA_OBOE_H | ||
|
|
||
| /** | ||
| * @file | ||
| * @ingroup public_header | ||
| * @brief Android Oboe-specific PortAudio API extension header file. | ||
| */ | ||
|
|
||
| #include "portaudio.h" | ||
|
|
||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif //__cplusplus | ||
|
|
||
| #define TIMEOUT_NS 1000000000 //Arbitrary timeout of the read/write functions | ||
| #define LOW_LATENCY_MS 300.0 //Arbitrary value used to automatically determine if low latency performance mode is doable | ||
|
|
||
| /** | ||
| * Enum class that emulates Oboe::Direction. | ||
| */ | ||
| enum class PaOboe_Direction: int32_t { Output = 0, Input = 1 }; | ||
|
|
||
| /** | ||
| * Enum class that emulates Oboe::Usage. | ||
| */ | ||
| enum class PaOboe_Usage : int32_t { | ||
| Media = 1 , VoiceCommunication = 2 , VoiceCommunicationSignalling = 3 , Alarm = 4 , | ||
| Notification = 5 , NotificationRingtone = 6 , NotificationEvent = 10 , AssistanceAccessibility = 11 , | ||
| AssistanceNavigationGuidance = 12 , AssistanceSonification = 13 , Game = 14 , Assistant = 16 | ||
| }; | ||
|
|
||
| /** | ||
| * Enum class that emulates Oboe::InputPreset | ||
| */ | ||
| enum class PaOboe_InputPreset : int32_t { | ||
| Generic = 1 , Camcorder = 5 , VoiceRecognition = 6 , VoiceCommunication = 7 , | ||
| Unprocessed = 9 , VoicePerformance = 10 | ||
| }; | ||
|
|
||
| /** | ||
| * Enum class that emulates Oboe::PerformanceMode | ||
| */ | ||
| enum class PaOboe_PerformanceMode : int32_t { None = 10 , PowerSaving = 11 , LowLatency = 12 }; | ||
|
|
||
| /** | ||
| * The android stream type and recording preset as defined in Oboe. | ||
| */ | ||
| typedef struct PaOboeStreamInfo { | ||
| PaOboe_Usage androidOutputUsage; | ||
| PaOboe_InputPreset androidInputPreset; | ||
| } PaOboeStreamInfo; | ||
|
|
||
|
|
||
| /** | ||
| * Provide PaOboe with the ID of the device the user chose - oboe cannot build a device list, | ||
| * but can select the device if provided with its ID. | ||
| * @param direction - the direction of the stream for which we want to set the device. | ||
| * @param deviceID - the ID of the chosen device chosen by the user. | ||
| */ | ||
| void PaOboe_SetSelectedDevice(PaOboe_Direction direction, int32_t deviceID); | ||
|
|
||
|
|
||
| /** | ||
| * \brief Provide PaOboe with the performance mode chosen by the user. If this method isn't called, the default mode | ||
| * is LowLatency. | ||
| * @param direction - the direction of the stream for which we want to set the performance mode. | ||
| * @param performanceMode - the performance mode chosen by the user. | ||
| */ | ||
| void PaOboe_SetPerformanceMode(PaOboe_Direction direction, PaOboe_PerformanceMode performanceMode); | ||
|
|
||
|
|
||
| /** | ||
| * Provide PA Oboe with native buffer information. If you call this function, you must do so before | ||
| * calling Pa_Initialize. To have optimal latency, this function should be called - otherwise, | ||
| * PA Oboe will use potentially non-optimal values as default. | ||
| * @param bufferSize the native buffersize as returned by AudioManager's | ||
| * PROPERTY_OUTPUT_FRAMES_PER_BUFFER. It is recommended you set the number of buffers to 1 if API>17 | ||
| * as well, and use the sample rate defined in AudioManager's android.media.property.OUTPUT_SAMPLE_RATE. | ||
| * All three together will enable the AUDIO_OUTPUT_FLAG_FAST flag. | ||
| */ | ||
| void PaOboe_SetNativeBufferSize(unsigned long bufferSize); | ||
|
|
||
| /** | ||
| * Provide PA Oboe with native buffer information. If you call this function, you must do so before | ||
| * calling Pa_Initialize. To have optimal latency and enable the AUDIO_OUTPUT_FLAG_FAST flag, this | ||
| * function should be called - otherwise, PA Oboe will use potentially non-optimal values (2) as default. | ||
| * @param buffers The number of buffers can be reduced to 1 on API >17. Make sure you set the native | ||
| * buffer size when doing this, and use the sample rate defined in AudioManager's | ||
| * android.media.property.OUTPUT_SAMPLE_RATE. | ||
| */ | ||
| void PaOboe_SetNumberOfBuffers(unsigned numberOfBuffers); | ||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif //__cplusplus | ||
|
|
||
| #endif //PA_OBOE_H |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # Portaudio implementation for android using Oboe. | ||
|
|
||
| In order to use this implementation correctly, be sure to include the "portaudio.h" and "pa_oboe.h" | ||
| headers in your project. | ||
|
|
||
| Building: | ||
| ---- | ||
| To build portaudio with Oboe, there are some necessary steps: | ||
| 1) An android NDK is needed to crosscompile it. I used the version 25.1.8937393, which I found at | ||
| https://developer.android.com/ndk/downloads. | ||
| 2) Clone the Oboe repository - just follow the steps detailed here: | ||
| https://github.com/google/oboe/blob/main/docs/GettingStarted.md. | ||
| Make sure to correctly link the NDK path in the Oboe build. If you instead prefer to use the | ||
| prebuilt libraries, you can skip this step. | ||
| 3) Set the CMake variable OBOE_DIRECTORY (used in cmake/modules/FindOboe.cmake) to the path of the | ||
| cloned Oboe repository, and build the Oboe libraries (you can use "build_all_android.sh"). | ||
|
|
||
| If you instead used the prebuilt libraries, do the following: | ||
| - set OBOE_DIRECTORY to TRUE; | ||
| - set OBOE_LIBRARY_DIRS path_to_Oboe_libraries_folder/${ANDROID_ABI}), the code will search the | ||
| prebuilt library of the chosen ABI in that folder. | ||
|
|
||
| 4) Build PaOboe (you can use "build_all_PaOboe.sh"). | ||
| 5) Don't forget to add liboboe.so and libportaudio.so in your jniLibs folder. | ||
|
|
||
| TODOs: | ||
| ---- | ||
| - Testing. This implementation is being tested for VoIP calls that use blocking streams - for | ||
| everything else, lots of tests are needed. | ||
|
|
||
| Misc | ||
| ---- | ||
| ### Audio Format: | ||
| If you need to select a specific audio format, you'll have to manually set it in PaOboe_OpenStream | ||
| by modifying the format selection marked with a *FIXME*. I'm positive that automatic format selection | ||
| is possible, but simply using PaUtil_SelectClosestAvailableFormat got me nowhere. | ||
|
|
||
|
|
||
| ### Buffer sizes: | ||
| Portaudio often tries to get approximately low buffer sizes, and if you need specific sizes for your | ||
| buffer you should manually modify it (or make a simple function that can set it). For your convenience, | ||
| there is a *FIXME* as a bookmark. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.