#include <pulse/rtclock.h>
#include <pulse/error.h>
#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavformat/avformat.h"
#include "libavformat/internal.h"
#include "pulse_audio_common.h"
#include "timefilter.h"
Go to the source code of this file.
◆ DEFAULT_CODEC_ID
◆ CHECK_SUCCESS_GOTO
#define CHECK_SUCCESS_GOTO |
( |
|
rerror, |
|
|
|
expression, |
|
|
|
label |
|
) |
| |
Value: do { \
if (!(expression)) { \
goto label; \
} \
} while (0)
Definition at line 59 of file pulse_audio_dec.c.
◆ CHECK_DEAD_GOTO
#define CHECK_DEAD_GOTO |
( |
|
p, |
|
|
|
rerror, |
|
|
|
label |
|
) |
| |
Value: do { \
if (!(p)->
context || !PA_CONTEXT_IS_GOOD(pa_context_get_state((p)->
context)) || \
!(p)->stream || !PA_STREAM_IS_GOOD(pa_stream_get_state((p)->stream))) { \
goto label; \
} \
} while (0)
Definition at line 67 of file pulse_audio_dec.c.
◆ OFFSET
◆ context_state_cb()
static void context_state_cb |
( |
pa_context * |
c, |
|
|
void * |
userdata |
|
) |
| |
|
static |
◆ stream_state_cb()
static void stream_state_cb |
( |
pa_stream * |
s, |
|
|
void * |
userdata |
|
) |
| |
|
static |
◆ stream_request_cb()
static void stream_request_cb |
( |
pa_stream * |
s, |
|
|
size_t |
length, |
|
|
void * |
userdata |
|
) |
| |
|
static |
◆ stream_latency_update_cb()
static void stream_latency_update_cb |
( |
pa_stream * |
s, |
|
|
void * |
userdata |
|
) |
| |
|
static |
◆ pulse_close()
◆ pulse_read_header()
◆ pulse_read_packet()
◆ pulse_get_device_list()
◆ options
Initial value:= {
{
"fragment_size",
"set buffering size, affects latency and cpu usage",
OFFSET(fragment_size),
AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX,
D },
{
"wallclock",
"set the initial pts using the current time",
OFFSET(wallclock),
AV_OPT_TYPE_INT, {.i64 = 1}, -1, 1,
D },
}
Definition at line 369 of file pulse_audio_dec.c.
◆ pulse_demuxer_class
◆ ff_pulse_demuxer
static const AVOption options[]
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
static int pulse_get_device_list(AVFormatContext *h, AVDeviceInfoList *device_list)
static av_cold int read_close(AVFormatContext *ctx)
@ AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your context
static av_cold int pulse_close(AVFormatContext *s)
#define LIBAVUTIL_VERSION_INT
static int read_header(FFV1Context *f)
const char * av_default_item_name(void *ptr)
Return the context name.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
#define AVERROR_EXTERNAL
Generic error in an external library.
static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt)
static av_cold int pulse_read_header(AVFormatContext *s)
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
#define flags(name, subs,...)
static const AVClass pulse_demuxer_class