gspca pac7302/pac7311: extract pac_start_frame
PATCH 19/21 gspca pac7302/pac7311: extract pac_start_frame
From: Márton Németh <[email protected]>
Creating the start of the frame is done in the same way for pac7302 and for pac7311. Extract this common part to the pac_start_frame() function.
Signed-off-by Márton Németh <[email protected]>
Cc Thomas Kaiser <[email protected]>
Cc Theodore Kilgore <[email protected]>
Cc Kyle Guinn <[email protected]>
---
drivers/media/video/gspca/pac7311.c +26 -26
@@ -1028,7 +1028,7 @@ static void pac7311_do_autogain(struct g }/* JPEG header, part 1 */ -static const unsigned char pac7311_jpeg_header1[] = { +static const unsigned char pac_jpeg_header1[] = {0xff ,0xd8 ,/* SOI: Start of Image */ 0xff ,0xc0 ,/* SOF0: Start of Frame (Baseline DCT) */
@@ -1039,7 +1039,7 @@ static const unsigned char pac7311_jpeg_ };/* JPEG header, continued */ -static const unsigned char pac7311_jpeg_header2[] = { +static const unsigned char pac_jpeg_header2[] = {0x03 ,/* Number of image components: 3 */ 0x01 ,0x21 ,0x00 ,/* ID=1, Subsampling 1x1, Quantization table: 0 */ 0x02 ,0x11 ,0x01 ,/* ID=2, Subsampling 2x1, Quantization table: 1 */
@@ -1055,6 +1055,26 @@ static const unsigned char pac7311_jpeg_0x00 /* Successive approximation: 0 */ }; +static void pac_start_frame (struct gspca_dev *gspca_dev, +struct gspca_frame *frame, +__u16 lines,__u16 samples_per_line) +{ +unsigned char tmpbuf[4 ]; + +gspca_frame_add (gspca_dev,FIRST_PACKET , frame, + pac_jpeg_header1,sizeof (pac_jpeg_header1)); + + tmpbuf[0 ] = lines >>8 ; + tmpbuf[1 ] = lines &0xff ; + tmpbuf[2 ] = samples_per_line >>8 ; + tmpbuf[3 ] = samples_per_line &0xff ; + +gspca_frame_add (gspca_dev,INTER_PACKET , frame, + tmpbuf,sizeof (tmpbuf)); +gspca_frame_add (gspca_dev,INTER_PACKET , frame, + pac_jpeg_header2,sizeof (pac_jpeg_header2)); +} +/* this function is run at interrupt level */ static void pac7302_sd_pkt_scan(struct gspca_dev *gspca_dev, struct gspca_frame *frame, /* target */
@@ -1066,7 +1086,6 @@ static void pac7302_sd_pkt_scan(struct g sof =pac_find_sof (&sd->sof_read, data, len);if (sof) { -unsigned char tmpbuf[4 ];int n, lum_offset, footer_length;/* 6 bytes after the FF D9 EOF marker a number of lumination
@@ -1103,18 +1122,9 @@ static void pac7302_sd_pkt_scan(struct gatomic_set (&sd->avg_lum,-1 );/* Start the new frame with the jpeg header */ -gspca_frame_add (gspca_dev,FIRST_PACKET , frame, - pac7311_jpeg_header1,sizeof (pac7311_jpeg_header1)); -/* The PAC7302 has the image rotated 90 degrees */ - tmpbuf[0 ] = gspca_dev->width >>8 ; - tmpbuf[1 ] = gspca_dev->width &0xff ; - tmpbuf[2 ] = gspca_dev->height >>8 ; - tmpbuf[3 ] = gspca_dev->height &0xff ; - -gspca_frame_add (gspca_dev,INTER_PACKET , frame, tmpbuf,4 ); -gspca_frame_add (gspca_dev,INTER_PACKET , frame, - pac7311_jpeg_header2,sizeof (pac7311_jpeg_header2)); +pac_start_frame (gspca_dev, frame, + gspca_dev->width, gspca_dev->height); }gspca_frame_add (gspca_dev,INTER_PACKET , frame, data, len); }
@@ -1130,7 +1140,6 @@ static void pac7311_sd_pkt_scan(struct g sof =pac_find_sof (&sd->sof_read, data, len);if (sof) { -unsigned char tmpbuf[4 ];int n, lum_offset, footer_length;/* 6 bytes after the FF D9 EOF marker a number of lumination
@@ -1167,17 +1176,8 @@ static void pac7311_sd_pkt_scan(struct gatomic_set (&sd->avg_lum,-1 );/* Start the new frame with the jpeg header */ -gspca_frame_add (gspca_dev,FIRST_PACKET , frame, - pac7311_jpeg_header1,sizeof (pac7311_jpeg_header1)); - - tmpbuf[0 ] = gspca_dev->height >>8 ; - tmpbuf[1 ] = gspca_dev->height &0xff ; - tmpbuf[2 ] = gspca_dev->width >>8 ; - tmpbuf[3 ] = gspca_dev->width &0xff ; - -gspca_frame_add (gspca_dev,INTER_PACKET , frame, tmpbuf,4 ); -gspca_frame_add (gspca_dev,INTER_PACKET , frame, - pac7311_jpeg_header2,sizeof (pac7311_jpeg_header2)); +pac_start_frame (gspca_dev, frame, + gspca_dev->height, gspca_dev->width); }gspca_frame_add (gspca_dev,INTER_PACKET , frame, data, len); }