[WIP] Passthrough support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Arun,
I looked at the passthrough branch. Looks pretty good. I wrote down some notes:

gstaudioiec61937:
- need to check that frame is valid and synchronized on AC3 header
before pushing iec payload
- no code for mp3 and dts?

pulsesink:
- do we really need two steps for payload and commit? Make
things complicated and creates memory copies
- commit needs to prevent toy resampler (maybe this means the sink
cannot work iwth a live source since no adjustment is possible.

-  spec.latency_time = GST_BASE_AUDIO_SINK (psink)->latency_time;
  if (!gst_ring_buffer_parse_caps (&spec, caps))
    goto out;

Does this work? spec is not initialized?

- change of routing?

- formats
/* 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 };

For HDMI and SPDIF, 32,44.1 and 48 are mandatory. I think you can
query the alsa layer
to give a range of supported frequencies since this is known in
the driver (either hard-coded or obtained with EDID/eld). I remember
seeing some ALSA patches on this for the NVIDIA cards.

sink.c
- how do we notify client that volume is disabled?

I wasn't too clear on the BT support. You mentioned that it was a
different branch and that it stilll nneds my patches to gst-ugly. We'd
need to have the payloader code in gsraudioiec61937 instead? I am also
not sure how we handle the transition from A2DP w/ SBC to A2DP w/ MP3.
In the current code for iec958, there's no need to reconfigure the
link.

Last, I had 3 conflicts with git master that I had to solve by hand.

Thanks
-Pierre



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux