33 #define AU_UNKNOWN_SIZE ((uint32_t)(~0)) 39 if ((magic == 0x0B8D || magic == 0x0C0D || magic == 0x0C8D) &&
40 p->
buf[2] ==
'S' && p->
buf[3] ==
'O' &&
41 p->
buf[4] ==
'L' && p->
buf[5] == 0)
70 if (magic == 0x0B8D)
return 1;
74 else if (magic == 0x0C8D)
return 1;
82 if (magic == 0x0B8D || !(type &
SOL_STEREO))
return 1;
88 unsigned int magic,
tag;
90 unsigned int id, channels, rate, type;
97 if (tag !=
MKTAG(
'S',
'O',
'L', 0))
127 #define MAX_SIZE 4096
AVInputFormat ff_sol_demuxer
#define AV_CH_LAYOUT_STEREO
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file.
static int sol_read_packet(AVFormatContext *s, AVPacket *pkt)
AVCodecID
Identify the syntax and semantics of the bitstream.
unsigned int avio_rl32(AVIOContext *s)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
uint64_t channel_layout
Audio channel layout.
int avio_r8(AVIOContext *s)
AVCodecContext * codec
Codec context associated with this stream.
unsigned char * buf
Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero.
audio channel layout utility functions
static int sol_codec_type(int magic, int type)
static av_always_inline int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
static int sol_read_header(AVFormatContext *s)
static enum AVCodecID sol_codec_id(int magic, int type)
enum AVMediaType codec_type
int sample_rate
samples per second
AVIOContext * pb
I/O context.
unsigned int codec_tag
fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
static int sol_probe(AVProbeData *p)
This structure contains the data a format has to probe a file.
unsigned int avio_rl16(AVIOContext *s)
static int sol_channels(int magic, int type)
int eof_reached
true if eof reached
int channels
number of audio channels
#define AV_CH_LAYOUT_MONO
#define MKTAG(a, b, c, d)
This structure stores compressed data.