Hi Pierre, On Mon, 2018-08-20 at 22:16 -0500, Pierre-Louis Bossart wrote: > > +Plugin Configuration > > +-------------------- > > + > > +The plugin parameters are passed via ALSA configuration file. They > > are defined > > +as follows: > > + > > + * ifname: Network interface used to transmit/receive AVTP > > packets. > > + > > + * addr: Stream destination MAC address. > > including multi-cast address? Correct. > > + > > + * prio: Priority used by the plugin to transmit AVTP > > traffic. This > > + option is relevant only when operating in playback mode. > > + > > + * streamid: Stream ID associated with the AAF stream > > transmitted or > > + received by the plugin. > > So the streamid has to be statically configured, right? Correct. > If there an assumption that all streams exposed in this > configuration > file can all be used concurrently? Or put differently that the > streams > are only exposed if they can be used independently at any time? Yes, the plugin is expected to handle multiple streams concurrently. I have tested with two, mimicking one Class A and one Class B streams. > > + pcm.aaf { > > + type aaf > > + ifname eth0 > > + addr AA:AA:AA:AA:AA:AA > > + prio 3 > > + streamid BB:BB:BB:BB:BB:BB:0001 > > + mtt 2000 > > + time_uncertainty 125 > > + frames_per_pkt 6 > > + } > > + > > +Put the above to ~/.asoundrc (or /etc/asound.conf), and use the > > AAF PCM virtual > > +device with your ALSA apps. For example, to stream the content > > from a wav file > > +through the network, run: > > + > > + $ aplay -Daaf foo.wav > > How do you deal with multiple streams then? -Daaf:<stream_number> ? Two ways: 1) Define multiple AAF devices in asoundrc (e.g. aaf0, aaf1, aaf2, etc.) and select them using the -D option e.g.: $ aplay -D aaf0 foo.wav $ aplay -D aaf1 bar.wav 2) Leverage ALSA config runtime arguments e.g. define the aaf device as: pcm.aaf { @args [ IFNAME ADDR PRIO STREAMID MTT UNCERTAINTY FRAMES ] @args.IFNAME { type string } @args.ADDR { type string } @args.PRIO { type integer } @args.STREAMID { type string } @args.MTT { type integer } @args.UNCERTAINTY { type integer } @args.FRAMES { type integer } type aaf ifname $IFNAME addr $ADDR prio $PRIO streamid $STREAMID mtt $MTT time_uncertainty $UNCERTAINTY frames_per_pkt $FRAMES } And pass the device parameters via -D option like this: $ aplay -D aaf:eth0.1,01:AA:AA:AA:AA:AA,3,AA:BB:CC:DD:EE:FF:0001,2000,125,6 foo.wav $ aplay -D aaf:eth0.2,01:BB:BB:BB:BB:BB,3,AA:BB:CC:DD:EE:FF:0002,50000,1000,12 bar.wav Particularly, I'm using 2) since it is more practical for testing purposes. > > + > > +To receive the AAF stream generated by the previous command, run: > > + > > + $ arecord -Daaf > > Did you mean on a different machine or are there any loopback > capabilities? Yep, on a different machine. I'll add that info here. Regards, Andre
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel