Page 1 of 1

error "picture is too late to be displayed" (motiondetect filter)

Posted: 04 Apr 2019 13:36
by vrsevertech
Command

Code: Select all

vlc.exe --video-filter=motiondetect "видеофайл" --verbose=2 --file-logging --logfile=log.txt
on some videos it gives something like:

Code: Select all

motiondetect debug: Counted 4 moving shapes. motiondetect debug: Counted 9 moving shapes. motiondetect debug: Counted 7 moving shapes. motiondetect debug: Counted 8 moving shapes. motiondetect debug: Counted 10 moving shapes. motiondetect debug: Counted 12 moving shapes.
The number of records almost coincides with the number of frames in the video => everything seems to be clear.
But on some videos such messages are popping out:

Code: Select all

main warning: picture is too late to be displayed (missing 24 ms) main debug: picture might be displayed late (missing 8 ms)
and the number of entries is clearly different from the number of frames.
What could be the cause of the error?
or how to parse which logline to which timecode it refers?

Re: error "picture is too late to be displayed" (motiondetect filter)

Posted: 04 Apr 2019 14:48
by unidan
Hi, it is certainly because motiondetect is a CPU filter, so if you're decoding on the GPU it would probably copy to the CPU memory, do the motion detection, and maybe (I'm not sure) copy back to the GPU memory.
You have to patch VLC at the line of the log to know the corresponding timestamp.

Re: error "picture is too late to be displayed" (motiondetect filter)

Posted: 12 Apr 2019 08:28
by vrsevertech
You have to patch VLC at the line of the log to know the corresponding timestamp.
I did not understand. How to do it?

Re: error "picture is too late to be displayed" (motiondetect filter)

Posted: 15 Apr 2019 10:20
by unidan
I did not understand. How to do it?
I meant modify the code itself to get the timestamp, which would be the picture date for this.

Re: error "picture is too late to be displayed" (motiondetect filter)

Posted: 17 May 2020 17:00
by vrsevertech
I did not understand. How to do it?
I meant modify the code itself to get the timestamp, which would be the picture date for this.
please hint how to do this? edit libmotiondetect_plugin.dll? how? downloaded .NET Reflector ( https://www.red-gate.com/products/dotnet-development/reflector/ ) but "libmotiondetect_plugin.dll it's not a .NET modul".

And how to do it in ubuntu?