lp:alsa-plugins

Created by Jelmer Vernooij on 2010-01-27 and last modified on 2019-01-11
Get this branch:
bzr branch lp:alsa-plugins

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
VCS imports
Project:
alsa-plugins
Status:
Development

Import details

Import Status: Reviewed

This branch is an import of the HEAD branch of the Git repository at git://git.alsa-project.org/alsa-plugins.git.

The next import is scheduled to run in 9 minutes.

Last successful import was 5 hours ago.

Import started 5 hours ago on izar and finished 5 hours ago taking 15 seconds — see the log
Import started 11 hours ago on izar and finished 11 hours ago taking 15 seconds — see the log
Import started 17 hours ago on alnitak and finished 17 hours ago taking 15 seconds — see the log
Import started 23 hours ago on alnitak and finished 23 hours ago taking 15 seconds — see the log
Import started on 2019-01-21 on izar and finished on 2019-01-21 taking 15 seconds — see the log
Import started on 2019-01-21 on izar and finished on 2019-01-21 taking 15 seconds — see the log
Import started on 2019-01-21 on alnitak and finished on 2019-01-21 taking 15 seconds — see the log
Import started on 2019-01-21 on alnitak and finished on 2019-01-21 taking 15 seconds — see the log
Import started on 2019-01-20 on alnitak and finished on 2019-01-20 taking 15 seconds — see the log
Import started on 2019-01-20 on alnitak and finished on 2019-01-20 taking 15 seconds — see the log

Recent revisions

339. By Laxmi Devi <email address hidden> on 2019-01-11

jack: Removing snd_pcm_jack_format_t as it is not used

Signed-off-by: Laxmi Devi <email address hidden>
Signed-off-by: Jaroslav Kysela <email address hidden>

338. By Laxmi Devi <email address hidden> on 2019-01-11

jack: Replacing jack->channels with jack->num_ports

As jack->num_ports and jack->channels hold the same values,
jack->channels is redundant and hence removed.

Sanity check is added in prepare, to check if io->Channels is
same as jack->num_ports.

Signed-off-by: Laxmi Devi <email address hidden>
Signed-off-by: Jaroslav Kysela <email address hidden>

337. By Laxmi Devi <email address hidden> on 2019-01-08

jack: Moving jack_deactivate() to snd_pcm_jack_hw_free() to speedup the XRUN Recovery

Removed snd_pcm_jack_stop() from snd_pcm_jack_prepare(),as on XRUN we do
not need to reconnect or reconfigure anything.

Signed-off-by: Laxmi Devi <email address hidden>
Signed-off-by: Timo Wischer <email address hidden>
Signed-off-by: Takashi Iwai <email address hidden>

336. By Takashi Iwai on 2019-01-08

doc: Add forgotten aaf.txt to EXTRA_DIST

Signed-off-by: Takashi Iwai <email address hidden>

335. By Laxmi Devi <email address hidden> on 2019-01-08

jack: Move jack_activate() and jack_connect() to snd_pcm_jack_prepare()

Since the processing of jack_activate() and jack_connect() take a while
longer, snd_pcm_jack_start() was blocked.
Consider a usecase of reading the data from capture device and
writing to a playback device, since the capture device is
already started and the starting of playback device is blocked,
it leads to XRUNs for capture device.
Therefore these calls are moved to snd_pcm_jack_prepare(),
So that the capture and playback devices can be prepared in advance so
that starting of the device doesn't take too long.

Signed-off-by: Laxmi Devi <email address hidden>
Signed-off-by: Timo Wischer <email address hidden>
Signed-off-by: Takashi Iwai <email address hidden>

334. By Jaroslav Kysela <email address hidden> on 2019-01-07

Release v1.1.8

Signed-off-by: Jaroslav Kysela <email address hidden>

333. By Andre Guedes <email address hidden> on 2018-12-10

aaf: AVTPDU transmission periodicity

When operating in playback mode (i.e. AVTP talker) the plugin is
expected to transmit the AVTPDUs in a periodical manner. The AVTPDU
period is defined by the number of audio frames per AVTPDU and the
sampling rate (see section 7.7 from AVTP spec [1] for further
information).

