[-,alsa-lib,0/4] Add pcm_file input file support for MMAP
mbox series

Message ID 1558445546-11437-1-git-send-email-amiartus@de.adit-jv.com
Headers show
Series
  • Add pcm_file input file support for MMAP
Related show

Message

Adam Miartus May 21, 2019, 1:32 p.m. UTC
implement overwriting read buffer with input file in case of
RW_NONINTERLEAVED and MMAP access modes for alsa file plugin

first two patches introduce a helper function for copying data from
input file to readi and readn buffers for user. to facilitate this
snd_pcm_areas_from_buf and snd_pcm_areas_from_bufs with
snd_pcm_areas_copy is used. Previous readi behaviour in corner
case of input file EOF is changed (more in patch comment).

Patch 3,4 introduce new api callback mmap_begin to ease overwritting
mmaped buffer in case of MMAP access.

Adam Miartus (4):
  pcm_file: add support for infile reading in non interleaved mode
  pcm_file: use snd_pcm_file_areas_read_infile for readi
  pcm: add mmap_begin callback to snd_pcm_fast_ops_t api
  pcm_file: add infile read support for mmap mode

 src/pcm/pcm.c           |   6 +++
 src/pcm/pcm_dmix.c      |   1 +
 src/pcm/pcm_dshare.c    |   1 +
 src/pcm/pcm_dsnoop.c    |   1 +
 src/pcm/pcm_file.c      | 125 ++++++++++++++++++++++++++++++++++++++----------
 src/pcm/pcm_generic.h   |   1 -
 src/pcm/pcm_hooks.c     |   1 +
 src/pcm/pcm_hw.c        |   2 +
 src/pcm/pcm_ioplug.c    |   1 +
 src/pcm/pcm_local.h     |   1 +
 src/pcm/pcm_meter.c     |   1 +
 src/pcm/pcm_mmap_emul.c |   1 +
 src/pcm/pcm_multi.c     |   1 +
 src/pcm/pcm_null.c      |   1 +
 src/pcm/pcm_plugin.c    |   1 +
 src/pcm/pcm_rate.c      |   1 +
 src/pcm/pcm_share.c     |   1 +
 src/pcm/pcm_shm.c       |   1 +
 18 files changed, 122 insertions(+), 26 deletions(-)

Comments

Takashi Iwai May 22, 2019, 2:25 p.m. UTC | #1
On Tue, 21 May 2019 15:32:26 +0200,
Adam Miartus wrote:
> 
> implement overwriting read buffer with input file in case of
> RW_NONINTERLEAVED and MMAP access modes for alsa file plugin
> 
> first two patches introduce a helper function for copying data from
> input file to readi and readn buffers for user. to facilitate this
> snd_pcm_areas_from_buf and snd_pcm_areas_from_bufs with
> snd_pcm_areas_copy is used. Previous readi behaviour in corner
> case of input file EOF is changed (more in patch comment).
> 
> Patch 3,4 introduce new api callback mmap_begin to ease overwritting
> mmaped buffer in case of MMAP access.
> 
> Adam Miartus (4):
>   pcm_file: add support for infile reading in non interleaved mode
>   pcm_file: use snd_pcm_file_areas_read_infile for readi
>   pcm: add mmap_begin callback to snd_pcm_fast_ops_t api
>   pcm_file: add infile read support for mmap mode

Thanks for resubmission.  Now I merged the first two patches, as they
are safe and good fixes.

The patches 3 and 4 are still pending, although I'm inclined to take
them for now.  Someone might have a better idea without the extra base
ops change.

In anyway, the patch 3 can be a bit simplified; the extra NULL
initialization is superfluous, so you can drop those lines.

Oh, BTW, at the next time to submit a patch set, please try to keep
the threading.  Usually git-send-email creates thread automatically
when you send the whole patches in a shot.


Takashi