X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Frtpdec_mpeg4.c;h=37602925ff20806341a061447ae4a1dfbf7e97dc;hb=6f69f7a8bf6a0d01;hp=58bcdff78603b6f2b4ac9196d549abf922da8994;hpb=9200514ad8717c63f82101dc394f4378854325bf;p=ffmpeg diff --git a/libavformat/rtpdec_mpeg4.c b/libavformat/rtpdec_mpeg4.c index 58bcdff7860..37602925ff2 100644 --- a/libavformat/rtpdec_mpeg4.c +++ b/libavformat/rtpdec_mpeg4.c @@ -3,20 +3,20 @@ * Copyright (c) 2010 Fabrice Bellard * Romain Degez * - * This file is part of Libav. + * This file is part of FFmpeg. * - * Libav is free software; you can redistribute it and/or + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * Libav is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with Libav; if not, write to the Free Software + * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -93,19 +93,17 @@ static const AttrNameMap attr_names[] = { static void close_context(PayloadContext *data) { - av_free(data->au_headers); - av_free(data->mode); + av_freep(&data->au_headers); + av_freep(&data->mode); } static int parse_fmtp_config(AVCodecParameters *par, char *value) { /* decode the hexa encoded parameter */ int len = ff_hex_to_data(NULL, value); - av_free(par->extradata); - par->extradata = av_mallocz(len + AV_INPUT_BUFFER_PADDING_SIZE); - if (!par->extradata) + av_freep(&par->extradata); + if (ff_alloc_extradata(par, len)) return AVERROR(ENOMEM); - par->extradata_size = len; ff_hex_to_data(par->extradata, value); return 0; } @@ -136,7 +134,7 @@ static int rtp_parse_mp4_au(PayloadContext *data, const uint8_t *buf, int len) init_get_bits(&getbitcontext, buf, data->au_headers_length_bytes * 8); - /* XXX: Wrong if optionnal additional sections are present (cts, dts etc...) */ + /* XXX: Wrong if optional additional sections are present (cts, dts etc...) */ au_header_size = data->sizelength + data->indexlength; if (au_header_size <= 0 || (au_headers_length % au_header_size != 0)) return -1; @@ -167,6 +165,7 @@ static int aac_parse_packet(AVFormatContext *ctx, PayloadContext *data, { int ret; + if (!buf) { if (data->cur_au_index > data->nb_au_headers) { av_log(ctx, AV_LOG_ERROR, "Invalid parser state\n");