41 switch (data_type & 0xff) {
104 #define SPDIF_MAX_OFFSET 16384
116 const uint8_t *expected_code = buf + 7;
119 int consecutive_codes = 0;
122 for (; buf < probe_end; buf++) {
123 state = (state << 8) | *buf;
129 if (buf == expected_code) {
130 if (++consecutive_codes >= 2)
133 consecutive_codes = 0;
143 &buf[5], &offset, codec)) {
144 if (buf + offset >= p_buf + buf_size)
146 expected_code = buf +
offset;
147 buf = expected_code - 7;
175 int pkt_size_bits,
offset, ret;
178 state = (state << 8) |
avio_r8(pb);
186 if (pkt_size_bits % 16)
static int spdif_get_offset_and_codec(AVFormatContext *s, enum IEC61937DataType data_type, const char *buf, int *offset, enum AVCodecID *codec)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
void av_free_packet(AVPacket *pkt)
Free a packet.
int64_t pos
byte position in stream, -1 if unknown
#define BURST_HEADER_SIZE
MPEG-2, layer-1 low sampling frequency.
static int spdif_read_header(AVFormatContext *s)
int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
void ff_spdif_bswap_buf16(uint16_t *dst, const uint16_t *src, int w)
int ctx_flags
Flags signalling stream properties.
int ff_spdif_probe(const uint8_t *p_buf, int buf_size, enum AVCodecID *codec)
void void avpriv_request_sample(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature.
static int spdif_probe(AVProbeData *p)
AVStream * avformat_new_stream(AVFormatContext *s, const AVCodec *c)
Add a new stream to a media file.
AVStream ** streams
A list of all streams in the file.
#define AVERROR_EOF
End of file.
DTS type II (1024 samples)
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
AVCodecID
Identify the syntax and semantics of the bitstream.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
DTS type III (2048 samples)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
preferred ID for decoding MPEG audio layer 1, 2 or 3
MPEG-1 layer 2 or 3 data or MPEG-2 without extension.
MPEG-2, layer-3 low sampling frequency.
static const uint8_t offset[127][2]
int avio_r8(AVIOContext *s)
AVCodecContext * codec
Codec context associated with this stream.
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.
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
#define AVERROR_PATCHWELCOME
Not yet implemented in FFmpeg, patches welcome.
#define AAC_ADTS_HEADER_SIZE
enum AVMediaType codec_type
int sample_rate
samples per second
AVIOContext * pb
I/O context.
int avpriv_aac_parse_header(GetBitContext *gbc, AACADTSHeaderInfo *hdr)
Parse AAC frame header.
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext.
This structure contains the data a format has to probe a file.
void avpriv_report_missing_feature(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature.
MPEG-2, layer-2 low sampling frequency.
unsigned int avio_rl16(AVIOContext *s)
MPEG-2 data with extension.
static const uint16_t spdif_mpeg_pkt_offset[2][3]
int bit_rate
Total stream bitrate in bit/s, 0 if not available.
int avio_feof(AVIOContext *s)
feof() equivalent for AVIOContext.
int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt)
This structure stores compressed data.
Common code between the AC-3 encoder and decoder.
AVInputFormat ff_spdif_demuxer