33 for (i = 0; i < 2; i++)
35 if (strncmp(
"\xFF\xFE", r->
buf, 2) == 0) {
38 }
else if (strncmp(
"\xFE\xFF", r->
buf, 2) == 0) {
43 if (strncmp(
"\xEF\xBB\xBF", r->
buf, 3) == 0) {
85 for ( ; size > 0; size--)
121 memcpy(sub->
data + old_len, event, len);
137 memcpy(sub->
data, event, len);
149 return s1->
pos > s2->
pos ? 1 : -1;
151 return s1->
pts > s2->
pts ? 1 : -1;
161 return s1->
pts > s2->
pts ? 1 : -1;
163 return s1->
pos > s2->
pos ? 1 : -1;
173 for (i = 0; i < q->
nb_subs; i++)
216 int64_t min_ts, int64_t ts, int64_t max_ts,
int flags)
221 if (ts < 0 || ts >= q->
nb_subs)
233 for (i = idx; i > 0 && q->
subs[i].
pts > max_ts; i--)
237 ts_selected = q->
subs[idx].
pts;
238 if (ts_selected < min_ts || ts_selected > max_ts)
242 for (i = idx - 1; i >= 0; i--) {
247 if (pts >= min_ts && pts > ts_selected - q->
subs[i].
duration)
258 if (stream_index == -1)
271 for (i = 0; i < q->
nb_subs; i++)
287 end_chr = *c ==
'<' ?
'>' :
'<';
292 }
while (*c != end_chr && *c);
293 if (end_chr ==
'>') {
303 const int len = strlen(attr);
309 in_quotes ^= *s ==
'"';
315 return s + len + 1 + (s[len + 1] ==
'"');
322 return c ==
'\r' || c ==
'\n';
327 char eol_buf[5], last_was_cr = 0;
328 int n = 0, i = 0, nb_eol = 0;
344 nb_eol += c ==
'\n' || last_was_cr;
348 if (i ==
sizeof(eol_buf) - 1)
350 last_was_cr = c ==
'\r';
381 while (cur + 1 < size) {
385 if (c ==
'\r' || c ==
'\n')