Hi, On Jan 30 2018 18:34, Sriram Periyasamy wrote: > From: Ramesh Babu <ramesh.babu@xxxxxxxxx> > > The "no-rewind" flag is introduced in alsa. > Application can use this flag to assure kernel driver > that rewind won't be exercised. Driver could use this > flag to alter it's buffering scheme to optimize power > and performance. > > Signed-off-by: Ramesh Babu <ramesh.babu@xxxxxxxxx> > Signed-off-by: Sriram Periyasamy <sriramx.periyasamy@xxxxxxxxx> > --- > aplay/aplay.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) Current implementation of 'aplay' doesn't perform rewinding/forwarding, thus an additional of this option is surplus. > diff --git a/aplay/aplay.c b/aplay/aplay.c > index 6b740c281f8e..b50602a59024 100644 > --- a/aplay/aplay.c > +++ b/aplay/aplay.c > @@ -108,6 +108,7 @@ static snd_pcm_stream_t stream = SND_PCM_STREAM_PLAYBACK; > static int mmap_flag = 0; > static int interleaved = 1; > static int nonblock = 0; > +static int no_rewind = 0; > static volatile sig_atomic_t in_aborting = 0; > static u_char *audiobuf = NULL; > static snd_pcm_uframes_t chunk_size = 0; > @@ -229,6 +230,7 @@ _("Usage: %s [OPTION]... [FILE]...\n" > "-I, --separate-channels one file for each channel\n" > "-i, --interactive allow interactive operation from stdin\n" > "-m, --chmap=ch1,ch2,.. Give the channel map to override or follow\n" > +"-w, --no-rewind enables no rewind mode\n" > " --disable-resample disable automatic rate resample\n" > " --disable-channels disable automatic channel conversions\n" > " --disable-format disable automatic format conversions\n" > @@ -470,7 +472,7 @@ int main(int argc, char *argv[]) > { > int duration_or_sample = 0; > int option_index; > - static const char short_options[] = "hnlLD:qt:c:f:r:d:s:MNF:A:R:T:B:vV:IPCi" > + static const char short_options[] = "hnlLD:qt:c:f:r:d:s:w:MNF:A:R:T:B:vV:IPCi" > #ifdef CONFIG_SUPPORT_CHMAP > "m:" > #endif > @@ -514,6 +516,7 @@ int main(int argc, char *argv[]) > {"process-id-file", 1, 0, OPT_PROCESS_ID_FILE}, > {"use-strftime", 0, 0, OPT_USE_STRFTIME}, > {"interactive", 0, 0, 'i'}, > + {"no-rewind", 0, 0, 'w'}, > {"dump-hw-params", 0, 0, OPT_DUMP_HWPARAMS}, > {"fatal-errors", 0, 0, OPT_FATAL_ERRORS}, > #ifdef CONFIG_SUPPORT_CHMAP > @@ -753,6 +756,9 @@ int main(int argc, char *argv[]) > case 'i': > interactive = 1; > break; > + case 'w': > + no_rewind = 1; > + break; > case OPT_DISABLE_RESAMPLE: > open_mode |= SND_PCM_NO_AUTO_RESAMPLE; > break; > @@ -1396,6 +1402,12 @@ static void set_params(void) > &buffer_frames); > } > assert(err >= 0); > + > + if (no_rewind) { > + err = snd_pcm_hw_params_set_no_rewind(handle, params, 1); > + assert(err >= 0); > + } > + > monotonic = snd_pcm_hw_params_is_monotonic(params); > can_pause = snd_pcm_hw_params_can_pause(params); > err = snd_pcm_hw_params(handle, params); Regards Takashi Sakamoto _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel