Merge branch 'main' into dev

This commit is contained in:
DRC
2024-09-03 09:27:04 -04:00
3 changed files with 1062 additions and 1062 deletions

View File

@@ -271,27 +271,27 @@ Functions</h2></td></tr>
<tr class="memitem:ga69c09d39f97ec30250ad3605ace7e5df" id="r_ga69c09d39f97ec30250ad3605ace7e5df"><td class="memItemLeft" align="right" valign="top">DLLEXPORT <a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga69c09d39f97ec30250ad3605ace7e5df">tj3Init</a> (int initType)</td></tr>
<tr class="memdesc:ga69c09d39f97ec30250ad3605ace7e5df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new TurboJPEG instance. <br /></td></tr>
<tr class="separator:ga69c09d39f97ec30250ad3605ace7e5df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53fbadf4560e95a65b8f5ab81703fe82" id="r_ga53fbadf4560e95a65b8f5ab81703fe82"><td class="memItemLeft" align="right" valign="top">DLLEXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga53fbadf4560e95a65b8f5ab81703fe82">tj3Destroy</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle)</td></tr>
<tr class="memdesc:ga53fbadf4560e95a65b8f5ab81703fe82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a TurboJPEG instance. <br /></td></tr>
<tr class="separator:ga53fbadf4560e95a65b8f5ab81703fe82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a23ad0776c5333cda0d7c6d826e9d29" id="r_ga5a23ad0776c5333cda0d7c6d826e9d29"><td class="memItemLeft" align="right" valign="top">DLLEXPORT char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga5a23ad0776c5333cda0d7c6d826e9d29">tj3GetErrorStr</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle)</td></tr>
<tr class="memdesc:ga5a23ad0776c5333cda0d7c6d826e9d29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a descriptive error message explaining why the last command failed. <br /></td></tr>
<tr class="separator:ga5a23ad0776c5333cda0d7c6d826e9d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8c8279f1415fe425ff30dbbc56013bd" id="r_gab8c8279f1415fe425ff30dbbc56013bd"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gab8c8279f1415fe425ff30dbbc56013bd">tj3GetErrorCode</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle)</td></tr>
<tr class="memdesc:gab8c8279f1415fe425ff30dbbc56013bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a code indicating the severity of the last error. <br /></td></tr>
<tr class="separator:gab8c8279f1415fe425ff30dbbc56013bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddf92640bfee3e8622218c713e77e7db" id="r_gaddf92640bfee3e8622218c713e77e7db"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gaddf92640bfee3e8622218c713e77e7db">tj3Set</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, int param, int value)</td></tr>
<tr class="memdesc:gaddf92640bfee3e8622218c713e77e7db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a parameter. <br /></td></tr>
<tr class="separator:gaddf92640bfee3e8622218c713e77e7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34af9ba3183bdf0ec7c8f47bb9a4c84f" id="r_ga34af9ba3183bdf0ec7c8f47bb9a4c84f"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga34af9ba3183bdf0ec7c8f47bb9a4c84f">tj3Get</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, int param)</td></tr>
<tr class="memdesc:ga34af9ba3183bdf0ec7c8f47bb9a4c84f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a parameter. <br /></td></tr>
<tr class="separator:ga34af9ba3183bdf0ec7c8f47bb9a4c84f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2cc418a2dab709ad7f30f5b25905f138" id="r_ga2cc418a2dab709ad7f30f5b25905f138"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga2cc418a2dab709ad7f30f5b25905f138">tj3Compress8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga2cc418a2dab709ad7f30f5b25905f138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a packed-pixel RGB, grayscale, or CMYK image with 2 to 8 bits of data precision per sample into a JPEG image with the same data precision. <br /></td></tr>
<tr class="separator:ga2cc418a2dab709ad7f30f5b25905f138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a1968c384ec7abb6122830253ebf570" id="r_ga9a1968c384ec7abb6122830253ebf570"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga9a1968c384ec7abb6122830253ebf570">tj3Compress12</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const short *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga9a1968c384ec7abb6122830253ebf570"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a packed-pixel RGB, grayscale, or CMYK image with 9 to 12 bits of data precision per sample into a JPEG image with the same data precision. <br /></td></tr>
<tr class="separator:ga9a1968c384ec7abb6122830253ebf570"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77901b71d0471784f318ada31ff4e7bd" id="r_ga77901b71d0471784f318ada31ff4e7bd"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga77901b71d0471784f318ada31ff4e7bd">tj3Compress16</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned short *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga77901b71d0471784f318ada31ff4e7bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a packed-pixel RGB, grayscale, or CMYK image with 13 to 16 bits of data precision per sample into a lossless JPEG image with the same data precision. <br /></td></tr>
<tr class="separator:ga77901b71d0471784f318ada31ff4e7bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga041c870d9c669eb3f385c78f4346c43f" id="r_ga041c870d9c669eb3f385c78f4346c43f"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga041c870d9c669eb3f385c78f4346c43f">tj3CompressFromYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int width, int align, int height, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga041c870d9c669eb3f385c78f4346c43f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress an 8-bit-per-sample unified planar YUV image into an 8-bit-per-sample JPEG image. <br /></td></tr>
<tr class="separator:ga041c870d9c669eb3f385c78f4346c43f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9f5ace3e73805b476c95dda9f8d0cd0" id="r_gac9f5ace3e73805b476c95dda9f8d0cd0"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gac9f5ace3e73805b476c95dda9f8d0cd0">tj3CompressFromYUVPlanes8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *const *srcPlanes, int width, const int *strides, int height, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:gac9f5ace3e73805b476c95dda9f8d0cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a set of 8-bit-per-sample Y, U (Cb), and V (Cr) image planes into an 8-bit-per-sample JPEG image. <br /></td></tr>
<tr class="separator:gac9f5ace3e73805b476c95dda9f8d0cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a2c96d8b47530b6e6050ba6f10b7c57" id="r_ga1a2c96d8b47530b6e6050ba6f10b7c57"><td class="memItemLeft" align="right" valign="top">DLLEXPORT void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga1a2c96d8b47530b6e6050ba6f10b7c57">tj3Alloc</a> (size_t bytes)</td></tr>
<tr class="memdesc:ga1a2c96d8b47530b6e6050ba6f10b7c57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a byte buffer for use with TurboJPEG. <br /></td></tr>
<tr class="separator:ga1a2c96d8b47530b6e6050ba6f10b7c57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddb84fb6c81769e9faa0f5a63b296606" id="r_gaddb84fb6c81769e9faa0f5a63b296606"><td class="memItemLeft" align="right" valign="top">DLLEXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gaddb84fb6c81769e9faa0f5a63b296606">tj3Free</a> (void *buffer)</td></tr>
<tr class="memdesc:gaddb84fb6c81769e9faa0f5a63b296606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a byte buffer previously allocated by TurboJPEG. <br /></td></tr>
<tr class="separator:gaddb84fb6c81769e9faa0f5a63b296606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6285e58e35a35d871d7162ec5a929c4" id="r_gac6285e58e35a35d871d7162ec5a929c4"><td class="memItemLeft" align="right" valign="top">DLLEXPORT size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gac6285e58e35a35d871d7162ec5a929c4">tj3JPEGBufSize</a> (int width, int height, int jpegSubsamp)</td></tr>
<tr class="memdesc:gac6285e58e35a35d871d7162ec5a929c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum size of the buffer (in bytes) required to hold a JPEG image with the given parameters. <br /></td></tr>
<tr class="separator:gac6285e58e35a35d871d7162ec5a929c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -307,12 +307,27 @@ Functions</h2></td></tr>
<tr class="memitem:ga969767ec8180cc3edd99cf507f87299b" id="r_ga969767ec8180cc3edd99cf507f87299b"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga969767ec8180cc3edd99cf507f87299b">tj3YUVPlaneHeight</a> (int componentID, int height, int subsamp)</td></tr>
<tr class="memdesc:ga969767ec8180cc3edd99cf507f87299b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The plane height of a YUV image plane with the given parameters. <br /></td></tr>
<tr class="separator:ga969767ec8180cc3edd99cf507f87299b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a8d50f130bde10f0a04030f8cc59936" id="r_ga2a8d50f130bde10f0a04030f8cc59936"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga2a8d50f130bde10f0a04030f8cc59936">tj3EncodeYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char *dstBuf, int align)</td></tr>
<tr class="memdesc:ga2a8d50f130bde10f0a04030f8cc59936"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode an 8-bit-per-sample packed-pixel RGB or grayscale image into an 8-bit-per-sample unified planar YUV image. <br /></td></tr>
<tr class="separator:ga2a8d50f130bde10f0a04030f8cc59936"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2cc418a2dab709ad7f30f5b25905f138" id="r_ga2cc418a2dab709ad7f30f5b25905f138"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga2cc418a2dab709ad7f30f5b25905f138">tj3Compress8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga2cc418a2dab709ad7f30f5b25905f138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a packed-pixel RGB, grayscale, or CMYK image with 2 to 8 bits of data precision per sample into a JPEG image with the same data precision. <br /></td></tr>
<tr class="separator:ga2cc418a2dab709ad7f30f5b25905f138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a1968c384ec7abb6122830253ebf570" id="r_ga9a1968c384ec7abb6122830253ebf570"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga9a1968c384ec7abb6122830253ebf570">tj3Compress12</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const short *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga9a1968c384ec7abb6122830253ebf570"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a packed-pixel RGB, grayscale, or CMYK image with 9 to 12 bits of data precision per sample into a JPEG image with the same data precision. <br /></td></tr>
<tr class="separator:ga9a1968c384ec7abb6122830253ebf570"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77901b71d0471784f318ada31ff4e7bd" id="r_ga77901b71d0471784f318ada31ff4e7bd"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga77901b71d0471784f318ada31ff4e7bd">tj3Compress16</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned short *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga77901b71d0471784f318ada31ff4e7bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a packed-pixel RGB, grayscale, or CMYK image with 13 to 16 bits of data precision per sample into a lossless JPEG image with the same data precision. <br /></td></tr>
<tr class="separator:ga77901b71d0471784f318ada31ff4e7bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9f5ace3e73805b476c95dda9f8d0cd0" id="r_gac9f5ace3e73805b476c95dda9f8d0cd0"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gac9f5ace3e73805b476c95dda9f8d0cd0">tj3CompressFromYUVPlanes8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *const *srcPlanes, int width, const int *strides, int height, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:gac9f5ace3e73805b476c95dda9f8d0cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress a set of 8-bit-per-sample Y, U (Cb), and V (Cr) image planes into an 8-bit-per-sample JPEG image. <br /></td></tr>
<tr class="separator:gac9f5ace3e73805b476c95dda9f8d0cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga041c870d9c669eb3f385c78f4346c43f" id="r_ga041c870d9c669eb3f385c78f4346c43f"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga041c870d9c669eb3f385c78f4346c43f">tj3CompressFromYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int width, int align, int height, unsigned char **jpegBuf, size_t *jpegSize)</td></tr>
<tr class="memdesc:ga041c870d9c669eb3f385c78f4346c43f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compress an 8-bit-per-sample unified planar YUV image into an 8-bit-per-sample JPEG image. <br /></td></tr>
<tr class="separator:ga041c870d9c669eb3f385c78f4346c43f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2e9df38790e9bddc249d04cb158a4cf" id="r_gae2e9df38790e9bddc249d04cb158a4cf"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gae2e9df38790e9bddc249d04cb158a4cf">tj3EncodeYUVPlanes8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char **dstPlanes, int *strides)</td></tr>
<tr class="memdesc:gae2e9df38790e9bddc249d04cb158a4cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode an 8-bit-per-sample packed-pixel RGB or grayscale image into separate 8-bit-per-sample Y, U (Cb), and V (Cr) image planes. <br /></td></tr>
<tr class="separator:gae2e9df38790e9bddc249d04cb158a4cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a8d50f130bde10f0a04030f8cc59936" id="r_ga2a8d50f130bde10f0a04030f8cc59936"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga2a8d50f130bde10f0a04030f8cc59936">tj3EncodeYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int width, int pitch, int height, int pixelFormat, unsigned char *dstBuf, int align)</td></tr>
<tr class="memdesc:ga2a8d50f130bde10f0a04030f8cc59936"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode an 8-bit-per-sample packed-pixel RGB or grayscale image into an 8-bit-per-sample unified planar YUV image. <br /></td></tr>
<tr class="separator:ga2a8d50f130bde10f0a04030f8cc59936"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96d2c4b3432f9d88ad14758ae240b8d1" id="r_ga96d2c4b3432f9d88ad14758ae240b8d1"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga96d2c4b3432f9d88ad14758ae240b8d1">tj3DecompressHeader</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *jpegBuf, size_t jpegSize)</td></tr>
<tr class="memdesc:ga96d2c4b3432f9d88ad14758ae240b8d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve information about a JPEG image without decompressing it, or prime the decompressor with quantization and Huffman tables. <br /></td></tr>
<tr class="separator:ga96d2c4b3432f9d88ad14758ae240b8d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -334,27 +349,21 @@ Functions</h2></td></tr>
<tr class="memitem:gaa074e63f9beb0b3ff42b833a4049df6e" id="r_gaa074e63f9beb0b3ff42b833a4049df6e"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gaa074e63f9beb0b3ff42b833a4049df6e">tj3Decompress16</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *jpegBuf, size_t jpegSize, unsigned short *dstBuf, int pitch, int pixelFormat)</td></tr>
<tr class="memdesc:gaa074e63f9beb0b3ff42b833a4049df6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress a lossless JPEG image with 13 to 16 bits of data precision per sample into a packed-pixel RGB, grayscale, or CMYK image with the same data precision. <br /></td></tr>
<tr class="separator:gaa074e63f9beb0b3ff42b833a4049df6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e6bf6a19fec3f9fa7534348879d8320" id="r_ga1e6bf6a19fec3f9fa7534348879d8320"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga1e6bf6a19fec3f9fa7534348879d8320">tj3DecompressToYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *jpegBuf, size_t jpegSize, unsigned char *dstBuf, int align)</td></tr>
<tr class="memdesc:ga1e6bf6a19fec3f9fa7534348879d8320"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress an 8-bit-per-sample JPEG image into an 8-bit-per-sample unified planar YUV image. <br /></td></tr>
<tr class="separator:ga1e6bf6a19fec3f9fa7534348879d8320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga934373482dbbf257f2280505b6ff4fb5" id="r_ga934373482dbbf257f2280505b6ff4fb5"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga934373482dbbf257f2280505b6ff4fb5">tj3DecompressToYUVPlanes8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *jpegBuf, size_t jpegSize, unsigned char **dstPlanes, int *strides)</td></tr>
<tr class="memdesc:ga934373482dbbf257f2280505b6ff4fb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress an 8-bit-per-sample JPEG image into separate 8-bit-per-sample Y, U (Cb), and V (Cr) image planes. <br /></td></tr>
<tr class="separator:ga934373482dbbf257f2280505b6ff4fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1eb574f38b1c1de43a6c7aafcf68d8c" id="r_gaa1eb574f38b1c1de43a6c7aafcf68d8c"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gaa1eb574f38b1c1de43a6c7aafcf68d8c">tj3DecodeYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int align, unsigned char *dstBuf, int width, int pitch, int height, int pixelFormat)</td></tr>
<tr class="memdesc:gaa1eb574f38b1c1de43a6c7aafcf68d8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode an 8-bit-per-sample unified planar YUV image into an 8-bit-per-sample packed-pixel RGB or grayscale image. <br /></td></tr>
<tr class="separator:gaa1eb574f38b1c1de43a6c7aafcf68d8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e6bf6a19fec3f9fa7534348879d8320" id="r_ga1e6bf6a19fec3f9fa7534348879d8320"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga1e6bf6a19fec3f9fa7534348879d8320">tj3DecompressToYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *jpegBuf, size_t jpegSize, unsigned char *dstBuf, int align)</td></tr>
<tr class="memdesc:ga1e6bf6a19fec3f9fa7534348879d8320"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompress an 8-bit-per-sample JPEG image into an 8-bit-per-sample unified planar YUV image. <br /></td></tr>
<tr class="separator:ga1e6bf6a19fec3f9fa7534348879d8320"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad366f1915f82c1ad4e7e37ebe073ca89" id="r_gad366f1915f82c1ad4e7e37ebe073ca89"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gad366f1915f82c1ad4e7e37ebe073ca89">tj3DecodeYUVPlanes8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *const *srcPlanes, const int *strides, unsigned char *dstBuf, int width, int pitch, int height, int pixelFormat)</td></tr>
<tr class="memdesc:gad366f1915f82c1ad4e7e37ebe073ca89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode a set of 8-bit-per-sample Y, U (Cb), and V (Cr) image planes into an 8-bit-per-sample packed-pixel RGB or grayscale image. <br /></td></tr>
<tr class="separator:gad366f1915f82c1ad4e7e37ebe073ca89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1eb574f38b1c1de43a6c7aafcf68d8c" id="r_gaa1eb574f38b1c1de43a6c7aafcf68d8c"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gaa1eb574f38b1c1de43a6c7aafcf68d8c">tj3DecodeYUV8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *srcBuf, int align, unsigned char *dstBuf, int width, int pitch, int height, int pixelFormat)</td></tr>
<tr class="memdesc:gaa1eb574f38b1c1de43a6c7aafcf68d8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode an 8-bit-per-sample unified planar YUV image into an 8-bit-per-sample packed-pixel RGB or grayscale image. <br /></td></tr>
<tr class="separator:gaa1eb574f38b1c1de43a6c7aafcf68d8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff23ba1dcabed456794b844791613920" id="r_gaff23ba1dcabed456794b844791613920"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gaff23ba1dcabed456794b844791613920">tj3Transform</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const unsigned char *jpegBuf, size_t jpegSize, int n, unsigned char **dstBufs, size_t *dstSizes, const <a class="el" href="structtjtransform.html">tjtransform</a> *transforms)</td></tr>
<tr class="memdesc:gaff23ba1dcabed456794b844791613920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Losslessly transform a JPEG image into another JPEG image. <br /></td></tr>
<tr class="separator:gaff23ba1dcabed456794b844791613920"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53fbadf4560e95a65b8f5ab81703fe82" id="r_ga53fbadf4560e95a65b8f5ab81703fe82"><td class="memItemLeft" align="right" valign="top">DLLEXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga53fbadf4560e95a65b8f5ab81703fe82">tj3Destroy</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle)</td></tr>
<tr class="memdesc:ga53fbadf4560e95a65b8f5ab81703fe82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a TurboJPEG instance. <br /></td></tr>
<tr class="separator:ga53fbadf4560e95a65b8f5ab81703fe82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a2c96d8b47530b6e6050ba6f10b7c57" id="r_ga1a2c96d8b47530b6e6050ba6f10b7c57"><td class="memItemLeft" align="right" valign="top">DLLEXPORT void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga1a2c96d8b47530b6e6050ba6f10b7c57">tj3Alloc</a> (size_t bytes)</td></tr>
<tr class="memdesc:ga1a2c96d8b47530b6e6050ba6f10b7c57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a byte buffer for use with TurboJPEG. <br /></td></tr>
<tr class="separator:ga1a2c96d8b47530b6e6050ba6f10b7c57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga884023536e70985616126a073f662001" id="r_ga884023536e70985616126a073f662001"><td class="memItemLeft" align="right" valign="top">DLLEXPORT unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga884023536e70985616126a073f662001">tj3LoadImage8</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const char *filename, int *width, int align, int *height, int *pixelFormat)</td></tr>
<tr class="memdesc:ga884023536e70985616126a073f662001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load a packed-pixel image with 2 to 8 bits of data precision per sample from disk into memory. <br /></td></tr>
<tr class="separator:ga884023536e70985616126a073f662001"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -373,15 +382,6 @@ Functions</h2></td></tr>
<tr class="memitem:ga0fd87851f4266aca24bf4594dd0c0e71" id="r_ga0fd87851f4266aca24bf4594dd0c0e71"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga0fd87851f4266aca24bf4594dd0c0e71">tj3SaveImage16</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle, const char *filename, const unsigned short *buffer, int width, int pitch, int height, int pixelFormat)</td></tr>
<tr class="memdesc:ga0fd87851f4266aca24bf4594dd0c0e71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save a packed-pixel image with 13 to 16 bits of data precision per sample from memory to disk. <br /></td></tr>
<tr class="separator:ga0fd87851f4266aca24bf4594dd0c0e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddb84fb6c81769e9faa0f5a63b296606" id="r_gaddb84fb6c81769e9faa0f5a63b296606"><td class="memItemLeft" align="right" valign="top">DLLEXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gaddb84fb6c81769e9faa0f5a63b296606">tj3Free</a> (void *buffer)</td></tr>
<tr class="memdesc:gaddb84fb6c81769e9faa0f5a63b296606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a byte buffer previously allocated by TurboJPEG. <br /></td></tr>
<tr class="separator:gaddb84fb6c81769e9faa0f5a63b296606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a23ad0776c5333cda0d7c6d826e9d29" id="r_ga5a23ad0776c5333cda0d7c6d826e9d29"><td class="memItemLeft" align="right" valign="top">DLLEXPORT char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#ga5a23ad0776c5333cda0d7c6d826e9d29">tj3GetErrorStr</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle)</td></tr>
<tr class="memdesc:ga5a23ad0776c5333cda0d7c6d826e9d29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a descriptive error message explaining why the last command failed. <br /></td></tr>
<tr class="separator:ga5a23ad0776c5333cda0d7c6d826e9d29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8c8279f1415fe425ff30dbbc56013bd" id="r_gab8c8279f1415fe425ff30dbbc56013bd"><td class="memItemLeft" align="right" valign="top">DLLEXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___turbo_j_p_e_g.html#gab8c8279f1415fe425ff30dbbc56013bd">tj3GetErrorCode</a> (<a class="el" href="group___turbo_j_p_e_g.html#ga758d2634ecb4949de7815cba621f5763">tjhandle</a> handle)</td></tr>
<tr class="memdesc:gab8c8279f1415fe425ff30dbbc56013bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a code indicating the severity of the last error. <br /></td></tr>
<tr class="separator:gab8c8279f1415fe425ff30dbbc56013bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
@@ -973,20 +973,20 @@ scalingFactor)</code>. </p>
<p>A point transform value of <code>0</code> is necessary in order to generate a fully lossless JPEG image. (A non-zero point transform value right-shifts the input samples by the specified number of bits, which is effectively a form of lossy color quantization.)</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a249f35f0770792b19f995e603bb17c6f" title="Lossless JPEG.">TJPARAM_LOSSLESS</a>, <a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a781db82741934e8cd008d308597c59d8" title="Data precision (bits per sample)">TJPARAM_PRECISION</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec" name="ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec"></a>TJPARAM_RESTARTBLOCKS&#160;</td><td class="fielddoc"><p>JPEG restart marker interval in MCUs [lossy compression only]. </p>
<tr><td class="fieldname"><a id="ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec" name="ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec"></a>TJPARAM_RESTARTBLOCKS&#160;</td><td class="fielddoc"><p>JPEG restart marker interval in MCUs [lossy compression, lossless transformation]. </p>
<p>The nature of entropy coding is such that a corrupt JPEG image cannot be decompressed beyond the point of corruption unless it contains restart markers. A restart marker stops and restarts the entropy coding algorithm so that, if a JPEG image is corrupted, decompression can resume at the next marker. Thus, adding more restart markers improves the fault tolerance of the JPEG image, but adding too many restart markers can adversely affect the compression ratio and performance.</p>
<p>In typical JPEG images, an MCU (Minimum Coded Unit) is the minimum set of interleaved "data units" (8x8 DCT blocks if the image is lossy or samples if the image is lossless) necessary to represent at least one data unit per component. (For example, an MCU in an interleaved lossy JPEG image that uses 4:2:2 subsampling consists of two luminance blocks followed by one block for each chrominance component.) In single-component or non-interleaved JPEG images, an MCU is the same as a data unit.</p>
<p><b>Value</b></p><ul>
<li>the number of MCUs between each restart marker <em>[default: <code>0</code> (no restart markers)]</em></li>
</ul>
<p>Setting this parameter to a non-zero value sets <a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c" title="JPEG restart marker interval in MCU rows [compression only].">TJPARAM_RESTARTROWS</a> to 0. </p>
<p>Setting this parameter to a non-zero value sets <a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c" title="JPEG restart marker interval in MCU rows [compression, lossless transformation].">TJPARAM_RESTARTROWS</a> to 0. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c" name="ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c"></a>TJPARAM_RESTARTROWS&#160;</td><td class="fielddoc"><p>JPEG restart marker interval in MCU rows [compression only]. </p>
<p>See <a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec" title="JPEG restart marker interval in MCUs [lossy compression only].">TJPARAM_RESTARTBLOCKS</a> for a description of restart markers and MCUs. An MCU row is a row of MCUs spanning the entire width of the image.</p>
<tr><td class="fieldname"><a id="ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c" name="ggaa0f6be63ba78278299c9f5c12031fe82a714367585952fe5c863f0dba5bd37e5c"></a>TJPARAM_RESTARTROWS&#160;</td><td class="fielddoc"><p>JPEG restart marker interval in MCU rows [compression, lossless transformation]. </p>
<p>See <a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec" title="JPEG restart marker interval in MCUs [lossy compression, lossless transformation].">TJPARAM_RESTARTBLOCKS</a> for a description of restart markers and MCUs. An MCU row is a row of MCUs spanning the entire width of the image.</p>
<p><b>Value</b></p><ul>
<li>the number of MCU rows between each restart marker <em>[default: <code>0</code> (no restart markers)]</em></li>
</ul>
<p>Setting this parameter to a non-zero value sets <a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec" title="JPEG restart marker interval in MCUs [lossy compression only].">TJPARAM_RESTARTBLOCKS</a> to 0. </p>
<p>Setting this parameter to a non-zero value sets <a class="el" href="group___turbo_j_p_e_g.html#ggaa0f6be63ba78278299c9f5c12031fe82a343c72883b7160f23f3ef46fc548a0ec" title="JPEG restart marker interval in MCUs [lossy compression, lossless transformation].">TJPARAM_RESTARTBLOCKS</a> to 0. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa0f6be63ba78278299c9f5c12031fe82a4de5c9d7cab5be806143a43c3b0e0877" name="ggaa0f6be63ba78278299c9f5c12031fe82a4de5c9d7cab5be806143a43c3b0e0877"></a>TJPARAM_XDENSITY&#160;</td><td class="fielddoc"><p>JPEG horizontal pixel density. </p>
<p><b>Value</b></p><ul>