[alsa-devel] [alsa-lib][PATCH v3 0/4] add SNDRV_PCM_FORMAT_{S, U}20

Takashi Sakamoto o-takashi at sakamocchi.jp
Sun Dec 17 09:37:56 CET 2017


Hi,

On Dec 14 2017 22:50, Maciej S. Szmigiero wrote:
> This format is similar to an existing 20-bit PCM format
> SNDRV_PCM_FORMAT_{S,U}20_3, however it occupies 4 bytes instead of 3.
> 
> Changes from v1: Split the monolithic submission into separate
> commits. (Note that v2 wasn't tagged as such.)
> 
> Changes from v2: Add commas at the end of two possible last entries of
> the snd_pcm_format_t enum so diffs will be more readable when new PCM
> formats are added in the future, remove asserts from
> snd_pcm_linear_{get,put}_index().
> 
> Maciej S. Szmigiero (4):
>    asound.h: add SNDRV_PCM_FORMAT_{S,U}20
>    pcm: add and describe SND_PCM_FORMAT_{S,U}20
>    pcm: linear, route: handle linear formats with 20-bit sample on 4
>      bytes
>    pcm: plug: add SND_PCM_FORMAT_{S,U}20 to linear_preferred_formats
> 
>   include/pcm.h          | 20 ++++++++++++++++++--
>   include/sound/asound.h |  9 +++++++++
>   src/pcm/pcm.c          | 10 ++++++++++
>   src/pcm/pcm_linear.c   | 14 +++++++++++---
>   src/pcm/pcm_local.h    |  4 ++++
>   src/pcm/pcm_misc.c     | 41 ++++++++++++++++++++++++++++++++++++++---
>   src/pcm/pcm_plug.c     | 11 +++++++++++
>   src/pcm/pcm_route.c    |  6 ++++--
>   src/pcm/plugin_ops.h   | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
>   9 files changed, 151 insertions(+), 14 deletions(-)

I reviewed all of these four patches.

Reviewed-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>


I found some minor issues in current implementation of linear
interpolation in alsa-lib.

* 'src/pcm/plugin_ops.h' includes some unused macros:
  * COPY_LABELS/COPY_END
  * GETU_LABELS/GETU_END
  * NORMS_LABELS/NORMS_END
* 'put32_labels' includes wrong comments for 18/20 bits formats.
* A reorder of entries in below tables may allow us to simplify
   implementation of snd_pcm_linear_get_index() and
   snd_pcm_linear_put_index().
  * get16_labels
  * put16_labels
  * get32_labels
  * put32_labels

Anyway, the above issues are irrelevant to your patchset. Your work
can be merged to alsa-lib independently.


Thanks

Takashi Sakamoto


More information about the Alsa-devel mailing list