Fix Video Player issue with audio mix_rate when different than 44100
This commit is contained in:
parent
57efe0bea5
commit
6fc1801b6a
2 changed files with 1 additions and 9 deletions
|
@ -38,11 +38,6 @@ int VideoPlayer::sp_get_channel_count() const {
|
||||||
return playback->get_channels();
|
return playback->get_channels();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoPlayer::sp_set_mix_rate(int p_rate) {
|
|
||||||
|
|
||||||
server_mix_rate = p_rate;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool VideoPlayer::mix(AudioFrame *p_buffer, int p_frames) {
|
bool VideoPlayer::mix(AudioFrame *p_buffer, int p_frames) {
|
||||||
|
|
||||||
// Check the amount resampler can really handle.
|
// Check the amount resampler can really handle.
|
||||||
|
@ -241,7 +236,7 @@ void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) {
|
||||||
|
|
||||||
AudioServer::get_singleton()->lock();
|
AudioServer::get_singleton()->lock();
|
||||||
if (channels > 0)
|
if (channels > 0)
|
||||||
resampler.setup(channels, playback->get_mix_rate(), server_mix_rate, buffering_ms, 0);
|
resampler.setup(channels, playback->get_mix_rate(), AudioServer::get_singleton()->get_mix_rate(), buffering_ms, 0);
|
||||||
else
|
else
|
||||||
resampler.clear();
|
resampler.clear();
|
||||||
AudioServer::get_singleton()->unlock();
|
AudioServer::get_singleton()->unlock();
|
||||||
|
@ -494,7 +489,6 @@ VideoPlayer::VideoPlayer() {
|
||||||
bus_index = 0;
|
bus_index = 0;
|
||||||
|
|
||||||
buffering_ms = 500;
|
buffering_ms = 500;
|
||||||
server_mix_rate = 44100;
|
|
||||||
|
|
||||||
// internal_stream.player=this;
|
// internal_stream.player=this;
|
||||||
// stream_rid=AudioServer::get_singleton()->audio_stream_create(&internal_stream);
|
// stream_rid=AudioServer::get_singleton()->audio_stream_create(&internal_stream);
|
||||||
|
|
|
@ -50,7 +50,6 @@ class VideoPlayer : public Control {
|
||||||
Ref<VideoStream> stream;
|
Ref<VideoStream> stream;
|
||||||
|
|
||||||
int sp_get_channel_count() const;
|
int sp_get_channel_count() const;
|
||||||
void sp_set_mix_rate(int p_rate); //notify the stream of the mix rate
|
|
||||||
bool mix(AudioFrame *p_buffer, int p_frames);
|
bool mix(AudioFrame *p_buffer, int p_frames);
|
||||||
|
|
||||||
RID stream_rid;
|
RID stream_rid;
|
||||||
|
@ -69,7 +68,6 @@ class VideoPlayer : public Control {
|
||||||
bool expand;
|
bool expand;
|
||||||
bool loops;
|
bool loops;
|
||||||
int buffering_ms;
|
int buffering_ms;
|
||||||
int server_mix_rate;
|
|
||||||
int audio_track;
|
int audio_track;
|
||||||
int bus_index;
|
int bus_index;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue