[Libav-user] CUVID and "broken" inputs

Gabriele Greco gabriele.greco at hudl.com
Wed Sep 2 10:58:29 EEST 2020


With some broken h264/h265 files when decoding with NVIDIA cuvid sometimes the decoder fails, in a few cases the error is fatal for the decoding process and I can fallback to the software decoding (that is far more robust, but since I'm going to re-encode with nvenc I cannot keep as default), but there are a few files that causes error like this:

Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: Error while decoding stream #0:0: Generic error in an external library
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: [h264_cuvid @ 0x7f8c4a4d8f40] cuvid decode callback error
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: Error while decoding stream #0:0: Generic error in an external library
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: [h264_cuvid @ 0x7f8c4a4d8f40] cuvid decode callback error
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: Error while decoding stream #0:0: Generic error in an external library
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: [h264_cuvid @ 0x7f8c4a4d8f40] cuvid decode callback error
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: Error while decoding stream #0:0: Generic error in an external library
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: [h264_cuvid @ 0x7f8c4a4d8f40] cuvid decode callback error
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: Error while decoding stream #0:0: Generic error in an external library
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: [h264_cuvid @ 0x7f8c4a4d8f40] cuvid decode callback error
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: Error while decoding stream #0:0: Generic error in an external library
Sep  1 15:44:33 ip-172-31-52-212 upworker[1890]: [h264_cuvid @ 0x7f8c4a4d8f40] cuvid decode callback error
[...]

... that are not "fatal", so the decoder continue to run without decoding a single frame until it fills the disk of the machine with the syslog file.

I'd like a way to make this error fatal, is there an API to do so?

My failback solution, if there is no way to achive this is to modify the log callback hook to stop the encoding process if the error is "cuvid decode callback error" but I'd like a cleaner approach!

Thanks in advance,
 Gabriele Greco
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20200902/367bead0/attachment.html>


More information about the Libav-user mailing list