mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-14 18:57:07 -07:00
Init Audio Output correctly
This commit is contained in:
parent
d8226f2693
commit
c8ce9f899e
4 changed files with 67 additions and 29 deletions
|
@ -118,6 +118,7 @@ typedef struct chiaki_event_t
|
|||
} ChiakiEvent;
|
||||
|
||||
typedef void (*ChiakiEventCallback)(ChiakiEvent *event, void *user);
|
||||
typedef void (*ChiakiAudioSettingsCallback)(uint32_t channels, uint32_t rate, void *user);
|
||||
typedef void (*ChiakiAudioFrameCallback)(int16_t *buf, size_t samples_count, void *user);
|
||||
|
||||
/**
|
||||
|
@ -155,8 +156,9 @@ typedef struct chiaki_session_t
|
|||
|
||||
ChiakiEventCallback event_cb;
|
||||
void *event_cb_user;
|
||||
ChiakiAudioSettingsCallback audio_settings_cb;
|
||||
ChiakiAudioFrameCallback audio_frame_cb;
|
||||
void *audio_frame_cb_user;
|
||||
void *audio_cb_user;
|
||||
ChiakiVideoSampleCallback video_sample_cb;
|
||||
void *video_sample_cb_user;
|
||||
|
||||
|
@ -193,10 +195,11 @@ static inline void chiaki_session_set_event_cb(ChiakiSession *session, ChiakiEve
|
|||
session->event_cb_user = user;
|
||||
}
|
||||
|
||||
static inline void chiaki_session_set_audio_frame_cb(ChiakiSession *session, ChiakiAudioFrameCallback cb, void *user)
|
||||
static inline void chiaki_session_set_audio_cb(ChiakiSession *session, ChiakiAudioSettingsCallback settings_cb, ChiakiAudioFrameCallback frame_cb, void *user)
|
||||
{
|
||||
session->audio_frame_cb = cb;
|
||||
session->audio_frame_cb_user = user;
|
||||
session->audio_settings_cb = settings_cb;
|
||||
session->audio_frame_cb = frame_cb;
|
||||
session->audio_cb_user = user;
|
||||
}
|
||||
|
||||
static inline void chiaki_session_set_video_sample_cb(ChiakiSession *session, ChiakiVideoSampleCallback cb, void *user)
|
||||
|
|
|
@ -95,6 +95,9 @@ CHIAKI_EXPORT void chiaki_audio_receiver_stream_info(ChiakiAudioReceiver *audio_
|
|||
|
||||
audio_receiver->pcm_buf_size = pcm_buf_size_required;
|
||||
|
||||
if(audio_receiver->session->audio_settings_cb)
|
||||
audio_receiver->session->audio_settings_cb(audio_header->channels, audio_header->rate, audio_receiver->session->audio_cb_user);
|
||||
|
||||
beach:
|
||||
chiaki_mutex_unlock(&audio_receiver->mutex);
|
||||
}
|
||||
|
@ -174,7 +177,7 @@ static void chiaki_audio_receiver_frame(ChiakiAudioReceiver *audio_receiver, Chi
|
|||
if(r < 1)
|
||||
CHIAKI_LOGE(audio_receiver->log, "Decoding audio frame with opus failed: %s", opus_strerror(r));
|
||||
else
|
||||
audio_receiver->session->audio_frame_cb(audio_receiver->pcm_buf, (size_t)r, audio_receiver->session->audio_frame_cb_user);
|
||||
audio_receiver->session->audio_frame_cb(audio_receiver->pcm_buf, (size_t)r, audio_receiver->session->audio_cb_user);
|
||||
|
||||
beach:
|
||||
chiaki_mutex_unlock(&audio_receiver->mutex);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue