On 03/15/11 23:13, Kelly Anderson wrote: > On 03/15/11 22:04, Arun Raghavan wrote: >> On Tue, 2011-03-15 at 18:50 -0600, Kelly Anderson wrote: >>> On 03/09/11 03:10, Arun Raghavan wrote: >>>> Hello all, >>>> Based on the RFC I posted earlier, I've implemented basic passthrough >>>> support in some usable shape. It's up on the passthrough branch of >>>> each >>>> of: >>>> >>>> PulseAudio: >>>> http://git.collabora.co.uk/?p=user/arun/pulseaudio.git;a=shortlog;h=refs/heads/passthrough >>>> >>>> gst-plugins-base: >>>> http://git.collabora.co.uk/?p=user/arun/gst-plugins-base.git;a=shortlog;h=refs/heads/passthrough >>>> >>>> gst-plugins-good: >>>> http://git.collabora.co.uk/?p=user/arun/gst-plugins-good.git;a=shortlog;h=refs/heads/passthrough >>>> >>>> >>> > > Hey Arun, > > I've built and installed the passthrough branch. > > Isn't changing sample rates supported yet? So far I can only > passthrough sample rates that match the default-sample-rate in > daemon.conf. Changeable rates is critical to being able to support > for example dts-hd at 192khz, when standard dts will be 48khz. > > I'm using paplay for basic functionality checks. > I forgot to mention that I patched alsa-sink.c with extended rates as per: --- ./src/modules/alsa/alsa-sink.c.orig 2011-03-15 22:15:20.701558916 -0600 +++ ./src/modules/alsa/alsa-sink.c 2011-03-15 22:37:57.437394161 -0600 @@ -1436,6 +1436,7 @@ static pa_idxset* sink_get_formats(pa_si { pa_idxset *ret = pa_idxset_new(NULL, NULL); pa_format_info *f; + const char *dev_nam = ((struct userdata*)s->userdata)->device_name; pa_assert(s); @@ -1444,12 +1445,12 @@ static pa_idxset* sink_get_formats(pa_si pa_idxset_put(ret, f, NULL); /* FIXME: is there no better way to check for this? */ - if (strncmp("iec958", ((struct userdata*)s->userdata)->device_name, 6) == 0) { + if ( ! strncmp("iec958", dev_nam, 6) || ! strncmp("hdmi", dev_nam, 4) ) { /* FIXME: Eventually, we want the list of supported formats to be set * as properties by the GUI based on what the user says is supported by * the receiver */ /* FIXME: How do we figure out supported rates? :( */ - unsigned int i, rates[] = { 32000, 44100, 48000 }; + unsigned int i, rates[] = { 32000, 44100, 48000, 96000, 192000, 384000 }; /* FIXME: Make only one format_info once we've resolved how to do * lists/ranges in proplists */