<v4l2src0> lost frames detected

Nicolas Dufresne nicolas at ndufresne.ca
Mon Jun 22 19:25:02 UTC 2020

Le lundi 22 juin 2020 à 12:35 -0500, Aniket0987 a écrit :
> Hi Nicolas, 
> Thanks for the reply.
> I've tried removing do-timestamp and jpegparse. I've also added drop-only
> property for videorate. Things are now working fine for 5 fps. No lost
> frames detected warning and things work fine. However, when I switch to 30
> fps. I start getting following after 8-9 minutes.
> 0:10:02.477399906  2534  0x183ecc0 WARN            videodecoder gstvideodecoder.c:4136:_gst_video_decoder_error:<jpegdec0> error: Failed to
> decode JPEG image
> 0:10:02.477503386  2534  0x183ecc0 WARN            videodecoder gstvideodecoder.c:4138:_gst_video_decoder_error:<jpegdec0> error: Decode error #53: Not a JPEG file: starts with 0x0f 0x34
> 0:10:02.477808862  2534  0x183ecc0 DEBUG                v4l2src gstv4l2src.c:925:gst_v4l2src_create:<v4l2src0> ts: 1:30:18.919096000 now 1:30:18.941779324 delay 0:00:00.022683324
> 0:10:02.477902305  2534  0x183ecc0 INFO                 v4l2src gstv4l2src.c:961:gst_v4l2src_create:<v4l2src0> sync to 0:05:04.533330288 out ts 0:10:01.930956297
> 0:10:02.477975748  2534  0x183ecc0 WARN                 v4l2src gstv4l2src.c:980:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 1 - ts: 0:10:01.930956297
> Could this be due to removal of jpegparse?

The driver has been giving you a corrupted JPEG. Imho, for compressed image, UVC
driver should report the error but not return the corrupted buffer. But eh,
drivers have bugs, just like userspace do.

Now, let's see if this corrupted buffer is minimally reported by the driver. If
it is, v4l2src will produce buffers with the GST_BUFFER_FLAG_CORRUPTED flag set,
and that can be dropped using identity.

  v4l2src ! identity drop-buffer-flags=corrupted ! jpegedec ! ...

It's better to drop as jpegdec can be pretty fragile. It won't make the lost
frame go away. It's not clear if your camera queue goes full, or if some
firmware error happens (corrupted frames) and then the drops are just caused by
a HW reset. You would have to investigate at a kernel level at this point.


More information about the gstreamer-devel mailing list