Hi, (Ivan, I am sending this mail to you directly because you said you are the maintainer of QSV related code in a recent mail. Apologize if this is inappropriate.. )
I am trying to use h264_qsv to transcode a MP4 file. This is my command: ffmpeg -c:v h264_qsv -i input.mp4 -look_ahead 0 -c:v h264_qsv -b:v 800k -maxrate 1600k -preset fast output.mp4 It always stucks in this loop <https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/qsvenc.c#L970>. It works if I change the command to ffmpeg -i input.mp4 -look_ahead 0 -c:v h264_qsv -b:v 800k -maxrate 1600k -preset fast output.mp4 (not using qsv for decoding). Looks like the decoding and encoding were contending for the resources and there is a deadlock or sth. like that.. I tried to debug it a bit by comparing ffmpeg code with intel media SDK. There is sth. I don't understand. Not sure whether it's related.. In ffmpeg, we decode the frame in a loop <https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/qsvdec.c#L357>, it sleeps and retries as long as MFXVideoDECODE_DecodeFrameAsync returns busy. In intel media SDK sample_decode, it calls SyncOperation when MFXVideoDECODE_DecodeFrameAsync returns busy. Could this be the cause? _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel