Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2012-12-28 04:15:01 +0400
committerClément Bœsch <ubitux@gmail.com>2012-12-31 01:58:58 +0400
commitd9ac8d296725fef605989b4c9d297fb65c40e2e5 (patch)
treefd6a6663d37da958ffe7484964972ae72ce57672 /libavformat/srtdec.c
parent67286fa98b1ebbf005de784b47852f8d429d03c8 (diff)
lavf: move srtdec:read_chunk() to subtitles utils.
This function can be useful for various other subtitles formats.
Diffstat (limited to 'libavformat/srtdec.c')
-rw-r--r--libavformat/srtdec.c48
1 files changed, 1 insertions, 47 deletions
diff --git a/libavformat/srtdec.c b/libavformat/srtdec.c
index 1cc8b158d1..559aa4a4d7 100644
--- a/libavformat/srtdec.c
+++ b/libavformat/srtdec.c
@@ -71,52 +71,6 @@ static int64_t get_pts(const char **buf, int *duration,
return AV_NOPTS_VALUE;
}
-static inline int is_eol(char c)
-{
- return c == '\r' || c == '\n';
-}
-
-static void read_chunk(AVIOContext *pb, AVBPrint *buf)
-{
- char eol_buf[5];
- int n = 0, i = 0, nb_eol = 0;
-
- av_bprint_clear(buf);
-
- for (;;) {
- char c = avio_r8(pb);
-
- if (!c)
- break;
-
- /* ignore all initial line breaks */
- if (n == 0 && is_eol(c))
- continue;
-
- /* line break buffering: we don't want to add the trailing \r\n */
- if (is_eol(c)) {
- nb_eol += c == '\n';
- if (nb_eol == 2)
- break;
- eol_buf[i++] = c;
- if (i == sizeof(eol_buf) - 1)
- break;
- continue;
- }
-
- /* only one line break followed by data: we flush the line breaks
- * buffer */
- if (i) {
- eol_buf[i] = 0;
- av_bprintf(buf, "%s", eol_buf);
- i = nb_eol = 0;
- }
-
- av_bprint_chars(buf, c, 1);
- n++;
- }
-}
-
static int srt_read_header(AVFormatContext *s)
{
SRTContext *srt = s->priv_data;
@@ -133,7 +87,7 @@ static int srt_read_header(AVFormatContext *s)
av_bprint_init(&buf, 0, AV_BPRINT_SIZE_UNLIMITED);
while (!url_feof(s->pb)) {
- read_chunk(s->pb, &buf);
+ ff_subtitles_read_chunk(s->pb, &buf);
if (buf.len) {
int64_t pos = avio_tell(s->pb);