obs-studio/libobs
jp9000 84e1f47ced (API Change) Add support for multiple audio mixers
API changed:
--------------------------

void obs_output_set_audio_encoder(
		obs_output_t *output,
		obs_encoder_t *encoder);

obs_encoder_t *obs_output_get_audio_encoder(
		const obs_output_t *output);

obs_encoder_t *obs_audio_encoder_create(
		const char *id,
		const char *name,
		obs_data_t *settings);

Changed to:
--------------------------

/* 'idx' specifies the track index of the output */
void obs_output_set_audio_encoder(
		obs_output_t *output,
		obs_encoder_t *encoder,
		size_t idx);

/* 'idx' specifies the track index of the output */
obs_encoder_t *obs_output_get_audio_encoder(
		const obs_output_t *output,
		size_t idx);

/* 'mixer_idx' specifies the mixer index to capture audio from */
obs_encoder_t *obs_audio_encoder_create(
		const char *id,
		const char *name,
		obs_data_t *settings,
		size_t mixer_idx);

Overview
--------------------------
This feature allows multiple audio mixers to be used at a time.  This
capability was able to be added with surprisingly very little extra
overhead.  Audio will not be mixed unless it's assigned to a specific
mixer, and mixers will not mix unless they have an active mix
connection.

Mostly this will be useful for being able to separate out specific audio
for recording versus streaming, but will also be useful for certain
streaming services that support multiple audio streams via RTMP.

I didn't want to use a variable amount of mixers due to the desire to
reduce heap allocations, so currently I set the limit to 4 simultaneous
mixers; this number can be increased later if needed, but honestly I
feel like it's just the right number to use.

Sources:

Sources can now specify which audio mixers their audio is mixed to; this
can be a single mixer or multiple mixers at a time.  The
obs_source_set_audio_mixers function sets the audio mixer which an audio
source applies to.  For example, 0xF would mean that the source applies
to all four mixers.

Audio Encoders:

Audio encoders now must specify which specific audio mixer they use when
they encode audio data.

Outputs:

Outputs that use encoders can now support multiple audio tracks at once
if they have the OBS_OUTPUT_MULTI_TRACK capability flag set.  This is
mostly only useful for certain types of RTMP transmissions, though may
be useful for file formats that support multiple audio tracks as well
later on.
2015-02-04 16:51:29 -08:00
..
callback (API Change) Use const params where applicable 2014-09-26 17:23:07 -07:00
data Rename parameters to avoid GLSL keyword conflicts 2015-01-08 01:42:22 +01:00
graphics libobs: Add function to enumerate video adapters 2015-01-14 21:28:01 -08:00
media-io (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
util (API Change) Make os_get_config_path safer to use 2015-01-15 23:44:38 -08:00
CMakeLists.txt libobs: Add win32 crash handler 2015-01-03 02:37:21 -08:00
LibObsConfig.cmake.in cmake: Export plugin data destination 2014-09-27 09:41:32 -07:00
LibObsConfigVersion.cmake.in Export libobs cmake target, so external plugins can be built without ugly hacks 2014-05-08 14:43:16 +02:00
obs-audio-controls.c libobs: Fix a few warnings 2014-12-28 01:03:10 -08:00
obs-audio-controls.h libobs: Add peak hold property to volmeter 2014-12-14 18:39:54 +01:00
obs-avc.c libobs: Add function to determine AVC keyframes 2014-12-21 10:14:22 -08:00
obs-avc.h libobs: Add function to determine AVC keyframes 2014-12-21 10:14:22 -08:00
obs-cocoa.c (API Change) Refactor module handling 2014-07-27 17:29:10 -07:00
obs-config.h libobs: Update to 0.7.3 2015-01-14 23:05:37 -08:00
obs-data.c libobs: Removed unused parameter and variable 2015-02-04 15:40:21 -08:00
obs-data.h libobs: Add obs_data_clear to clear settings 2015-01-24 22:09:24 -08:00
obs-defs.h Change macro to MODULE_MISSING_EXPORTS for clarity 2014-07-27 17:28:35 -07:00
obs-display.c (API Change) Use const params where applicable 2014-09-26 17:23:07 -07:00
obs-encoder.c (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs-encoder.h (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs-ffmpeg-compat.h Use propper ffmpeg compatiblity instead of relying on deprecated functions 2014-06-28 20:54:14 +02:00
obs-interaction.h Add interaction support to libobs 2014-09-15 17:19:37 -05:00
obs-internal.h (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs-module.c (API Change) Remove pointers from all typedefs 2014-09-25 21:48:11 -07:00
obs-module.h Some documentation improvements in obs-module.h 2014-10-19 15:00:07 +02:00
obs-nix.c Merge pull request #326 from azatoth/plugin_lib 2015-01-10 23:50:25 -08:00
obs-output.c (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs-output.h (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs-properties.c libobs: Return NULL on ending property list string 2015-01-06 01:27:16 -08:00
obs-properties.h libobs: Add obs_property_set_description 2015-01-03 20:46:18 -08:00
obs-scene.c libobs: Prevent infinite source recursion 2014-12-28 01:04:26 -08:00
obs-scene.h Scenes: Implement more item positioning features 2014-06-15 20:33:13 -07:00
obs-service.c (API Change) Pass data to get_properties when possible 2014-10-01 15:39:57 +02:00
obs-service.h (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs-source.c (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs-source.h libobs: Refactor source volume transition design 2014-12-28 01:51:43 -08:00
obs-ui.h Revamp API and start using doxygen 2014-02-12 08:04:50 -07:00
obs-video.c libobs: Fix calculation copying aligned textures 2015-01-14 14:57:27 -08:00
obs-view.c (API Change) Remove pointers from all typedefs 2014-09-25 21:48:11 -07:00
obs-win-crash-handler.c libobs: Add win32 crash handler 2015-01-03 02:37:21 -08:00
obs-windows.c (API Change) Refactor module handling 2014-07-27 17:29:10 -07:00
obs.c (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs.h (API Change) Add support for multiple audio mixers 2015-02-04 16:51:29 -08:00
obs.hpp Fix OBSRef move assignment not releasing the previous reference 2014-10-29 16:17:07 +01:00
obsconfig.h.in Export plugin destination and relative prefix to obsconfig.h 2014-07-26 14:27:39 +02:00