From db02b614d1231685e64b27b4838c7cd699e51790 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 20 Aug 2006 15:42:01 +0200 Subject: [PATCH] make osx_write work for any bitrate 44100Hz was hardcoded which is sad. Use the information from the command line or the writer node group if available. Also add a channels count option for future use. --- osx_write.ggo | 21 +++++++++++++++++++++ osx_writer.c | 9 ++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 osx_write.ggo diff --git a/osx_write.ggo b/osx_write.ggo new file mode 100644 index 00000000..7f319fb2 --- /dev/null +++ b/osx_write.ggo @@ -0,0 +1,21 @@ +section "osx options" +##################### + +option "channels" c +#~~~~~~~~~~~~~~~~~~ +"number of channels (only neccessary for raw +audio)" + + int typestr="num" + default="2" + optional + +option "samplerate" s +#~~~~~~~~~~~~~~~~~~~~~ + +"force given sample rate (only neccessary for +raw audio)" + + int typestr="num" + default="44100" + optional diff --git a/osx_writer.c b/osx_writer.c index 9ea7ad45..2af553db 100644 --- a/osx_writer.c +++ b/osx_writer.c @@ -50,6 +50,7 @@ struct private_osx_writer_data { sem_t *semaphore; osx_buffer *from; /* Current buffers */ osx_buffer *to; + unsigned samplerate; }; @@ -181,6 +182,8 @@ static int osx_writer_open(struct writer_node *wn) AudioStreamBasicDescription format; char s[10]; int m, ret; + struct writer_node_group *wng = wn->wng; + struct osx_write_args_info *conf = wn->conf; wn->private_data = powd; /* where did that default audio output go? */ @@ -209,7 +212,11 @@ static int osx_writer_open(struct writer_node *wn) * AND you want the DefaultOutputUnit to do any format conversions * necessary from your format to the device's format. */ - format.mSampleRate = 44100.0; /* The sample rate of the audio stream */ + if (!conf->samplerate_given && wng->samplerate) + powd->samplerate = *wng->samplerate; + else + powd->samplerate = conf->samplerate_arg; + format.mSampleRate = powd->samplerate; /* The specific encoding type of audio stream*/ format.mFormatID = kAudioFormatLinearPCM; /* flags specific to each format */ -- 2.39.2