Functions | Variables
alsa_dec.c File Reference

ALSA input and output: input. More...

#include <alsa/asoundlib.h>
#include "libavutil/internal.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavformat/internal.h"
#include "avdevice.h"
#include "alsa.h"

Go to the source code of this file.


static av_cold int audio_read_header (AVFormatContext *s1)
static int audio_read_packet (AVFormatContext *s1, AVPacket *pkt)
static int audio_get_device_list (AVFormatContext *h, AVDeviceInfoList *device_list)


static const AVOption options []
static const AVClass alsa_demuxer_class
AVInputFormat ff_alsa_demuxer

Detailed Description

ALSA input and output: input.

Luca Abeni ( lucabe72 email it )
Benoit Fouet ( benoit fouet free fr )
Nicolas George ( nicolas george normalesup org )

This avdevice decoder can capture audio from an ALSA (Advanced Linux Sound Architecture) device.

The filename parameter is the name of an ALSA PCM device capable of capture, for example "default" or "plughw:1"; see the ALSA documentation for naming conventions. The empty string is equivalent to "default".

The capture period is set to the lower value available for the device, which gives a low latency suitable for real-time capture.

The PTS are an Unix time in microsecond.

Due to a bug in the ALSA library (https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4308), this decoder does not work with certain ALSA plugins, especially the dsnoop plugin.

Definition in file alsa_dec.c.

Function Documentation

static av_cold int audio_read_header ( AVFormatContext s1)

Definition at line 60 of file alsa_dec.c.

static int audio_read_packet ( AVFormatContext s1,
AVPacket pkt 

Definition at line 101 of file alsa_dec.c.

static int audio_get_device_list ( AVFormatContext h,
AVDeviceInfoList device_list 

Definition at line 139 of file alsa_dec.c.

Variable Documentation

const AVOption options[]
Initial value:
= {
{ "sample_rate", "", 0x42, AV_OPT_TYPE_INT, {.i64 = 48000}, 1, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
{ "channels", "", 0x42, AV_OPT_TYPE_INT, {.i64 = 2}, 1, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
{ NULL },
#define NULL
Definition: coverity.c:32
a generic parameter which can be set by the user for demuxing or decoding
Definition: opt.h:279

Definition at line 144 of file alsa_dec.c.

const AVClass alsa_demuxer_class
Initial value:
= {
.class_name = "ALSA indev",
.item_name = av_default_item_name,
.option = options,
Definition: version.h:85
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:235
static const AVOption options[]
Definition: alsa_dec.c:144

Definition at line 150 of file alsa_dec.c.

AVInputFormat ff_alsa_demuxer
Initial value:
= {
.name = "alsa",
.long_name = NULL_IF_CONFIG_SMALL("ALSA audio input"),
.priv_data_size = sizeof(AlsaData),
.get_device_list = audio_get_device_list,
.priv_class = &alsa_demuxer_class,
static int audio_read_packet(AVFormatContext *s1, AVPacket *pkt)
Definition: alsa_dec.c:101
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
Definition: alsa.h:48
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:153
static int audio_get_device_list(AVFormatContext *h, AVDeviceInfoList *device_list)
Definition: alsa_dec.c:139
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:527
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_reading.c:42
av_cold int ff_alsa_close(AVFormatContext *s1)
Close the ALSA PCM.
Definition: alsa.c:299
#define flags(name, subs,...)
Definition: cbs_av1.c:560
Demuxer will use avio_open, no opened file should be provided by the caller.
Definition: avformat.h:458
static av_cold int audio_read_header(AVFormatContext *s1)
Definition: alsa_dec.c:60
static const AVClass alsa_demuxer_class
Definition: alsa_dec.c:150

Definition at line 158 of file alsa_dec.c.