You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
fftools/ffmpeg: stop calling check_output_constraints() for streamcopy
That function only contains two checks now - whether the muxer returned EOF and whether the packet timestamp is before requested output start time. The first check is unnecessary, since the packet will just be rejected by the muxer. The second check is better combined with a related check directly in do_streamcopy().
This commit is contained in:
@@ -976,10 +976,14 @@ static void do_streamcopy(InputStream *ist, OutputStream *ost, const AVPacket *p
|
|||||||
!ost->copy_initial_nonkeyframes)
|
!ost->copy_initial_nonkeyframes)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!ost->streamcopy_started && !ost->copy_prior_start) {
|
if (!ost->streamcopy_started) {
|
||||||
if (pkt->pts == AV_NOPTS_VALUE ?
|
if (!ost->copy_prior_start &&
|
||||||
|
(pkt->pts == AV_NOPTS_VALUE ?
|
||||||
ist->pts < ost->ts_copy_start :
|
ist->pts < ost->ts_copy_start :
|
||||||
pkt->pts < av_rescale_q(ost->ts_copy_start, AV_TIME_BASE_Q, ist->st->time_base))
|
pkt->pts < av_rescale_q(ost->ts_copy_start, AV_TIME_BASE_Q, ist->st->time_base)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (of->start_time != AV_NOPTS_VALUE && ist->pts < of->start_time)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1830,8 +1834,7 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo
|
|||||||
|
|
||||||
for (int oidx = 0; oidx < ist->nb_outputs; oidx++) {
|
for (int oidx = 0; oidx < ist->nb_outputs; oidx++) {
|
||||||
OutputStream *ost = ist->outputs[oidx];
|
OutputStream *ost = ist->outputs[oidx];
|
||||||
if (!check_output_constraints(ist, ost) || ost->enc_ctx ||
|
if (ost->enc_ctx || (!pkt && no_eof))
|
||||||
(!pkt && no_eof))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
do_streamcopy(ist, ost, pkt);
|
do_streamcopy(ist, ost, pkt);
|
||||||
|
Reference in New Issue
Block a user