FFmpeg
|
ALSA input and output: common code. More...
#include <alsa/asoundlib.h>
#include "avdevice.h"
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "alsa.h"
Go to the source code of this file.
Macros | |
#define | MAKE_REORDER_FUNC(NAME, TYPE, CHANNELS, LAYOUT, MAP) |
#define | MAKE_REORDER_FUNCS(CHANNELS, LAYOUT, MAP) |
#define | FORMAT_I8 0 |
#define | FORMAT_I16 1 |
#define | FORMAT_I32 2 |
#define | FORMAT_F32 3 |
#define | PICK_REORDER(layout) |
Functions | |
static av_cold snd_pcm_format_t | codec_id_to_pcm_format (int codec_id) |
MAKE_REORDER_FUNCS (5, out_50, out[0]=in[0];out[1]=in[1];out[2]=in[3];out[3]=in[4];out[4]=in[2];) | |
MAKE_REORDER_FUNCS (6, out_51, out[0]=in[0];out[1]=in[1];out[2]=in[4];out[3]=in[5];out[4]=in[2];out[5]=in[3];) | |
MAKE_REORDER_FUNCS (8, out_71, out[0]=in[0];out[1]=in[1];out[2]=in[4];out[3]=in[5];out[4]=in[2];out[5]=in[3];out[6]=in[6];out[7]=in[7];) | |
static av_cold int | find_reorder_func (AlsaData *s, int codec_id, uint64_t layout, int out) |
av_cold int | ff_alsa_open (AVFormatContext *ctx, snd_pcm_stream_t mode, unsigned int *sample_rate, int channels, enum AVCodecID *codec_id) |
Open an ALSA PCM. More... | |
av_cold int | ff_alsa_close (AVFormatContext *s1) |
Close the ALSA PCM. More... | |
int | ff_alsa_xrun_recover (AVFormatContext *s1, int err) |
Try to recover from ALSA buffer underrun. More... | |
int | ff_alsa_extend_reorder_buf (AlsaData *s, int min_size) |
int | ff_alsa_get_device_list (AVDeviceInfoList *device_list, snd_pcm_stream_t stream_type) |
ALSA input and output: common code.
Definition in file alsa.c.
#define MAKE_REORDER_FUNC | ( | NAME, | |
TYPE, | |||
CHANNELS, | |||
LAYOUT, | |||
MAP | |||
) |
#define MAKE_REORDER_FUNCS | ( | CHANNELS, | |
LAYOUT, | |||
MAP | |||
) |
#define FORMAT_I8 0 |
Definition at line 114 of file alsa.c.
Referenced by find_reorder_func().
#define FORMAT_I16 1 |
Definition at line 115 of file alsa.c.
Referenced by find_reorder_func().
#define FORMAT_I32 2 |
Definition at line 116 of file alsa.c.
Referenced by find_reorder_func().
#define FORMAT_F32 3 |
Definition at line 117 of file alsa.c.
Referenced by find_reorder_func().
#define PICK_REORDER | ( | layout | ) |
|
static |
Definition at line 38 of file alsa.c.
Referenced by ff_alsa_open().
MAKE_REORDER_FUNCS | ( | 5 | , |
out_50 | , | ||
out | [0] = in[0];out[1]=in[1];out[2]=in[3];out[3]=in[4];out[4]=in[2]; |
||
) |
MAKE_REORDER_FUNCS | ( | 6 | , |
out_51 | , | ||
out | [0] = in[0];out[1]=in[1];out[2]=in[4];out[3]=in[5];out[4]=in[2];out[5]=in[3]; |
||
) |
MAKE_REORDER_FUNCS | ( | 8 | , |
out_71 | , | ||
out | [0] = in[0];out[1]=in[1];out[2]=in[4];out[3]=in[5];out[4]=in[2];out[5]=in[3];out[6]=in[6];out[7]=in[7]; |
||
) |
|
static |
Definition at line 127 of file alsa.c.
Referenced by ff_alsa_open().
av_cold int ff_alsa_open | ( | AVFormatContext * | s, |
snd_pcm_stream_t | mode, | ||
unsigned int * | sample_rate, | ||
int | channels, | ||
enum AVCodecID * | codec_id | ||
) |
Open an ALSA PCM.
s | media file handle |
mode | either SND_PCM_STREAM_CAPTURE or SND_PCM_STREAM_PLAYBACK |
sample_rate | in: requested sample rate; out: actually selected sample rate |
channels | number of channels |
codec_id | in: requested AVCodecID or AV_CODEC_ID_NONE; out: actually selected AVCodecID, changed only if AV_CODEC_ID_NONE was requested |
Definition at line 167 of file alsa.c.
Referenced by audio_read_header(), and audio_write_header().
av_cold int ff_alsa_close | ( | AVFormatContext * | s1 | ) |
int ff_alsa_xrun_recover | ( | AVFormatContext * | s1, |
int | err | ||
) |
Try to recover from ALSA buffer underrun.
s1 | media file handle |
err | error code reported by the previous ALSA call |
Definition at line 310 of file alsa.c.
Referenced by audio_read_packet(), and audio_write_packet().
int ff_alsa_extend_reorder_buf | ( | AlsaData * | s, |
int | min_size | ||
) |
Definition at line 331 of file alsa.c.
Referenced by audio_write_packet().
int ff_alsa_get_device_list | ( | AVDeviceInfoList * | device_list, |
snd_pcm_stream_t | stream_type | ||
) |
Definition at line 348 of file alsa.c.
Referenced by audio_get_device_list().