Go to the documentation of this file.
28 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0
31 17, 23, 32, 36, 40, 46, 50, 58, 60, 5, 5, 0, 0, 0, 0, 0
49 const uint8_t *buf,
int len, uint16_t seq,
55 const uint8_t *speech_data;
93 speech_data = buf + 1 +
frames;
104 uint8_t toc = buf[1 +
i];
125 if (speech_data < buf +
len) {
137 const char *attr,
const char *
value)
143 if (!strcmp(
value,
"")) {
145 "nonstandard empty value\n", attr);
148 if (!strcmp(attr,
"octet-align"))
150 else if (!strcmp(attr,
"crc"))
152 else if (!strcmp(attr,
"interleaving"))
154 else if (!strcmp(attr,
"channels"))
175 if (!
data->octet_align ||
data->crc ||
176 data->interleaving ||
data->channels != 1) {
#define AV_LOG_WARNING
Something somehow does not look correct.
const RTPDynamicProtocolHandler ff_amr_nb_dynamic_handler
int ff_parse_fmtp(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *p, int(*parse_fmtp)(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *attr, const char *value))
#define AV_CH_LAYOUT_MONO
static int amr_handle_packet(AVFormatContext *ctx, PayloadContext *data, AVStream *st, AVPacket *pkt, uint32_t *timestamp, const uint8_t *buf, int len, uint16_t seq, int flags)
if it could not because there are no more frames
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
int av_new_packet(AVPacket *pkt, int size)
Allocate the payload of a packet and initialize its fields with default values.
static av_cold int amr_init(AVFormatContext *s, int st_index, PayloadContext *data)
static int amr_parse_fmtp(AVFormatContext *s, AVStream *stream, PayloadContext *data, const char *attr, const char *value)
AVCodecParameters * codecpar
Codec parameters associated with this stream.
static int amr_parse_sdp_line(AVFormatContext *s, int st_index, PayloadContext *data, const char *line)
static const uint8_t frame_sizes[]
int av_strstart(const char *str, const char *pfx, const char **ptr)
Return non-zero if pfx is a prefix of str.
static const uint8_t frame_sizes_wb[16]
#define i(width, name, range_min, range_max)
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 value
const RTPDynamicProtocolHandler ff_amr_wb_dynamic_handler
int index
stream index in AVFormatContext
static const uint8_t frame_sizes_nb[16]
static int parse_packet(AVFormatContext *s, AVPacket *pkt, int stream_index, int flush)
Parse a packet, add all split parts to parse_queue.
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
This structure stores compressed data.
uint64_t channel_layout
Audio only.
#define flags(name, subs,...)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
RTP/JPEG specific private data.