Web lists-archives.com

RE: Saving YUVY image from V4L2 buffer to file




Why don't you directly set it with: fmt.fmt.pix.pixelformat =
V4L2_PIX_FMT_BGR24, instead of converting?

Then, save like:

        sprintf( ppmheader, "P6\n#ppm image\n%d %d\n255\n", info->width,
info->height);
        fwrite( ppmheader, 1, strlen(ppmheader), fptr);
        // write out the rows
        for ( i=0; i<info->height; i++)
        {
            //fwrite( &image[info->stride*i], 1, info->stride, fptr);
            for ( j=0; j<info->width; j++ ) {
            fwrite( &image[info->stride*i+j*3+2], 1, 1, fptr);
            fwrite( &image[info->stride*i+j*3+1], 1, 1, fptr);
            fwrite( &image[info->stride*i+j*3+0], 1, 1, fptr);
            }
        }


Charlie X. Liu @ Sensoray Co.


-----Original Message-----
From: video4linux-list-bounces@xxxxxxxxxx
[mailto:video4linux-list-bounces@xxxxxxxxxx] On Behalf Of Owen O' Hehir
Sent: Wednesday, February 03, 2010 10:06 AM
To: video4linux-list@xxxxxxxxxx
Subject: RE: Saving YUVY image from V4L2 buffer to file


Devin,

Many thanks for the quick reply.

Yes I'm getting some sort of an image. When I was experimenting I managed to
get an image but in grayscale & showing multiple copies of the same image
covering the top half of the image. I imagine it was distorted because I was
not converting to RGB correctly.

All the best,

 

Owen




> Date: Wed, 3 Feb 2010 12:54:02 -0500
> Subject: Re: Saving YUVY image from V4L2 buffer to file
> From: dheitmueller@xxxxxxxxxxxxxx
> To: oo_hehir@xxxxxxxxxxx
> CC: video4linux-list@xxxxxxxxxx
> 
> On Wed, Feb 3, 2010 at 12:40 PM, Owen O' Hehir <oo_hehir@xxxxxxxxxxx>
wrote:
> >
> > Hello All,
> >
> > I'm trying to save a captured image from a USB camera to a file. The
capture is based on V4L2 video capture example from the V4L2 API spec.
http://v4l2spec.bytesex.org/spec/a16706.htm
> >
> > The V4L2 set pointers (via mmap) to to the USB image (in YUV 4:2:2
(YUYV)) and as far as I can see the simplest way to save the image in a
recognised format is in RGB format, specifically in PPM (Netpbm color image
format).
> >
> > As such I've expanded the process_image function:
> 
> Independent of the conversion function, are you sure you are getting a
> valid YUV frame at all?  A completely green frame is what you will get
> back if you had a buffer which was memset(0).  Hence it's possible
> that the data you are passing *into* your conversion function is
> completely blank.
> 
> Devin
> 
> -- 
> Devin J. Heitmueller - Kernel Labs
> http://www.kernellabs.com
 		 	   		  
_________________________________________________________________
Hotmail: Powerful Free email with security by Microsoft.
https://signup.live.com/signup.aspx?id=60969
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list