Marton Balint (2018-02-10): > Fixes ticket #6761. > > Signed-off-by: Marton Balint <[email protected]> > --- > libavformat/concatdec.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c > index 178fac86cb..3e41a62a36 100644 > --- a/libavformat/concatdec.c > +++ b/libavformat/concatdec.c > @@ -24,6 +24,7 @@
> #include "libavutil/opt.h"
> #include "libavutil/parseutils.h"
> #include "libavutil/timestamp.h"
> +#include "libavutil/bprint.h"
Nit: alphabetic order.
> #include "avformat.h"
> #include "internal.h"
> #include "url.h"
> @@ -386,18 +387,18 @@ static int concat_read_close(AVFormatContext *avf)
> static int concat_read_header(AVFormatContext *avf)
> {
> ConcatContext *cat = avf->priv_data;
> - uint8_t buf[4096];
> + AVBPrint bp;
> uint8_t *cursor, *keyword;
> - int ret, line = 0, i;
> + int line = 0, i;
> unsigned nb_files_alloc = 0;
> ConcatFile *file = NULL;
> - int64_t time = 0;
> + int64_t ret, time = 0;
>
> - while (1) {
> - if ((ret = ff_get_line(avf->pb, buf, sizeof(buf))) <= 0)
> - break;
> + av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
> +
> + while ((ret = ff_read_line_to_bprint_overwrite(avf->pb, &bp)) >= 0) {
> line++;
> - cursor = buf;
> + cursor = bp.str;
> keyword = get_keyword(&cursor);
> if (!*keyword || *keyword == '#')
> continue;
> @@ -473,7 +474,7 @@ static int concat_read_header(AVFormatContext *avf)
> FAIL(AVERROR_INVALIDDATA);
> }
> }
> - if (ret < 0)
> + if (ret != AVERROR_EOF && ret < 0)
> goto fail;
> if (!cat->nb_files)
> FAIL(AVERROR_INVALIDDATA);
> @@ -499,9 +500,11 @@ static int concat_read_header(AVFormatContext *avf)
> MATCH_ONE_TO_ONE;
> if ((ret = open_file(avf, 0)) < 0)
> goto fail;
> + av_bprint_finalize(&bp, NULL);
> return 0;
>
> fail:
> + av_bprint_finalize(&bp, NULL);
> concat_read_close(avf);
> return ret;
> }
LGTM, thanks.
Regards,
--
Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
