X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fsrtdec.c;h=3bee3c726fd57476f46c12517a0693f6d9b10f6b;hb=cab63a8b594cdc365bb2581a12b3ac8e6dd480b2;hp=42eae322d15c2b05477864c474085ad6c53717c4;hpb=2c77c90684e24ef16f7e7c4462e011434cee6a98;p=ffmpeg diff --git a/libavcodec/srtdec.c b/libavcodec/srtdec.c index 42eae322d15..3bee3c726fd 100644 --- a/libavcodec/srtdec.c +++ b/libavcodec/srtdec.c @@ -2,25 +2,26 @@ * SubRip subtitle decoder * Copyright (c) 2010 Aurelien Jacobs * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav 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. * - * FFmpeg is distributed in the hope that it will be useful, + * Libav 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 FFmpeg; if not, write to the Free Software + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "libavutil/avstring.h" -#include "libavcore/parseutils.h" +#include "libavutil/common.h" +#include "libavutil/parseutils.h" #include "avcodec.h" #include "ass.h" @@ -40,7 +41,7 @@ enum { PARAM_NUMBER }; -typedef struct { +typedef struct SrtStack { char tag[128]; char param[PARAM_NUMBER][128]; } SrtStack; @@ -65,7 +66,7 @@ static const char *srt_to_ass(AVCodecContext *avctx, char *out, char *out_end, out += snprintf(out, out_end-out, "{\\an1}{\\pos(%d,%d)}", x1, y1); } - for (; *in && out < out_end && !end; in++) { + for (; out < out_end && !end && *in; in++) { switch (*in) { case '\r': break; @@ -94,7 +95,7 @@ static const char *srt_to_ass(AVCodecContext *avctx, char *out, char *out_end, break; case '<': tag_close = in[1] == '/'; - if (sscanf(in+tag_close+1, "%128[^>]>%n%c", buffer, &len,&c) >= 2) { + if (sscanf(in+tag_close+1, "%127[^>]>%n%c", buffer, &len,&c) >= 2) { if ((param = strchr(buffer, ' '))) *param++ = 0; if ((!tag_close && sptr < FF_ARRAY_ELEMS(stack)) || @@ -110,7 +111,7 @@ static const char *srt_to_ass(AVCodecContext *avctx, char *out, char *out_end, for (j=sptr-2; j>=0; j--) if (stack[j].param[i][0]) { out += snprintf(out, out_end-out, - stack[j].param[i]); + "%s", stack[j].param[i]); break; } } else { @@ -146,7 +147,7 @@ static const char *srt_to_ass(AVCodecContext *avctx, char *out, char *out_end, for (i=0; idata; + const char *end = avpkt->data + avpkt->size; if (avpkt->size <= 0) return avpkt->size; ff_ass_init(sub); - while (*ptr) { + while (ptr < end && *ptr) { ptr = read_ts(ptr, &ts_start, &ts_end, &x1, &y1, &x2, &y2); if (!ptr) break; @@ -230,11 +232,11 @@ static int srt_decode_frame(AVCodecContext *avctx, return avpkt->size; } -AVCodec srt_decoder = { +AVCodec ff_srt_decoder = { .name = "srt", .long_name = NULL_IF_CONFIG_SMALL("SubRip subtitle"), .type = AVMEDIA_TYPE_SUBTITLE, - .id = CODEC_ID_SRT, + .id = AV_CODEC_ID_SRT, .init = ff_ass_subtitle_header_default, .decode = srt_decode_frame, };