58 int interleave_size, interleave_index;
65 interleave_size = buf[0] >> 3 & 7;
66 interleave_index = buf[0] & 7;
68 if (interleave_size > 5) {
73 if (interleave_index > interleave_size) {
75 interleave_index, interleave_size);
83 for (i = 0; i < 6; i++)
87 if (interleave_index < data->interleave_index) {
122 if (1 + frame_size > len)
125 if (len - 1 - frame_size >
sizeof(data->
group[0].
data))
130 memcpy(pkt->
data, &buf[1], frame_size);
136 memcpy(ip->
data, &buf[1 + frame_size], ip->
size);
142 if (interleave_index == interleave_size) {
177 if (ip->
pos + frame_size > ip->
size)
207 return store_packet(ctx, data, st, pkt, timestamp, buf, len);
217 .static_payload_id = 12,
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
RTP/JPEG specific private data.
static int return_stored_frame(AVFormatContext *ctx, PayloadContext *data, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len)
int index
stream index in AVFormatContext
static int store_packet(AVFormatContext *ctx, PayloadContext *data, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len)
static const uint8_t frame_sizes[]
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
InterleavePacket group[6]
#define FF_ARRAY_ELEMS(a)
static int qcelp_parse_packet(AVFormatContext *ctx, PayloadContext *data, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, uint16_t seq, int flags)
uint8_t next_data[1+35 *10]
const RTPDynamicProtocolHandler ff_qcelp_dynamic_handler
This structure stores compressed data.