mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
pcm: add helper functions to query timestamping capabilities
extend support to link, link_estimated and link_synchronized timestamp. wall-clock is deprecated Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
4dc44bb34a
commit
6cb31b4444
2 changed files with 36 additions and 2 deletions
|
|
@ -668,7 +668,8 @@ int snd_pcm_hw_params_is_half_duplex(const snd_pcm_hw_params_t *params);
|
|||
int snd_pcm_hw_params_is_joint_duplex(const snd_pcm_hw_params_t *params);
|
||||
int snd_pcm_hw_params_can_sync_start(const snd_pcm_hw_params_t *params);
|
||||
int snd_pcm_hw_params_can_disable_period_wakeup(const snd_pcm_hw_params_t *params);
|
||||
int snd_pcm_hw_params_supports_audio_wallclock_ts(const snd_pcm_hw_params_t *params);
|
||||
int snd_pcm_hw_params_supports_audio_wallclock_ts(const snd_pcm_hw_params_t *params); /* deprecated, use audio_ts_type */
|
||||
int snd_pcm_hw_params_supports_audio_ts_type(const snd_pcm_hw_params_t *params, int type);
|
||||
int snd_pcm_hw_params_get_rate_numden(const snd_pcm_hw_params_t *params,
|
||||
unsigned int *rate_num,
|
||||
unsigned int *rate_den);
|
||||
|
|
|
|||
|
|
@ -3189,13 +3189,46 @@ int snd_pcm_hw_params_can_disable_period_wakeup(const snd_pcm_hw_params_t *param
|
|||
* a single configuration from the configuration space.
|
||||
*/
|
||||
int snd_pcm_hw_params_supports_audio_wallclock_ts(const snd_pcm_hw_params_t *params)
|
||||
{
|
||||
/* deprecated */
|
||||
return snd_pcm_hw_params_supports_audio_ts_type(params,
|
||||
SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Check if hardware supports type of audio timestamps
|
||||
* \param params Configuration space
|
||||
* \param type Audio timestamp type
|
||||
* \retval 0 Hardware doesn't support type of audio timestamps
|
||||
* \retval 1 Hardware supports type of audio timestamps
|
||||
*
|
||||
* This function should only be called when the configuration space
|
||||
* contains a single configuration. Call #snd_pcm_hw_params to choose
|
||||
* a single configuration from the configuration space.
|
||||
*/
|
||||
int snd_pcm_hw_params_supports_audio_ts_type(const snd_pcm_hw_params_t *params, int type)
|
||||
{
|
||||
assert(params);
|
||||
if (CHECK_SANITY(params->info == ~0U)) {
|
||||
SNDMSG("invalid PCM info field");
|
||||
return 0; /* FIXME: should be a negative error? */
|
||||
}
|
||||
return !!(params->info & SNDRV_PCM_INFO_HAS_WALL_CLOCK);
|
||||
switch (type) {
|
||||
case SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT:
|
||||
return !!(params->info & SNDRV_PCM_INFO_HAS_WALL_CLOCK); /* deprecated */
|
||||
case SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT:
|
||||
return 1; /* always supported, based on hw_ptr */
|
||||
case SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK:
|
||||
return !!(params->info & SNDRV_PCM_INFO_HAS_LINK_ATIME);
|
||||
case SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE:
|
||||
return !!(params->info & SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME);
|
||||
case SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED:
|
||||
return !!(params->info & SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME);
|
||||
case SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED:
|
||||
return !!(params->info & SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue