|
|
|
@@ -137,6 +137,8 @@ static int rtp_parse_mp4_au(PayloadContext *data, const uint8_t *buf) |
|
|
|
if (!data->au_headers || data->au_headers_allocated < data->nb_au_headers) { |
|
|
|
av_free(data->au_headers); |
|
|
|
data->au_headers = av_malloc(sizeof(struct AUHeaders) * data->nb_au_headers); |
|
|
|
if (!data->au_headers) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
data->au_headers_allocated = data->nb_au_headers; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -162,6 +164,7 @@ static int aac_parse_packet(AVFormatContext *ctx, PayloadContext *data, |
|
|
|
const uint8_t *buf, int len, uint16_t seq, |
|
|
|
int flags) |
|
|
|
{ |
|
|
|
int ret; |
|
|
|
if (rtp_parse_mp4_au(data, buf)) |
|
|
|
return -1; |
|
|
|
|
|
|
|
@@ -170,7 +173,8 @@ static int aac_parse_packet(AVFormatContext *ctx, PayloadContext *data, |
|
|
|
|
|
|
|
/* XXX: Fixme we only handle the case where rtp_parse_mp4_au define |
|
|
|
one au_header */ |
|
|
|
av_new_packet(pkt, data->au_headers[0].size); |
|
|
|
if ((ret = av_new_packet(pkt, data->au_headers[0].size)) < 0) |
|
|
|
return ret; |
|
|
|
memcpy(pkt->data, buf, data->au_headers[0].size); |
|
|
|
|
|
|
|
pkt->stream_index = st->index; |
|
|
|
|