Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5ecdfb3 authored by Jean-François Moine's avatar Jean-François Moine Committed by Mauro Carvalho Chehab
Browse files

[media] gspca - zc3xx: Discard the partial frames



In some cases, some frames may not end with the JPEG end of frame.
Being not complete, they are now discarded.

Signed-off-by: default avatarJean-François Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 3d244065
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -6821,9 +6821,17 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
{
{
	struct sd *sd = (struct sd *) gspca_dev;
	struct sd *sd = (struct sd *) gspca_dev;


	if (data[0] == 0xff && data[1] == 0xd8) {	/* start of frame */
	/* check the JPEG end of frame */
	if (len >= 3
	 && data[len - 3] == 0xff && data[len - 2] == 0xd9) {
/*fixme: what does the last byte mean?*/
		gspca_frame_add(gspca_dev, LAST_PACKET,
		gspca_frame_add(gspca_dev, LAST_PACKET,
					NULL, 0);
					data, len - 1);
		return;
	}

	/* check the JPEG start of a frame */
	if (data[0] == 0xff && data[1] == 0xd8) {
		/* put the JPEG header in the new frame */
		/* put the JPEG header in the new frame */
		gspca_frame_add(gspca_dev, FIRST_PACKET,
		gspca_frame_add(gspca_dev, FIRST_PACKET,
			sd->jpeg_hdr, JPEG_HDR_SZ);
			sd->jpeg_hdr, JPEG_HDR_SZ);