25 #define MARKER_16LE 0x72F81F4E
26 #define MARKER_20LE 0x20876FF0E154
27 #define MARKER_24LE 0x72F8961F4EA5
29 #define IS_16LE_MARKER(state) ((state & 0xFFFFFFFF) == MARKER_16LE)
30 #define IS_20LE_MARKER(state) ((state & 0xF0FFFFF0FFFF) == MARKER_20LE)
31 #define IS_24LE_MARKER(state) ((state & 0xFFFFFFFFFFFF) == MARKER_24LE)
32 #define IS_LE_MARKER(state) (IS_16LE_MARKER(state) || IS_20LE_MARKER(state) || IS_24LE_MARKER(state))
36 int data_type,
int data_size,
52 if ((data_type & 0x1F) != 0x1C) {
61 switch (data_size / word_bits) {
81 *
offset *= (word_bits + 7 >> 3) * 2;
88 int markers[3] = { 0 };
120 if (markers[
max] < markers[
i])
124 if (markers[
max] > 3 && markers[
max] * 4 > sum * 3)
148 int ret, data_type, data_size,
offset;
185 if (!
s->nb_streams) {
int avio_feof(AVIOContext *s)
Similar to feof() but also returns nonzero on read errors.
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
unsigned int avio_rl16(AVIOContext *s)
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
unsigned int avio_rl24(AVIOContext *s)
int avio_r8(AVIOContext *s)
#define FFSWAP(type, a, b)
AVCodecID
Identify the syntax and semantics of the bitstream.
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file.
#define AVERROR_PATCHWELCOME
Not yet implemented in FFmpeg, patches welcome.
#define AVERROR_EOF
End of file.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
void avpriv_report_missing_feature(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature.
static int s337m_read_header(AVFormatContext *s)
static int s337m_probe(const AVProbeData *p)
#define IS_20LE_MARKER(state)
#define IS_LE_MARKER(state)
AVInputFormat ff_s337m_demuxer
#define IS_16LE_MARKER(state)
static int s337m_read_packet(AVFormatContext *s, AVPacket *pkt)
static void bswap_buf24(uint8_t *data, int size)
static int s337m_get_offset_and_codec(void *avc, uint64_t state, int data_type, int data_size, int *offset, enum AVCodecID *codec)
#define FF_ARRAY_ELEMS(a)
void ff_spdif_bswap_buf16(uint16_t *dst, const uint16_t *src, int w)
enum AVMediaType codec_type
General type of the encoded data.
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
This structure stores compressed data.
int64_t pos
byte position in stream, -1 if unknown
This structure contains the data a format has to probe a file.
int buf_size
Size of buf except extra allocated bytes.
unsigned char * buf
Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero.
AVCodecParameters * codecpar
Codec parameters associated with this stream.
static const uint8_t offset[127][2]