-/**
+/*
* RTP Depacketization of MP4A-LATM, RFC 3016
* Copyright (c) 2010 Martin Storsjo
*
#include "internal.h"
#include "libavutil/avstring.h"
#include "libavcodec/get_bits.h"
-#include <strings.h>
struct PayloadContext {
AVIOContext *dyn_buf;
return;
if (data->dyn_buf) {
uint8_t *p;
- url_close_dyn_buf(data->dyn_buf, &p);
+ avio_close_dyn_buf(data->dyn_buf, &p);
av_free(p);
}
av_free(data->buf);
if (!data->dyn_buf || data->timestamp != *timestamp) {
av_freep(&data->buf);
if (data->dyn_buf)
- url_close_dyn_buf(data->dyn_buf, &data->buf);
+ avio_close_dyn_buf(data->dyn_buf, &data->buf);
data->dyn_buf = NULL;
av_freep(&data->buf);
data->timestamp = *timestamp;
- if ((ret = url_open_dyn_buf(&data->dyn_buf)) < 0)
+ if ((ret = avio_open_dyn_buf(&data->dyn_buf)) < 0)
return ret;
}
avio_write(data->dyn_buf, buf, len);
if (!(flags & RTP_FLAG_MARKER))
return AVERROR(EAGAIN);
av_free(data->buf);
- data->len = url_close_dyn_buf(data->dyn_buf, &data->buf);
+ data->len = avio_close_dyn_buf(data->dyn_buf, &data->buf);
data->dyn_buf = NULL;
data->pos = 0;
}
int len = ff_hex_to_data(NULL, value), i, ret = 0;
GetBitContext gb;
uint8_t *config;
- int audio_mux_version, same_time_framing, num_sub_frames,
- num_programs, num_layers;
+ int audio_mux_version, same_time_framing, num_programs, num_layers;
/* Pad this buffer, too, to avoid out of bounds reads with get_bits below */
config = av_mallocz(len + FF_INPUT_BUFFER_PADDING_SIZE);
init_get_bits(&gb, config, len*8);
audio_mux_version = get_bits(&gb, 1);
same_time_framing = get_bits(&gb, 1);
- num_sub_frames = get_bits(&gb, 6);
+ skip_bits(&gb, 6); /* num_sub_frames */
num_programs = get_bits(&gb, 4);
num_layers = get_bits(&gb, 3);
if (audio_mux_version != 0 || same_time_framing != 1 || num_programs != 0 ||
{
const char *p;
+ if (st_index < 0)
+ return 0;
+
if (av_strstart(line, "fmtp:", &p))
return ff_parse_fmtp(s->streams[st_index], data, p, parse_fmtp);
RTPDynamicProtocolHandler ff_mp4a_latm_dynamic_handler = {
.enc_name = "MP4A-LATM",
.codec_type = AVMEDIA_TYPE_AUDIO,
- .codec_id = CODEC_ID_AAC,
+ .codec_id = AV_CODEC_ID_AAC,
.parse_sdp_a_line = latm_parse_sdp_line,
- .open = latm_new_context,
- .close = latm_free_context,
+ .alloc = latm_new_context,
+ .free = latm_free_context,
.parse_packet = latm_parse_packet
};