To enforce the AVTPDU periodicity, this patch leverages the SO_TXTIME
sockopt recently added to socket interface which enables the userspace
to specify when a given packet should be transmitted. The plugin
configures the transmission time from each AVTPDU so the expected
transmission interval is maintained.

The SO_TXTIME feature works in conjunction with the Earliest TxTime
First (ETF) qdisc. The ETF qdisc sorts packets from multiple sockets by
the earliest transmission time and sends them to the network controller.
It also enables offloading packet transmission to hardware in case the
NIC supports it, providing more time accuracy. For further information
about ETF qdisc, see tc-etf(8). The qdisc can be configured many ways,
in doc/aaf.txt we provide an example.

Below follows some implementation highlights:

The packet transmission time is configured through socket control
message interface so we now use sendmsg() to transmit AVTPDUs, instead
of sendto().

sendmsg() API requires a msghdr struct which is initialized during
device setup time. Strictly speaking, that struct is only required when
operating in playback mode but we initialize it always, no matter if
running in playback or capture mode. This makes hw_params() and
hw_free() callbacks implementation way more simpler, specially on
handling error cases.

[1] 1722-2016 - IEEE Standard for a Transport Protocol for Time-Sensitive
    Applications in Bridged Local Area Networks

Signed-off-by: Andre Guedes <email address hidden>
Signed-off-by: Takashi Iwai <email address hidden>

332. By Andre Guedes <email address hidden> on 2018-12-10

aaf: Tx multiple AVTPDUs per media clock tick

In order to implement the transmission offload mechanism, we need to
change the way the plugin behaves so, instead of sending only one
AVTPDU, it sends several AVTPDUs at every media clock tick.

To achieve that, this patch changes the plugin so it consumes the audio
buffer in chunks of period size instead of in frames_per_pdu. The number
of AVTPDUs sent at every media clock tick is calculated by dividing the
period size by the number of frames per AVTPDU. To ensure that number is
not fractional, the plugin requires that the period size is multiple of
the plugin configuration 'frames_per_pdu'.

For the sake of consistency, the capture mode is also changed so the
plugin presents audio frames to the alsa-lib layer in chunks of period
size as well.

Signed-off-by: Andre Guedes <email address hidden>
Signed-off-by: Takashi Iwai <email address hidden>

331. By Andre Guedes <email address hidden> on 2018-12-10

aaf: Refactor timeout routines

The functions aaf_mclk_timeout_playback() and aaf_mclk_timeout_capture()
have some common code so this patch does a code refactoring by moving
the shared code into a new function called aaf_timer_timeout().

After the refactoring, aaf_mclk_timeout_playback() and aaf_mclk_timeout_
capture() ended up having no code related to timeout so they were
renamed to better represent what they really do (send frames and present
frames, respectively).

Signed-off-by: Andre Guedes <email address hidden>
Signed-off-by: Takashi Iwai <email address hidden>

330. By Andre Guedes <email address hidden> on 2018-12-10

aaf: Refactor AVTPDU reception routines

This patch does some code refactoring in the AVTPDU reception
routines in order to prepare the code to support the transmission
offload mechanism that will be added by upcoming patches. No
functionality is added or removed by this patch.

In summary, the function aaf_rx_pdu() is broken down into smaller, new
functions and some code is moved to is_pdu_valid(). Below follows more
details about the code refactoring.

The function aaf_rx_pdu() was renamed to aaf_socket_new_data() which
reads the socket and dispatches the AVTPDU in case the PCM device isn't
in DRAIN state. Function aaf_dispatch_pdu() simply reads the subtype
field from the AVTPDU and dispatches it according. For now, only AAF
PDUs are supported. Finally, the aaf_dispatch_pdu_aaf() handles AAF
AVTPDUs which means to check if the AVTPDU is valid, copies the PCM
samples from the payload to the audio buffer, and start the media clock
in case it hasn't been started already.

The function is_pdu_valid() is moved around to avoid forward
declaration. Code to validate the sequence number and presentation time
from the AVTPDU which used to be in aaf_rx_pdu() is moved into
is_pdu_valid().

Signed-off-by: Andre Guedes <email address hidden>
Signed-off-by: Takashi Iwai <email address hidden>

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers