Lines Matching refs:subs
112 AVPacket **subs, *sub;
118 sub = q->subs[q->nb_subs - 1];
126 if (q->nb_subs >= INT_MAX/sizeof(*q->subs) - 1)
128 subs = av_fast_realloc(q->subs, &q->allocated_size,
129 (q->nb_subs + 1) * sizeof(*q->subs));
130 if (!subs)
132 q->subs = subs;
140 subs[q->nb_subs++] = sub;
175 const AVPacket *last = q->subs[last_id];
177 if (q->subs[i]->pts == last->pts &&
178 q->subs[i]->duration == last->duration &&
179 q->subs[i]->stream_index == last->stream_index &&
180 !strcmp(q->subs[i]->data, last->data)) {
182 av_packet_free(&q->subs[i]);
185 q->subs[last_id + 1] = q->subs[i];
186 q->subs[i] = NULL;
203 qsort(q->subs, q->nb_subs, sizeof(*q->subs),
207 if (q->subs[i]->duration < 0 && i < q->nb_subs - 1 && q->subs[i + 1]->pts - (uint64_t)q->subs[i]->pts <= INT64_MAX)
208 q->subs[i]->duration = q->subs[i + 1]->pts - q->subs[i]->pts;
221 sub = q->subs[q->current_sub_idx];
244 return q->subs[s1]->pts <= q->subs[s2]->pts ? s1 : s2;
246 if (q->subs[mid]->pts <= ts)
268 for (i = idx; i < q->nb_subs && q->subs[i]->pts < min_ts; i++)
269 if (stream_index == -1 || q->subs[i]->stream_index == stream_index)
271 for (i = idx; i > 0 && q->subs[i]->pts > max_ts; i--)
272 if (stream_index == -1 || q->subs[i]->stream_index == stream_index)
275 ts_selected = q->subs[idx]->pts;
281 int64_t pts = q->subs[i]->pts;
282 if (q->subs[i]->duration <= 0 ||
283 (stream_index != -1 && q->subs[i]->stream_index != stream_index))
285 if (pts >= min_ts && pts > ts_selected - q->subs[i]->duration)
292 if (q->subs[idx]->pts + q->subs[idx]->duration < ts) {
296 int64_t pts = q->subs[i]->pts;
297 if (q->subs[i]->duration <= 0 ||
298 (stream_index != -1 && q->subs[i]->stream_index != stream_index))
300 if (pts + q->subs[i]->duration >= ts) {
313 while (idx > 0 && q->subs[idx - 1]->pts == q->subs[idx]->pts)
326 av_packet_free(&q->subs[i]);
327 av_freep(&q->subs);