mirror of
https://github.com/alsa-project/alsa-utils
synced 2024-11-10 03:35:42 +01:00
29c6076029
In aplay, '--fatal-errors' option has an effect to give up recovery of PCM substream from XRUN state. This commit adds support for this option. In original implementation, this option brings program abort. This seems to generate core dump of process VMA. However, typically, XRUN comes from timing mismatch between hardware and application, therefore core dump has less helpful. This commit finishes this program in usual way with this option at XRUN. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
//
|
|
// xfer-libasound.h - a header for receiver/transmitter of frames by alsa-lib.
|
|
//
|
|
// Copyright (c) 2018 Takashi Sakamoto <o-takashi@sakamocchi.jp>
|
|
//
|
|
// Licensed under the terms of the GNU General Public License, version 2.
|
|
|
|
#ifndef __ALSA_UTILS_AXFER_XFER_LIBASOUND__H_
|
|
#define __ALSA_UTILS_AXFER_XFER_LIBASOUND__H_
|
|
|
|
#include "xfer.h"
|
|
|
|
#define logging(state, ...) \
|
|
snd_output_printf(state->log, __VA_ARGS__)
|
|
|
|
struct xfer_libasound_ops;
|
|
|
|
struct libasound_state {
|
|
snd_pcm_t *handle;
|
|
|
|
snd_output_t *log;
|
|
snd_pcm_hw_params_t *hw_params;
|
|
snd_pcm_sw_params_t *sw_params;
|
|
|
|
const struct xfer_libasound_ops *ops;
|
|
void *private_data;
|
|
|
|
bool verbose;
|
|
|
|
char *node_literal;
|
|
|
|
bool finish_at_xrun:1;
|
|
};
|
|
|
|
// For internal use in 'libasound' module.
|
|
|
|
struct xfer_libasound_ops {
|
|
int (*pre_process)(struct libasound_state *state);
|
|
int (*process_frames)(struct libasound_state *state,
|
|
unsigned int *frame_count,
|
|
struct mapper_context *mapper,
|
|
struct container_context *cntrs);
|
|
void (*post_process)(struct libasound_state *state);
|
|
unsigned int private_size;
|
|
};
|
|
|
|
extern const struct xfer_libasound_ops xfer_libasound_irq_rw_ops;
|
|
|
|
#endif
|