#ifndef AUDIO_SOURCE_H
#define AUDIO_SOURCE_H

#include <glib.h>
#include <stddef.h>
#include <stdint.h>

typedef struct AudioSource AudioSource;

/* alsa_device: plughw:X,Y | "test"（audiotestsrc 测试音） */
AudioSource *audio_source_start(const char *alsa_device, char **error_message);
void audio_source_stop(AudioSource *src);

/* 拉一帧 Opus payload；数据在下次 pull 前有效。timeout_ms：appsink 等待毫秒。 */
gboolean audio_source_pull(AudioSource *src, const uint8_t **data, size_t *size,
                           guint64 *pts_ns, gint timeout_ms);

#endif
