diff options
author | Jeeja KP <jeeja.kp@intel.com> | 2013-02-14 16:52:51 +0530 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-02-14 12:30:22 +0100 |
commit | 9727b490e543de956b8ba356e2d5499097d0b7a2 (patch) | |
tree | 81c41ee5b9987fdcb32c474484c39f45210507c0 /include/sound | |
parent | 8be69efacdc73fc110624f847bdf04b83decfc70 (diff) | |
download | linux-9727b490e543de956b8ba356e2d5499097d0b7a2.tar.bz2 |
ALSA: compress: add support for gapless playback
this add new API for sound compress to support gapless playback.
As noted in Documentation change, we add API to send metadata of encoder and
padding delay to DSP. Also add API for indicating EOF and switching to
subsequent track
Also bump the compress API version
Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/compress_driver.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h index f2912abacdf3..ff6c74153fa1 100644 --- a/include/sound/compress_driver.h +++ b/include/sound/compress_driver.h @@ -71,6 +71,8 @@ struct snd_compr_runtime { * @runtime: pointer to runtime structure * @device: device pointer * @direction: stream direction, playback/recording + * @metadata_set: metadata set flag, true when set + * @next_track: has userspace signall next track transistion, true when set * @private_data: pointer to DSP private data */ struct snd_compr_stream { @@ -79,6 +81,8 @@ struct snd_compr_stream { struct snd_compr_runtime *runtime; struct snd_compr *device; enum snd_compr_direction direction; + bool metadata_set; + bool next_track; void *private_data; }; @@ -110,6 +114,10 @@ struct snd_compr_ops { struct snd_compr_params *params); int (*get_params)(struct snd_compr_stream *stream, struct snd_codec *params); + int (*set_metadata)(struct snd_compr_stream *stream, + struct snd_compr_metadata *metadata); + int (*get_metadata)(struct snd_compr_stream *stream, + struct snd_compr_metadata *metadata); int (*trigger)(struct snd_compr_stream *stream, int cmd); int (*pointer)(struct snd_compr_stream *stream, struct snd_compr_tstamp *tstamp); |