[FFmpeg-devel] Question on the “decode_failed” logic in ffmpeg.c:

Geek.Song ffmpeg at gmail.com
Thu Jul 13 15:10:21 EEST 2017


On Wed, Jul 12, 2017 at 1:50 PM, Steven Liu <lingjiujianke at gmail.com> wrote:
> 2017-07-12 12:32 GMT+08:00 Geek.Song <ffmpeg at gmail.com>:
>> In ffmpeg.c:
>> //
>> // @ static int process_input_packet(InputStream *ist, const AVPacket
>> *pkt, int no_eof)
>> //
>>  if (ret < 0) {
>>             if (decode_failed) {
>>                 av_log(NULL, AV_LOG_ERROR, "Error while decoding
>> stream #%d:%d: %s\n",
>>                        ist->file_index, ist->st->index, av_err2str(ret));
>>             } else {
>>                 av_log(NULL, AV_LOG_FATAL, "Error while processing the decoded "
>>                        "data for stream #%d:%d\n", ist->file_index,
>> ist->st->index);
>>             }
>>             if (!decode_failed || exit_on_error)
>>                 exit_program(1);
>>             break;
>> }
>>
>>
>> why is:
>> if (!decode_failed || exit_on_error)
>>     exit_program(1);
>>
>> I think it should be:
> If it should be :if (decode_failed || exit_on_error)
> maybe only if (exit_on_error) than that, isn't it?

NO.

They are not identical.


More information about the ffmpeg-devel mailing list