FFmpeg
Data Structures | Macros | Functions | Variables
pcmdec.c File Reference
#include "config_components.h"
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/mem.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "libavutil/avassert.h"

Go to the source code of this file.

Data Structures

struct  PCMAudioDemuxerContext
 

Macros

#define PCMDEF_0(name_, long_name_, ext, codec, ...)
 
#define PCMDEF_1(name_, long_name_, ext, codec, ...)
 
#define PCMDEF_2(name, long_name, ext, codec, enabled, ...)   PCMDEF_ ## enabled(name, long_name, ext, codec, __VA_ARGS__)
 
#define PCMDEF_3(name, long_name, ext, codec, config, ...)   PCMDEF_2(name, long_name, ext, codec, config, __VA_ARGS__)
 
#define PCMDEF_EXT(name, long_name, ext, uppercase, ...)
 
#define PCMDEF(name, long_name, ext, uppercase)   PCMDEF_EXT(name, long_name, ext, uppercase, )
 

Functions

static int pcm_read_header (AVFormatContext *s)
 

Variables

static const AVOption pcm_options []
 
static const AVClass pcm_demuxer_class
 

Macro Definition Documentation

◆ PCMDEF_0

#define PCMDEF_0 (   name_,
  long_name_,
  ext,
  codec,
  ... 
)

Definition at line 119 of file pcmdec.c.

◆ PCMDEF_1

#define PCMDEF_1 (   name_,
  long_name_,
  ext,
  codec,
  ... 
)
Value:
const FFInputFormat ff_pcm_ ## name_ ## _demuxer = { \
.p.name = #name_, \
.p.long_name = NULL_IF_CONFIG_SMALL(long_name_), \
.p.flags = AVFMT_GENERIC_INDEX, \
.p.extensions = ext, \
.p.priv_class = &pcm_demuxer_class, \
.priv_data_size = sizeof(PCMAudioDemuxerContext), \
.raw_codec_id = codec, \
__VA_ARGS__ \
};

Definition at line 120 of file pcmdec.c.

◆ PCMDEF_2

#define PCMDEF_2 (   name,
  long_name,
  ext,
  codec,
  enabled,
  ... 
)    PCMDEF_ ## enabled(name, long_name, ext, codec, __VA_ARGS__)

Definition at line 134 of file pcmdec.c.

◆ PCMDEF_3

#define PCMDEF_3 (   name,
  long_name,
  ext,
  codec,
  config,
  ... 
)    PCMDEF_2(name, long_name, ext, codec, config, __VA_ARGS__)

Definition at line 136 of file pcmdec.c.

◆ PCMDEF_EXT

#define PCMDEF_EXT (   name,
  long_name,
  ext,
  uppercase,
  ... 
)
Value:
PCMDEF_3(name, long_name, ext, AV_CODEC_ID_PCM_ ## uppercase, \
CONFIG_PCM_ ## uppercase ## _DEMUXER, __VA_ARGS__)

Definition at line 138 of file pcmdec.c.

◆ PCMDEF

#define PCMDEF (   name,
  long_name,
  ext,
  uppercase 
)    PCMDEF_EXT(name, long_name, ext, uppercase, )

Definition at line 141 of file pcmdec.c.

Function Documentation

◆ pcm_read_header()

static int pcm_read_header ( AVFormatContext s)
static

Definition at line 41 of file pcmdec.c.

Variable Documentation

◆ pcm_options

const AVOption pcm_options[]
static
Initial value:
= {
{ "sample_rate", "", 0x42, AV_OPT_TYPE_INT, {.i64 = 44100}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
{ "ch_layout", "", 0x42, AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
{ NULL },
}

Definition at line 107 of file pcmdec.c.

◆ pcm_demuxer_class

const AVClass pcm_demuxer_class
static
Initial value:
= {
.class_name = "pcm demuxer",
.item_name = av_default_item_name,
.option = pcm_options,
}

Definition at line 112 of file pcmdec.c.

name
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
Definition: writing_filters.txt:88
PCMDEF_3
#define PCMDEF_3(name, long_name, ext, codec, config,...)
Definition: pcmdec.c:136
read_seek
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition: libcdio.c:151
AVFMT_GENERIC_INDEX
#define AVFMT_GENERIC_INDEX
Use generic index building code.
Definition: avformat.h:480
pcm_options
static const AVOption pcm_options[]
Definition: pcmdec.c:107
read_packet
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_read_callback.c:42
AVInputFormat::name
const char * name
A comma separated list of short names for the format.
Definition: avformat.h:553
pcm_demuxer_class
static const AVClass pcm_demuxer_class
Definition: pcmdec.c:112
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
read_header
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:540
NULL
#define NULL
Definition: coverity.c:32
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:237
AV_OPT_TYPE_CHLAYOUT
@ AV_OPT_TYPE_CHLAYOUT
Underlying C type is AVChannelLayout.
Definition: opt.h:331
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:94
FFInputFormat::p
AVInputFormat p
The public AVInputFormat.
Definition: demux.h:46
ff_pcm_read_packet
int ff_pcm_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: pcm.c:57
ff_pcm_read_seek
int ff_pcm_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: pcm.c:73
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition: opt.h:259
PCMAudioDemuxerContext
Definition: pcmdec.c:35
AV_OPT_FLAG_DECODING_PARAM
#define AV_OPT_FLAG_DECODING_PARAM
A generic parameter which can be set by the user for demuxing or decoding.
Definition: opt.h:356
FFInputFormat
Definition: demux.h:42
pcm_read_header
static int pcm_read_header(AVFormatContext *s)
Definition: pcmdec.c:41