| 436 | } |
| 437 | |
| 438 | static int64_t trailing_dts(const Scheduler *sch, int count_finished) |
| 439 | { |
| 440 | int64_t min_dts = INT64_MAX; |
| 441 | |
| 442 | for (unsigned i = 0; i < sch->nb_mux; i++) { |
| 443 | const SchMux *mux = &sch->mux[i]; |
| 444 | |
| 445 | for (unsigned j = 0; j < mux->nb_streams; j++) { |
| 446 | const SchMuxStream *ms = &mux->streams[j]; |
| 447 | |
| 448 | if (ms->source_finished && !count_finished) |
| 449 | continue; |
| 450 | if (ms->last_dts == AV_NOPTS_VALUE) |
| 451 | return AV_NOPTS_VALUE; |
| 452 | |
| 453 | min_dts = FFMIN(min_dts, ms->last_dts); |
| 454 | } |
| 455 | } |
| 456 | |
| 457 | return min_dts == INT64_MAX ? AV_NOPTS_VALUE : min_dts; |
| 458 | } |
| 459 | |
| 460 | void sch_remove_filtergraph(Scheduler *sch, int idx) |
| 461 | { |
no outgoing calls
no test coverage detected