(API Change) Always use planar float audio output

Core API functions changed:
-----------------------------
EXPORT bool obs_reset_audio(struct audio_output_info *aoi);
EXPORT bool obs_get_audio_info(struct audio_output_info *aoi);

To:
-----------------------------
EXPORT bool obs_reset_audio(const struct obs_audio_info *oai);
EXPORT bool obs_get_audio_info(struct obs_audio_info *oai);

Core structure added:
-----------------------------
struct obs_audio_info {
	uint32_t            samples_per_sec;
	enum speaker_layout speakers;
	uint64_t            buffer_ms;
};

Non-interleaved (planar) floating point output is standard with audio
filtering, so to prevent audio filters from having to worry about
different audio format implementations and for the sake consistency
between user interfaces, make it so that audio is always set to
non-interleaved floating point output.
This commit is contained in:
jp9000
2015-03-07 04:47:12 -08:00
parent 9b44b368b7
commit 9832a760b8
6 changed files with 59 additions and 57 deletions

View File

@@ -172,6 +172,15 @@ struct obs_video_info {
enum obs_scale_type scale_type; /**< How to scale if scaling */
};
/**
* Audio initialization structure
*/
struct obs_audio_info {
uint32_t samples_per_sec;
enum speaker_layout speakers;
uint64_t buffer_ms;
};
/**
* Sent to source filters via the filter_audio callback to allow filtering of
* audio data
@@ -274,13 +283,13 @@ EXPORT int obs_reset_video(struct obs_video_info *ovi);
*
* @note Cannot reset base audio if an output is currently active.
*/
EXPORT bool obs_reset_audio(struct audio_output_info *ai);
EXPORT bool obs_reset_audio(const struct obs_audio_info *oai);
/** Gets the current video settings, returns false if no video */
EXPORT bool obs_get_video_info(struct obs_video_info *ovi);
/** Gets the current audio settings, returns false if no audio */
EXPORT bool obs_get_audio_info(struct audio_output_info *ai);
EXPORT bool obs_get_audio_info(struct obs_audio_info *oai);
/**
* Opens a plugin module directly from a specific path.