Difference between revisions of "AppleJPEGDriver"

From iPhone Development Wiki
Jump to: navigation, search
(Created page with ''''AppleJPEGDriver''' is a kernel-extension providing accelerating encoding and decoding JPEG images via {{fwlink|IOSurface}}s, esp. for those with [http://en.wikipedia.org/wiki/…')
 
(Methods: added knowledge acquired by Cycorder)
Line 18: Line 18:
 
struct JPEGDriverArgs {
 
struct JPEGDriverArgs {
 
   int must_be_zero_1;
 
   int must_be_zero_1;
   IOSurfaceID src_surface;
+
   IOSurfaceID src_surface /*in*/;
   size_t src_size;
+
   size_t src_size /*in*/;
 
   int must_be_zero_2;
 
   int must_be_zero_2;
   IOSurfaceID dest_surface;
+
   IOSurfaceID dest_surface /*in*/;
   size_t dest_size;
+
   size_t dest_size /*in*/;
   void* unknown_1;
+
   size_t result_size /*out*/;
   size_t dest_width;
+
   size_t dest_width /*in*/;
   size_t dest_height;
+
   size_t dest_height /*in*/;
   void* unknown_2;
+
   int normally_four_2 /*in*/;
 
};
 
};
 
</source>
 
</source>
  
 
{{occlass|library=IOKit.framework|navbox=1}}
 
{{occlass|library=IOKit.framework|navbox=1}}

Revision as of 12:29, 9 February 2010

AppleJPEGDriver is a kernel-extension providing accelerating encoding and decoding JPEG images via IOSurfaces, esp. for those with YUV color space. It powers the AppleJPEG for decoding, Camera for encoding, and Celestial for both.

Methods

Selector Action Input Output
0 initializeDecoder - -
1 startDecoder struct JPEGDriverArgs (40 bytes) 40 bytes of stuff
2 initializeEncoder - -
3 startEncoder struct JPEGDriverArgs (40 bytes) 40 bytes of stuff.

where

struct JPEGDriverArgs {
  int must_be_zero_1;
  IOSurfaceID src_surface /*in*/;
  size_t src_size /*in*/;
  int must_be_zero_2;
  IOSurfaceID dest_surface /*in*/;
  size_t dest_size /*in*/;
  size_t result_size /*out*/;
  size_t dest_width /*in*/;
  size_t dest_height /*in*/;
  int normally_four_2 /*in*/;
};