libavdevice/alsa-audio-common.c File Reference

ALSA input and output: common code. More...

#include <alsa/asoundlib.h>
#include "avdevice.h"
#include "alsa-audio.h"

Go to the source code of this file.

Defines

#define REORDER_OUT_50(NAME, TYPE)
#define REORDER_OUT_51(NAME, TYPE)
#define REORDER_OUT_71(NAME, TYPE)
#define REORDER_DUMMY   ((void *)1)

Functions

static av_cold snd_pcm_format_t codec_id_to_pcm_format (int codec_id)
static av_cold ff_reorder_func find_reorder_func (int codec_id, int64_t layout, int out)
av_cold int ff_alsa_open (AVFormatContext *ctx, snd_pcm_stream_t mode, unsigned int *sample_rate, int channels, enum CodecID *codec_id)
 Open an ALSA PCM.
av_cold int ff_alsa_close (AVFormatContext *s1)
 Close the ALSA PCM.
int ff_alsa_xrun_recover (AVFormatContext *s1, int err)
 Try to recover from ALSA buffer underrun.
int ff_alsa_extend_reorder_buf (AlsaData *s, int min_size)


Detailed Description

ALSA input and output: common code.

Author:
Luca Abeni ( lucabe72 email it )

Benoit Fouet ( benoit fouet free fr )

Nicolas George ( nicolas george normalesup org )

Definition in file alsa-audio-common.c.


Define Documentation

#define REORDER_DUMMY   ((void *)1)

Definition at line 128 of file alsa-audio-common.c.

Referenced by ff_alsa_open(), and find_reorder_func().

#define REORDER_OUT_50 ( NAME,
TYPE   ) 

Value:

static void alsa_reorder_ ## NAME ## _out_50(const void *in_v, void *out_v, int n) \
{ \
    const TYPE *in = in_v; \
    TYPE * out = out_v; \
\
    while (n-- > 0) { \
        out[0] = in[0]; \
        out[1] = in[1]; \
        out[2] = in[3]; \
        out[3] = in[4]; \
        out[4] = in[2]; \
        in  += 5; \
        out += 5; \
    } \
}

Definition at line 63 of file alsa-audio-common.c.

#define REORDER_OUT_51 ( NAME,
TYPE   ) 

Value:

static void alsa_reorder_ ## NAME ## _out_51(const void *in_v, void *out_v, int n) \
{ \
    const TYPE *in = in_v; \
    TYPE * out = out_v; \
\
    while (n-- > 0) { \
        out[0] = in[0]; \
        out[1] = in[1]; \
        out[2] = in[4]; \
        out[3] = in[5]; \
        out[4] = in[2]; \
        out[5] = in[3]; \
        in  += 6; \
        out += 6; \
    } \
}

Definition at line 80 of file alsa-audio-common.c.

#define REORDER_OUT_71 ( NAME,
TYPE   ) 

Value:

static void alsa_reorder_ ## NAME ## _out_71(const void *in_v, void *out_v, int n) \
{ \
    const TYPE *in = in_v; \
    TYPE * out = out_v; \
\
    while (n-- > 0) { \
        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]; \
        in  += 8; \
        out += 8; \
    } \
}

Definition at line 98 of file alsa-audio-common.c.


Function Documentation

static av_cold snd_pcm_format_t codec_id_to_pcm_format ( int  codec_id  )  [static]

Definition at line 36 of file alsa-audio-common.c.

Referenced by ff_alsa_open().

av_cold int ff_alsa_close ( AVFormatContext s1  ) 

Close the ALSA PCM.

Parameters:
s1 media file handle
Returns:
0

Definition at line 307 of file alsa-audio-common.c.

int ff_alsa_extend_reorder_buf ( AlsaData s,
int  min_size 
)

Definition at line 337 of file alsa-audio-common.c.

Referenced by audio_write_packet().

av_cold int ff_alsa_open ( AVFormatContext s,
snd_pcm_stream_t  mode,
unsigned int *  sample_rate,
int  channels,
enum CodecID codec_id 
)

Open an ALSA PCM.

Parameters:
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 CodecID or CODEC_ID_NONE; out: actually selected CodecID, changed only if CODEC_ID_NONE was requested
Returns:
0 if OK, AVERROR_xxx on error

Definition at line 170 of file alsa-audio-common.c.

Referenced by audio_read_header(), and audio_write_header().

int ff_alsa_xrun_recover ( AVFormatContext s1,
int  err 
)

Try to recover from ALSA buffer underrun.

Parameters:
s1 media file handle
err error code reported by the previous ALSA call
Returns:
0 if OK, AVERROR_xxx on error

Definition at line 316 of file alsa-audio-common.c.

Referenced by audio_read_packet(), and audio_write_packet().

static av_cold ff_reorder_func find_reorder_func ( int  codec_id,
int64_t  layout,
int  out 
) [static]

Definition at line 130 of file alsa-audio-common.c.

Referenced by ff_alsa_open().


Generated on Fri Oct 26 02:39:47 2012 for FFmpeg by  doxygen 1.5.8