Le duodi 2 frimaire, an CCXXIV, Mort Yao a écrit : > Whenever an error occurred in get_input_packet(), process_input() used to > attempt to mark all outputs that didn't go through lavfi as finished. However, > for a concat demuxer, doing so might drop the rest of input streams (in case > of > an error such like EINVAL returned by av_read_frame()) and produce incomplete > outputs unexpectedly. This patch shall allow for only finishing outputs when > end-of-file encountered, by checking whether the return code is AVERROR_EOF.
I do not think this is acceptable as default behaviour. Some (most?) errors will persist: not marking the stream finished will let ffmpeg try over and over again to read a packet from the same place in the same file. It could be a per-stream or per-file option, though. > - for (i = 0; i < ifile->nb_streams; i++) { > - ist = input_streams[ifile->ist_index + i]; > - if (ist->decoding_needed) { > - ret = process_input_packet(ist, NULL, 0); > - if (ret>0) > - return 0; > - } > + } else { > + for (i = 0; i < ifile->nb_streams; i++) { > + ist = input_streams[ifile->ist_index + i]; > + if (ist->decoding_needed) { > + ret = process_input_packet(ist, NULL, 0); > + if (ret>0) > + return 0; In the future, please remember to reindent blocks of lines in a separate patch, that makes the functional patch much easier to check. Regards, -- Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel