Hi,
You could make minor? improvements by doing the standard optimizations
of moving various static queries and variable initilizations to
outside of the onPreview method.
For example, most of this code does not need to be executed for every
onPreview method call -
Camera.Parameters parameters = camera.getParameters();
int format = parameters.getPreviewFormat();
//YUV formats require more conversion
if (format == ImageFormat.NV21 /*|| format ==
ImageFormat.YUY2 || format == ImageFormat.NV16*/)
{
int w = parameters.getPreviewSize().width;
int h = parameters.getPreviewSize().height;
...
// Convert YuV to Jpeg
Rect rect = new Rect(0, 0, 320, 240);
ByteArrayOutputStream output_stream = new
ByteArrayOutputStream();
Also you might query camera parameters to see if you can change the
preview frame rate -
http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setPreviewFpsRange(int,
int)
Regards
On Jan 20, 1:44 am, "[email protected]"
<[email protected]> wrote:
> hi,
> I am getting frames from onPreviewFrame, compress to jpeg image
> with YUV and send over the network(TCP),
> but the problem is, i want to increase the frame rate. Now it is 4fps
> but i want 15fps and my image size is 4- 6 kb what can i do to
> increase frame rate, here is my code
>
> public void onPreviewFrame(byte[] data, Camera camera) {
>
> Camera.Parameters parameters = camera.getParameters();
> int format = parameters.getPreviewFormat();
>
> //YUV formats require more conversion
> if (format == ImageFormat.NV21 /*|| format ==
> ImageFormat.YUY2 || format == ImageFormat.NV16*/)
> {
> int w = parameters.getPreviewSize().width;
> int h = parameters.getPreviewSize().height;
>
> // Get the YuV image
> YuvImage yuv_image = new YuvImage(data, format, w, h,
> null);
> // Convert YuV to Jpeg
> Rect rect = new Rect(0, 0, 320, 240);
> ByteArrayOutputStream output_stream = new
> ByteArrayOutputStream();
> yuv_image.compressToJpeg(rect, 30, output_stream);
> byte[] byt=output_stream.toByteArray();
>
> try {
>
> obj.writeObject(byt);
> obj.flush();
>
> // Log.d(TAG, "onPictureTaken - wrote bytes: "
> +
> data.length);
> } catch (FileNotFoundException e) {
> e.printStackTrace();
> } catch (IOException e) {
> e.printStackTrace();
> } finally {
> }
>
> Preview.this.invalidate();
> }
> }
>
> Thanks and Regards
> umer
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en