diff options
author | Saravanan Solaiyappan <saravanan.s@ti.com> | 2011-11-23 18:21:58 -0600 |
---|---|---|
committer | Daniel Levin <dendy@ti.com> | 2012-12-05 15:32:15 +0200 |
commit | 6a825fcc3be917096ef801bde80943a1cc8a3748 (patch) | |
tree | cfcff14c304387c07112e7c2afe1930d11dc76e0 /test | |
parent | fea025262821c36c01440fadd68343a5ddd873d6 (diff) | |
download | hardware_ti_omap4-6a825fcc3be917096ef801bde80943a1cc8a3748.zip hardware_ti_omap4-6a825fcc3be917096ef801bde80943a1cc8a3748.tar.gz hardware_ti_omap4-6a825fcc3be917096ef801bde80943a1cc8a3748.tar.bz2 |
Skia: Test application
Change-Id: Ie023ac927321facc4ad7607a883f2b67f9af547e
Signed-off-by: Solaiyappan Saravanan <saravanan.s@ti.com>
Signed-off-by: Daniel Levin <dendy@ti.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/libskiahw/Android.mk | 41 | ||||
-rw-r--r-- | test/libskiahw/SkLibTiJpeg_Test.cpp | 1402 | ||||
-rw-r--r-- | test/libskiahw/SkLibTiJpeg_Test.h | 2560 |
3 files changed, 4003 insertions, 0 deletions
diff --git a/test/libskiahw/Android.mk b/test/libskiahw/Android.mk new file mode 100644 index 0000000..450e57a --- /dev/null +++ b/test/libskiahw/Android.mk @@ -0,0 +1,41 @@ +# +# Copyright (C) 2012 Texas Instruments Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_SHARED_LIBRARIES := libskia + +LOCAL_WHOLE_STATIC_LIBRARIES := libc_common + +LOCAL_SRC_FILES := SkLibTiJpeg_Test.cpp + +LOCAL_MODULE := SkLibTiJpeg_Test +LOCAL_MODULE_TAGS:= optional + +LOCAL_C_INCLUDES += \ + bionic/libc/bionic \ + external/skia/include/core \ + external/skia/include/images + + +ifeq ($(TARGET_BOARD_PLATFORM),omap4) + LOCAL_CFLAGS += -DTARGET_OMAP4 +endif + + +include $(BUILD_EXECUTABLE) diff --git a/test/libskiahw/SkLibTiJpeg_Test.cpp b/test/libskiahw/SkLibTiJpeg_Test.cpp new file mode 100644 index 0000000..be78eae --- /dev/null +++ b/test/libskiahw/SkLibTiJpeg_Test.cpp @@ -0,0 +1,1402 @@ +/* + * Copyright (C) Texas Instruments - http://www.ti.com/ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +/* ============================================================================== +* Texas Instruments OMAP (TM) Platform Software +* (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. +* +* Use of this software is controlled by the terms and conditions found +* in the license agreement under which this software has been supplied. +* ============================================================================ */ +/** +* @file SkLibTiJpeg_Test.cpp +* +* This test program will be used to test the JPEG decoder and encoder +* from libskia level. +* +*/ + +#include <unistd.h> +#include "SkLibTiJpeg_Test.h" +#include "SkTime.h" + +#ifdef ANDROID +#include <cutils/properties.h> +#endif + +extern "C" { +#include "md5.h" +}; + +#define LIBSKIAHWTEST "[SkLibTiJpeg_Test_Script]" +#define PASS 0 +#define FAIL 1 +#define ERROR -1 + +#define PRINT printf + +//enable this for additional debug prints. +//#define DEBUG 1 + +//#define TIME_MEASUREMENT 1 +#ifdef DEBUG +#define DBGPRINT printf +#else +#define DBGPRINT +#endif + +#define BUFSIZE (1024 * 8) +#define MD5_SUM_LENGTH 16 +#define JPGD_MD5SUM_LIST 0 +#define JPGE_MD5SUM_LIST 1 + +#define PASSCOUNT_ARM 0 +#define PASSCOUNT_TIDSP 1 +#define PASSCOUNT_SIMCOP 2 +#define FAILCOUNT 3 +#define COUNT_MANUALVERIFY 4 +#define COUNT_MAX_INDEX 5 + +#define CODECTYPE_SW 0 +#define CODECTYPE_DSP 1 +#define CODECTYPE_SIMCOP 2 + +//test case count +unsigned int nTestCount[5]; //[0]-ARM; [1]-TI; + //[2]-SIMCOP; [3]-Fail count; + //[4]-manual verification needed +int flagDumpMd5Sum; +int flagCodecType; //0- SW codec ( ARM) + //1- TI DSP codec + //2- SIMCOP codec + +FILE* pFileDump; //for dumping the md5sum strings +char testID[40]; + +//------------------------------------------------------------------------------------ +#ifdef TIME_MEASUREMENT +class AutoTimeMillis { +public: + AutoTimeMillis(const char label[]) : fLabel(label) { + if (!fLabel) { + fLabel = ""; + } + fNow = SkTime::GetMSecs(); + } + + ~AutoTimeMillis() { + PRINT("---- Input file Resolution :%dx%d",width,height); + PRINT("---- JPEG Time (ms): %s %d\n", fLabel, SkTime::GetMSecs() - fNow); + } + + void setResolution(int width, int height){ + this->width=width; + this->height=height; + } + +private: + const char* fLabel; + SkMSec fNow; + int width; + int height; +}; +#endif + +//----------------------------------------------------------------------------- +void printDecoderTestUsage() { + + PRINT("\nDecoder Test parameters:\n"); + PRINT("SkLibTiJpeg_Test <D> <Input_File_Name> <Output_File_Name> <nOutformat> <SF %s> <nSections> <nXOrigin> <nYOrigin> <nXLength> <nYLength> <SF value/UserW> <UserH>\n\n","%"); + PRINT("<D> = D-Decoder test\n"); + PRINT("<Input_File_Name> = .jpg file name\n"); + PRINT("<Output_File_Name>= .raw file name\n"); + PRINT("<nOutformat> = Output color format: 4-16bit_RBG565, 6-32bit_ARGB8888\n"); + PRINT("<SF %s> = Scalefactor: 100, 50, 25, 12 percent\n","%"); + PRINT("<nSections> = SliceOutput Mode: Number of rows per slice\n"); + PRINT("<nXOrigin> = Sub Region Decode: X-origin\n"); + PRINT("<nYOrigin> = Sub Region Decode: Y-origin\n"); + PRINT("<nXLength> = Sub Region Decode: X-Length\n"); + PRINT("<nYLength> = Sub Region Decode: Y-Length\n"); + PRINT("<SFvalue | nUserW>= Scale Factor number(OMAP4->1-256; OMAP3->1,2,4,8) OR User's desired output Width\n"); + PRINT("<nUserH > = User's desired output Height.\n"); + + PRINT("\nNOTE: nUserW * nUserH : if nUserW alone given it will be taken as scaleFactor value.\n"); + PRINT(" if both values are given then the scale factor is calculated based on valid values of them\n"); + PRINT(" if both value are valid then the scale factor will be calculated using nUserW\n"); + PRINT(" if nUserW = 0 and nUserH > 0 then the scale factor will be calculated using nUserH\n"); + +} //End of printDecoderTestUsage() + +//----------------------------------------------------------------------------- +void printEncoderTestUsage() { + + PRINT("\nEncoder Test parameters:\n"); + PRINT("SkLibTiJpeg_Test <E> <Input_File_Name> <Output_File_Name> <nInformat> <nQFactor 1-100>\n\n"); + PRINT("<E> = E-Encoder test\n"); + PRINT("<Input_File_Name> = .raw file name\n"); + PRINT("<Output_File_Name>= .jpg file name\n"); + PRINT("<nInformat> = Input color format: 4-16bit_RBG565, 6-32bit_ARGB8888\n"); + PRINT("<nQFactor> = Quality factor: 1-100\n"); +} //End of printEncoderTestUsage() + +//----------------------------------------------------------------------------- +void printInputScriptFormat() { + + PRINT("\nUsing Script/Folder:\n"); + PRINT("SkLibTiJpeg_Test <<S|F>[M][C]> <script file name | Folder Path> [Repeat Count]\n"); + PRINT("\n[S|F] - S-> scriptfile; F-> Folder path; **NOTE: 'F'is only for Decoder Test\n"); + PRINT("[M] - Do Memory leak test\n"); + PRINT("[C] - Dump the md5sum values in to a file <md5sum_dump.txt>.\n"); + PRINT("[Repeat Count] - Repeat the script/folder contents this many times.\n"); + PRINT("\nThe script file should contain <%s> as the first line.\n",LIBSKIAHWTEST); + PRINT("Example format of the script file is:\n"); + + PRINT("\n|------------------------------------------------------------------------------|\n"); + PRINT("[SkLibTiJpeg_Test_Script]\n"); + PRINT("#Commented line or commented testcase starts with '#' character.\n"); + PRINT("#TestcaseID SkLibTiJpeg_Test <E | D> <Input File> <Output File> <other params......> \n"); + PRINT("DECTestID-1: SkLibTiJpeg_Test D I_000265_12MP_4000x3000.jpg output/12MP-1.raw 4 100 \n"); + PRINT("#TestID-2: SkLibTiJpeg_Test D akiy4big07.jpg output/akiy4big07-2.raw 4 100 \n"); + PRINT("ENCTestID-1: SkLibTiJpeg_Test E akiy4big07-2.raw enctest-1.jpg 1200 1600 4 100 \n"); + PRINT("\n|------------------------------------------------------------------------------|\n"); +} + +//----------------------------------------------------------------------------- +void printUsage() { + + PRINT("\n\nUSAGE: \n\n"); + PRINT("Encoder Test: ./SkLibTiJpeg_Test <E> < parameters..... > \n"); + PRINT("Decoder Test: ./SkLibTiJpeg_Test <D> < parameters..... > \n"); + PRINT("Using Script: ./SkLibTiJpeg_Test <S[M][C]> <script file name> [Repeat Count]\n"); + PRINT("Folder Decode: ./SkLibTiJpeg_Test <F[M][C]> <Folder Path> [Repeat Count]\n"); + + PRINT("\n|------------------------------------------------------------------------------|\n"); + printEncoderTestUsage(); + PRINT("\n|------------------------------------------------------------------------------|\n"); + printDecoderTestUsage(); + PRINT("\n|------------------------------------------------------------------------------|\n"); + printInputScriptFormat(); + PRINT("\n|------------------------------------------------------------------------------|\n"); + +} //End of printUsage() + +//----------------------------------------------------------------------------- +//Currently this function will parse the header and give only image width and Height. +//can be added to parse for other information also. +U32 jpegHeaderParser(SkStream* stream, JPEG_IMAGE_INFO* JpegImageInfo) { + + U8 cByte; + U8 flagDone = 0; + U32 marker; + size_t segLength; + S32 lSize = 0; + lSize = stream->getLength(); + stream->rewind(); + JpegImageInfo->nWidth = 0; + JpegImageInfo->nHeight = 0; + + //check for the JPEG marker + cByte = stream->readU8(); + if ( cByte != 0xff || stream->readU8() != M_SOI ) { + return 0; + } + + while(1) { + for(;;) { + cByte = stream->readU8(); + //PRINT("%02x-",cByte); + if( cByte == 0xff ) break; + } //end of for (;;) + + marker = stream->readU8(); + + switch ( marker) { + + case M_SOS: + case M_EOI: + return 0; + break; + + case M_SOF2: + //PRINTF("nProgressive IMAGE!\n"); + //JpegImageInfo->nProgressive=1; + case M_SOF0: + case M_SOF1: + case M_SOF3: + case M_SOF5: + case M_SOF6: + case M_SOF7: + case M_SOF9: + case M_SOF10: + case M_SOF11: + case M_SOF13: + case M_SOF14: + case M_SOF15: + //skip 2bytes length and one byte bits/sample. + stream->skip(3); + //read Height and width + JpegImageInfo->nHeight = (int)( (stream->readU8() << 8) | (stream->readU8()) ); + JpegImageInfo->nWidth = (int)( (stream->readU8() << 8) | (stream->readU8()) ); + flagDone = 1; + break; + + default: + //read the length of the marker segment and skip that segment data + segLength = (int)( (stream->readU8() << 8) || (stream->readU8()) ); + segLength = stream->skip(segLength-2); //segLength include these 2 bytes for length value. + if (segLength == 0){ + return 0; + } + break; + } //end of Switch + + if(flagDone) + return lSize; + + } //end of while(1) +} //End of jpegHeaderParser() + +//----------------------------------------------------------------------------- +U32 getMeminfo(FILE* pFile, const char* pStr) { + + U32 value = 0; + int i; + char strLine[80]; + + //search the line which contains the required mem info. + while(!feof(pFile) ) { + if( NULL == fgets(strLine, sizeof(strLine), pFile)) { + break; + } + if ( NULL == strstr(strLine, pStr) ) { + continue; + } + else { + sscanf(strLine+strlen(pStr), "%ld", &value); + break; + } + } + rewind(pFile); + return value; +} +//----------------------------------------------------------------------------- +void analyzeMemoryInfo(const char* firstFile, const char* secondFile) { + U32 freeMemBeforeTest = 0; + U32 freeMemAfterTest = 0; + U32 cachedMemBeforeTest = 0; + U32 cachedMemAfterTest = 0; + FILE* pFile1 = NULL; + + PRINT("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>> ANALYZING MEMORY LEAK <<<<<<<<<<<<<<<<<<<<<<<<<<< \n\n"); + pFile1 = fopen(firstFile, "r"); + if (pFile1 == NULL) { + PRINT("%s():%d::!!!! Could not open file %s\n",__FUNCTION__,__LINE__,firstFile); + goto EXIT; + } + + //get the memory info before test. + freeMemBeforeTest = getMeminfo(pFile1, "MemFree:"); + cachedMemBeforeTest = getMeminfo(pFile1, "Cached:"); + fclose(pFile1); + + pFile1 = fopen(secondFile, "r"); + if (pFile1 == NULL) { + PRINT("%s():%d::!!!! Could not open file %s\n",__FUNCTION__,__LINE__,secondFile); + goto EXIT; + } + + //get the memory info after test + freeMemAfterTest = getMeminfo(pFile1, "MemFree:"); + cachedMemAfterTest = getMeminfo(pFile1, "Cached:"); + fclose(pFile1); + + PRINT("MemFree: Before::After => %ld KB :: %ld KB\n",freeMemBeforeTest, freeMemAfterTest); + PRINT("Cached: Before::After => %ld KB :: %ld KB\n\n",cachedMemBeforeTest, cachedMemAfterTest); + + if( ((freeMemBeforeTest+cachedMemBeforeTest) - (freeMemAfterTest-cachedMemAfterTest)) > (5*1024*1024)) { + PRINT("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + PRINT("!!!!!! Looks like there is a MEMORY LEAK during the Test Execution!!!!!!\n"); + PRINT("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + } + else { + PRINT("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + PRINT("!!!!!!!!!!!!!!!!!!!!!!!! MEMORY TEST OK !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + PRINT("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + } + return; + +EXIT: + PRINT("!!!!!!!!!!!!!!!!!!!!! MEMORY TEST not Successful!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + return; +} //End of analyzeMemoryInfo() + +//----------------------------------------------------------------------------- +void extractFileName(char* InFileName, char* imgFileName) { + + char ch = '/'; + char* pTmpName = NULL; + + pTmpName = strrchr( InFileName, (int)ch ); + if (pTmpName == NULL) { + strcpy ( imgFileName, (const char*)InFileName ); + } + else { + strcpy ( imgFileName, (const char*)pTmpName+1 ); + } +} //End of extractFileName() + +//----------------------------------------------------------------------------- +void md5SumFile(unsigned char *md, char* pFileName) { + + MD5_CTX md5_c; + int fd; + int i; + static unsigned char buf[BUFSIZE]; + FILE* pFile = NULL; + + pFile = fopen(pFileName, "r"); + if ( pFile == NULL ) { + PRINT("\nERROR!!!! Not able to open the file: %s\n", pFileName); + return; + } + + MD5_Init(&md5_c); + for (;;) { + i = fread( (void*)buf, 1, BUFSIZE, pFile ); + if (i <= 0) break; + MD5_Update( &md5_c, buf, (unsigned long)i ); + } + MD5_Final( md, &md5_c ); + + fclose(pFile); + + DBGPRINT("%s:%d::MD5SUM = ",__FUNCTION__,__LINE__); + for (i = 0; i < MD5_SUM_LENGTH; i++) + DBGPRINT("%02x",md[i]); + DBGPRINT("\n"); + +} //End of md5SumFile() + +//----------------------------------------------------------------------------- +void md5SumBuf(unsigned char* md, void* pBuf, unsigned long nBufSize) { + + MD5_CTX md5_c; + int i; + + MD5_Init(&md5_c); + MD5_Update(&md5_c, pBuf, nBufSize); + MD5_Final( md, &md5_c ); + + DBGPRINT("%s:%d::MD5SUM = ",__FUNCTION__,__LINE__); + for (i = 0; i < MD5_SUM_LENGTH; i++) + DBGPRINT("%02x",md[i]); + DBGPRINT("\n"); + +} //End of md5SumBuf() + +//----------------------------------------------------------------------------- +void updateTestCount(int id) { + + android::countMutex.lock(); + if ( id < COUNT_MAX_INDEX ) { + nTestCount[id] += 1; + } + android::countMutex.unlock(); + +} + +//----------------------------------------------------------------------------- +void dumpMd5Sum(char* imgFileName, char* mdString, void* pList) { + const struct JPGD_TEST_OUTPUT_FILE_LIST *pDBList = (const struct JPGD_TEST_OUTPUT_FILE_LIST *)pList; + + //dump the file name and its md5sum string in to a file + fprintf(pFileDump, "{ // %s\n",testID); + fprintf(pFileDump, "\"%s\",\n",imgFileName); + + switch(flagCodecType) { + + case CODECTYPE_SW: + if(pDBList){ + fprintf(pFileDump, "\"%s\",\n",mdString); + fprintf(pFileDump, "\"%s\",\n",pDBList->md5CheckSumTi); + fprintf(pFileDump, "\"%s\"\n",pDBList->md5CheckSumSimcop); + } + else { + fprintf(pFileDump, "\"%s\",\n",mdString); + fprintf(pFileDump, "\"0\",\n"); + fprintf(pFileDump, "\"0\"\n"); + } + break; + + case CODECTYPE_DSP: + if(pDBList){ + fprintf(pFileDump, "\"%s\",\n",pDBList->md5CheckSumArm); + fprintf(pFileDump, "\"%s\",\n",mdString); + fprintf(pFileDump, "\"%s\"\n",pDBList->md5CheckSumSimcop); + } + else { + fprintf(pFileDump, "\"0\",\n"); + fprintf(pFileDump, "\"%s\",\n",mdString); + fprintf(pFileDump, "\"0\"\n"); + } + break; + + case CODECTYPE_SIMCOP: + if(pDBList){ + fprintf(pFileDump, "\"%s\",\n",pDBList->md5CheckSumArm); + fprintf(pFileDump, "\"%s\",\n",pDBList->md5CheckSumTi); + fprintf(pFileDump, "\"%s\"\n",mdString); + } + else { + fprintf(pFileDump, "\"0\",\n"); + fprintf(pFileDump, "\"0\",\n"); + fprintf(pFileDump, "\"%s\"\n",mdString); + } + break; + + default: + break; + } + fprintf(pFileDump, "},\n"); + +} //End of dumpMd5Sum() + +//----------------------------------------------------------------------------- +int verifyMd5Sum( char* InFileName, void *pBuf, unsigned long nBufSize, int flag ) { + + unsigned char md[MD5_SUM_LENGTH]; //16bytes (128bits) + char mdString[(MD5_SUM_LENGTH * 2) + 1]; //32bytes + null char + char imgFileName[128]; + const struct JPGD_TEST_OUTPUT_FILE_LIST *pMd5SumDBList = NULL; + int i; + int result = ERROR; + + /*Generate the md5sum for the current output from file */ + if ( pBuf == NULL) { + md5SumFile( md, InFileName ); + } + else { + /*Generate the md5sum for the current output from buffer */ + md5SumBuf( md, pBuf, nBufSize ); + } + + /* Convert the md5 sum to a string */ + for (i = 0; i < MD5_SUM_LENGTH; i++){ + sprintf( (char*)&mdString[i*2],"%02x",md[i]); + } + + /* Extract the file name alone from the full path */ + extractFileName(InFileName, imgFileName); + PRINT("md5sum String = %s\n",mdString); + + /*comapre the md5sum with the data base */ + if ( flag == JPGD_MD5SUM_LIST ) { + pMd5SumDBList = &st_jpgd_file_list[0]; + } + else { + pMd5SumDBList = &st_jpge_file_list[0]; + } + + for(i = 0; strlen(pMd5SumDBList[i].fileName) != 0; i++) { + + if ( strcmp ( pMd5SumDBList[i].fileName, imgFileName ) == 0 ) { + /* File name found. Now check the md5sum */ + if ( strcmp( pMd5SumDBList[i].md5CheckSumArm , (const char*)mdString ) == 0 ) { + PRINT("Md5Sum matches with ARM Codec output.\n"); + updateTestCount(PASSCOUNT_ARM); + result = PASS; + break; + } + else if ( strcmp( pMd5SumDBList[i].md5CheckSumTi , (const char*)mdString ) == 0 ) { + PRINT("Md5Sum matches with TI Codec output.\n"); + updateTestCount(PASSCOUNT_TIDSP); + result = PASS; + break; + } + else if ( strcmp( pMd5SumDBList[i].md5CheckSumSimcop , (const char*)mdString ) == 0 ) { + PRINT("Md5Sum matches with SIMCOP Codec output.\n"); + updateTestCount(PASSCOUNT_SIMCOP); + result = PASS; + break; + } + else { + PRINT("%s():%d:: ERROR!!! Md5Sum Mismatch !!!.\n",__FUNCTION__,__LINE__); + result = FAIL; + break; + } + } + } + + if ( result == ERROR ) { + PRINT("\n%s():%d:: !!!!!New test output file. Manual verification required.!!!!!.\n",__FUNCTION__,__LINE__); + updateTestCount(COUNT_MANUALVERIFY); + if(flagDumpMd5Sum) { + dumpMd5Sum(imgFileName, mdString, NULL); + } + return PASS; + } + else { + if(flagDumpMd5Sum) { + dumpMd5Sum(imgFileName, mdString,(void*) &pMd5SumDBList[i]); + } + return result; + } + +} //End of verifyMd5Sum() + +//----------------------------------------------------------------------------- +int calcScaleFactor(int userW, int userH, SkStream* iStream) { + int nOrgW = 0; + int nOrgH = 0; + int scaleFactor = 1; + S32 inputFileSize = 0; + JPEG_IMAGE_INFO JpegImageInfo; + char outFileName[256]; + + /* Parse the input file and get the image Width and Height */ + inputFileSize = jpegHeaderParser(iStream, &JpegImageInfo); + iStream->rewind(); + PRINT("Input Image W x H = %d x %d :: fileSize = %ld\n",JpegImageInfo.nWidth, JpegImageInfo.nHeight,inputFileSize); + if ( inputFileSize == 0) { + scaleFactor = 1; + } + else { + nOrgW = JpegImageInfo.nWidth; + nOrgH = JpegImageInfo.nHeight; + + if ( userW >= nOrgW || userH >= nOrgH ){ + scaleFactor = 1; + } + else if ( userW > 0 ) { + scaleFactor = nOrgW / userW; + } + else if ( userH > 0 ) { + scaleFactor = nOrgH / userH; + } + } + PRINT("%s():%d:: Calculated ScaleFactor = %d\n",__FUNCTION__,__LINE__,scaleFactor); + return scaleFactor; + +} //End of calcScaleFactor() + +//----------------------------------------------------------------------------- +int findJPGDType(SkStream *stream) { + char prop[2] = {'0','\0'}; + char sizeTh[] = "0000000000"; + unsigned int imageSizeTh =0; + unsigned int fileSize = 0; + +#ifdef TARGET_OMAP4 + //TDB -SIMCOP: HW deocder selection logic has to be done here. + // return CODECTYPE_SIMCOP; + + //currently return SW JPGD by default + +#else //OMAP3 DSP jpeg decoder + property_get("jpeg.libskiahw.decoder.enable", prop, "0"); + if(prop[0] == '1'){ //uses DSP JPGD + //check for the file size threshold + property_get("jpeg.libskiahw.decoder.thresh", sizeTh, "0"); + imageSizeTh = atoi(sizeTh); + fileSize = stream->getLength(); + if(fileSize > imageSizeTh) { + return CODECTYPE_DSP; + } + } +#endif + return CODECTYPE_SW; //uses SW JPGD + +} //End of findJPGDType() +//----------------------------------------------------------------------------- +int runJPEGDecoderTest(int argc, char** argv) { + + SkImageDecoder* skJpegDec = NULL; + SkBitmap skBM; + SkIRect subRegion; + SkBitmap::Config prefConfig = SkBitmap::kRGB_565_Config; + int reSize = 1; + int nReqWidth = 0; + int nReqHeight = 0; + int result = PASS; + char* cmd = NULL; + JpegDecoderParams jpegDecParams; + bool bSubRegDecFlag = false; + + memset((void*)&jpegDecParams, 0, sizeof(JpegDecoderParams) ); + flagCodecType = CODECTYPE_SW; + + /*check the parameter counts*/ + if (argc < 4) { + PRINT("%s:%d::!!!!!Wrong number of arguments....\n",__FUNCTION__,__LINE__); + printDecoderTestUsage(); + return ERROR; + } + + /* check if the output file already exists and delete it*/ + { + char rmCmd[300]; + FILE* fp = fopen(argv[3],"r"); + if (fp) { + DBGPRINT("%s():%d:: Output file already exists. Deleting it.\n",__FUNCTION__,__LINE__); + fclose(fp); + sprintf(rmCmd,"rm %s",argv[3]); + system(rmCmd); + } + } + + SkFILEStream inStream(argv[2]); + PRINT("InputFile = %s\n",argv[2]); + PRINT("OutputFile = %s\n",argv[3]); + + if (inStream.isValid() == false) { + PRINT("%s:%d::!!!!!!!!!!Input File is not found....\n",__FUNCTION__,__LINE__); + return ERROR; + } + + /*output color format*/ + if (argc >= 5) { + prefConfig = (SkBitmap::Config)atoi(argv[4]); + if(prefConfig == SkBitmap::kARGB_8888_Config) { + DBGPRINT("%s():%d:: Output Color Format : ARGB_8888 32bit.\n",__FUNCTION__,__LINE__); + } + else if (prefConfig == SkBitmap::kRGB_565_Config) { + DBGPRINT("%s():%d:: Output Color Format : RGB_565 16bit.\n",__FUNCTION__,__LINE__); + } + else{ + /*Eventhough the android supports some more RGB color format, TI DSP SN supports the + above two color format among the android color formats. + TI DSP SN supports more formats in YUV too, but android does not support YUV o/p formats.*/ + PRINT("%s():%d::!!!!Invalid output color format option..\n",__FUNCTION__,__LINE__); + + /* Allow the wrong color format to test the error handling */ + //prefConfig = SkBitmap::kRGB_565_Config; + } + } + + /*resize mode*/ + if (argc >= 6) { + reSize = atoi(argv[5]); + + switch ( reSize){ + case (12): + reSize = 8; + break; + + case (25): + reSize = 4; + break; + + case (50): + reSize = 2; + break; + + case (100): + reSize = 1; + break; + + default: + reSize = 1; + DBGPRINT("%s():%d:: Scalefactor set to default 1 (noResize) .\n",__FUNCTION__,__LINE__); + break; + } + + PRINT("%s():%d:: Scale factor=%d. (1-100,2-50,4-25,8-12 percent resize)\n",__FUNCTION__,__LINE__,reSize); + } + + /*Section Decode - Slice output mode*/ + if (argc >= 7) { + } + else{ + } + + /*Sub Region Decode*/ + if (argc == 11) { + jpegDecParams.nXOrg = atoi(argv[7]); + jpegDecParams.nYOrg = atoi(argv[8]); + jpegDecParams.nXLength = atoi(argv[9]); + jpegDecParams.nYLength = atoi(argv[10]); + + if ( jpegDecParams.nXOrg || jpegDecParams.nYOrg || + jpegDecParams.nXLength || jpegDecParams.nYLength ) { + bSubRegDecFlag = true; + + PRINT("%s():%d:: !!!! subregion decode.\n",__FUNCTION__,__LINE__); + subRegion.fLeft = jpegDecParams.nXOrg; + subRegion.fRight = jpegDecParams.nXOrg + jpegDecParams.nXLength; + subRegion.fTop = jpegDecParams.nYOrg; + subRegion.fBottom = jpegDecParams.nYOrg + jpegDecParams.nYLength; + } + /* OMAP3: Check for the co-ordinates multiples + TI DSP Socket Node has contraint on the multiples of the co-ordinates */ + // Allow the users input. Libskiahw should take care in case of errors. + DBGPRINT("%s():%d:: NOTE: Refer the Codec guide for the constraints on X & Y origin values.\n",__FUNCTION__,__LINE__); + + } + else{ + } + + /* Check for the scale factor number : omap3= 1,2,4,8 ; OMAP4= 1 to 1256 */ + if (argc == 12) { + reSize = atoi(argv[11]); + } + /* Check for the desired output resolution and modify the scale factor accordingly. */ + else if (argc == 13) { + nReqWidth = atoi(argv[11]); + nReqHeight = atoi(argv[12]); + reSize = calcScaleFactor(nReqWidth, nReqHeight, &inStream ); + } + + /* Get the Decoder handle */ + skJpegDec = SkImageDecoder::Factory(&inStream); + if( skJpegDec == NULL ) { + PRINT("%s():%d:: !!!! NULL Decoder Handle received..\n",__FUNCTION__,__LINE__); + return FAIL; + } + + /*set the scale factor */ + skJpegDec->setSampleSize(reSize); + skJpegDec->SetDeviceConfig(prefConfig); + + /*check which decoder handle is chosen by the Factory()*/ + flagCodecType = findJPGDType(&inStream); + + +#ifdef TIME_MEASUREMENT + { + AutoTimeMicros atm("Decode Time Measurement:"); +#endif + + //SW(ARM) subregion decode supported + if( CODECTYPE_SW == flagCodecType && bSubRegDecFlag ){ + int ht = 0, wd = 0; + + if( skJpegDec->buildTileIndex(&inStream, &wd, &ht) == false ) { + PRINT("%s():%d:: !!!! skJpegDec->buildTileIndex() returned false..\n",__FUNCTION__,__LINE__); + PRINT("%s():%d:: !!!! Test Failed..\n",__FUNCTION__,__LINE__); + delete skJpegDec; + return FAIL; + } + if( skJpegDec->decodeRegion(&skBM, subRegion, prefConfig) == false) { + PRINT("%s():%d:: !!!! skJpegDec->decodeRegion() returned false..\n",__FUNCTION__,__LINE__); + PRINT("%s():%d:: !!!! Test Failed..\n",__FUNCTION__,__LINE__); + delete skJpegDec; + return FAIL; + } + } + else { //if !(CODECTYPE_SW == flagCodecType && bSubRegDecFlag ) + + /*call decode*/ + if (skJpegDec->decode(&inStream, &skBM, prefConfig, SkImageDecoder::kDecodePixels_Mode) == false) { + PRINT("%s():%d:: !!!! skJpegDec->decode returned false..\n",__FUNCTION__,__LINE__); + PRINT("%s():%d:: !!!! Test Failed..\n",__FUNCTION__,__LINE__); + delete skJpegDec; + return FAIL; + } + } + +#ifdef TIME_MEASUREMENT + atm.setResolution(skBM.width() , skBM.height()); + atm.setScaleFactor(reSize); + } +#endif + + { //scope to close the output file/stream handle + SkFILEWStream outStream(argv[3]); + outStream.write(skBM.getPixels(), skBM.getSize()); + DBGPRINT("%s():%d:: Wrote %d bytes to output file<%s>.\n",__FUNCTION__,__LINE__,skBM.getSize(),argv[3]); + delete skJpegDec; + + result = verifyMd5Sum(argv[3], skBM.getPixels(), skBM.getSize(), JPGD_MD5SUM_LIST ); + } + + //Now change the output filename with W & H if the scalefactor modified the output resolution + if (reSize != 1) { + char temp[256]; + PRINT("%s:%d:: Modified output WxH = %d x %d\n",__FUNCTION__,__LINE__,skBM.width(),skBM.height()); + strcpy(temp, argv[3]); + cmd = strrchr(temp, '.'); + cmd[0] = '\0'; + cmd =(char*) malloc(600); + if ( cmd !=NULL) { + sprintf(cmd, "mv %s %s___%dx%d.raw",argv[3],temp,skBM.width(),skBM.height() ); + system(cmd); + free(cmd); + } + } + return result; + +} //End of runJPEGDecoderTest() + +//----------------------------------------------------------------------------- +int runJPEGEncoderTest(int argc, char** argv) { + + SkImageEncoder* skJpegEnc = NULL; + SkBitmap skBM; + SkBitmap::Config inConfig = SkBitmap::kRGB_565_Config; + void *tempInBuff = NULL; + int nWidth = 0; + int nHeight = 0; + int nQFactor = 100; + + /*check the parameter counts*/ + if (argc < 6) { + PRINT("%s:%d::!!!!!Wrong number of arguments....\n",__FUNCTION__,__LINE__); + printEncoderTestUsage(); + return ERROR; + } + + /* check if the output file already exists and delete it*/ + { + char rmCmd[300]; + FILE* fp = fopen(argv[3],"r"); + if (fp) { + DBGPRINT("%s():%d:: Output file already exists. Deleting it.\n",__FUNCTION__,__LINE__); + fclose(fp); + sprintf(rmCmd,"rm %s",argv[3]); + system(rmCmd); + } + } + + SkFILEStream inStream(argv[2]); + SkFILEWStream outStream(argv[3]); + + PRINT("InputFile = %s\n",argv[2]); + PRINT("OutputFile = %s\n",argv[3]); + + if (inStream.isValid() == false) { + PRINT("%s:%d::!!!!!!!!!!!Input File is not found....\n",__FUNCTION__,__LINE__); + return ERROR; + } + + /* width and height */ + nWidth = atoi(argv[4]); + nHeight = atoi(argv[5]); + + /*Input color format*/ + if (argc >= 7) { + inConfig = (SkBitmap::Config)atoi(argv[6]); + if(inConfig == SkBitmap::kARGB_8888_Config) { + DBGPRINT("%s():%d:: Input Color Format : ARGB_8888 32bit.\n",__FUNCTION__,__LINE__); + } + else if (inConfig == SkBitmap::kRGB_565_Config) { + DBGPRINT("%s():%d:: Input Color Format : RGB_565 16bit.\n",__FUNCTION__,__LINE__); + } + else{ + /*Eventhough the android supports some more RGB color format, TI DSP SN supports the + above two color format among the android color formats. + TI DSP SN supports more formats in YUV too, but android does not support YUV i/p formats.*/ + PRINT("%s():%d::!!!!Invalid input color format option..\n",__FUNCTION__,__LINE__); + + /* still allows to execute to validate the error handling libskiiahw code */ + } + } + + /* QFactor */ + if (argc >= 8) { + nQFactor = atoi(argv[7]); + DBGPRINT("%s():%d:: Quality Factor : %d.\n",__FUNCTION__,__LINE__,nQFactor); + } + + /* create the input temp buffer for the input file */ + tempInBuff = (void*)malloc(inStream.getLength()); + if ( tempInBuff == NULL) { + PRINT("%s():%d::!!!!malloc failed...\n",__FUNCTION__,__LINE__); + return ERROR; + } + inStream.read(tempInBuff, inStream.getLength()); + + /*configure the SkBitmap */ + skBM.setConfig(inConfig, nWidth, nHeight); + skBM.setPixels(tempInBuff); + + /* get the JPEG Encoder Handle */ + skJpegEnc = SkImageEncoder::Create(SkImageEncoder::kJPEG_Type); + + /* call onEncode */ + if (skJpegEnc->encodeStream( &outStream, skBM, nQFactor) == false) { + PRINT("%s():%d::!!!onEncode failed....\n",__FUNCTION__,__LINE__); + free(tempInBuff); + delete skJpegEnc; + return FAIL; + } + + DBGPRINT("%s():%d:: Encoded image written in to output file<%s>.\n",__FUNCTION__,__LINE__,argv[3]); + free(tempInBuff); + delete skJpegEnc; + + return PASS; +}//End of runJPEGEncoderTest() + + +//----------------------------------------------------------------------------- +int runFromCmdArgs(int argc, char** argv) { + + if(strcmp(argv[1],"D") == 0) { + /*call decoder test function*/ + return runJPEGDecoderTest(argc, argv); + } + else if (strcmp(argv[1],"E") == 0) { + /*call Encoder test function*/ + if( runJPEGEncoderTest(argc, argv) == PASS) { + return ( verifyMd5Sum (argv[3], NULL, 0, JPGE_MD5SUM_LIST) ); + } + else { + return FAIL; + } + } + else { + PRINT("%s():%d:: !!! Invalid test option. only D/E is valid (Decoder/Encoder).\n",__FUNCTION__,__LINE__); + printUsage(); + } + return ERROR; + +}//end of runFromCmdArgs() + +//----------------------------------------------------------------------------- +void RunFromScript(char* scriptFileName) { + + FILE* fp = NULL; + char *pArgs[12]; + char strLine[500]; + char *pstrLine = strLine; + int argsCount=0, i=0; + int result = 0; + + DBGPRINT("%s():%d::Automated Test Started....\n",__FUNCTION__,__LINE__); + fp = fopen( scriptFileName, "r"); + if ( NULL == fp ) { + PRINT("\n !!Error while opening the script file-%s.\n",scriptFileName); + return; + } + + for(i = 0; i < 12; i++) { + pArgs[i] = (char *)malloc(200); + } + + /* Check the script file is valid one or not */ + memset( (void*)pstrLine, 0, 500); + fgets (pstrLine, sizeof(strLine), fp); + if (strncmp(LIBSKIAHWTEST, pstrLine, strlen(LIBSKIAHWTEST) ) != 0) { + PRINT("\n%s():%d:: !!!!Not a valid script file-(%s).\n",__FUNCTION__,__LINE__,scriptFileName); + printInputScriptFormat(); + fclose(fp); + return; + } + + while( !feof(fp) ) { + + /*Read one line from the script and parse*/ + memset( (void*)pstrLine, 0, 500); + if( NULL == fgets (pstrLine, sizeof(strLine), fp) ) { + /*file end*/ + break; + } + + if ( strlen(pstrLine) < strlen(LIBSKIAHWTEST) ) { + continue; + } + + /*Check for comment line in the script and skip*/ + if (pstrLine[0] == '#' || pstrLine[0] == '\n') { + pstrLine[0] = '\0'; + continue; + } + DBGPRINT("===============================================================================\n"); + DBGPRINT("TestCase read from script file: \n%s ",pstrLine); + + argsCount = sscanf(pstrLine,"%s %s %s %s %s %s %s %s %s %s %s %s %s", &testID[0], + pArgs[0],pArgs[1],pArgs[2],pArgs[3],pArgs[4],pArgs[5], + pArgs[6],pArgs[7],pArgs[8],pArgs[9],pArgs[10],pArgs[11]); + + if ( argsCount == 0 ) { + /*Empty Line with whitespaces. Skip this and continue */ + continue; + } + + DBGPRINT("TestCase: ./"); + for (i = 0; i < argsCount-1; i++) { + DBGPRINT("%s ",pArgs[i]); + } + DBGPRINT("\n"); + + PRINT("===============================================================================\n"); + PRINT("Executing %s.....\n",testID); + result = runFromCmdArgs(argsCount-1,(char**)&pArgs); + + /* Print the result */ + if (result == FAIL){ + updateTestCount(FAILCOUNT); + PRINT("\n%15s: <%s>.....FAIL !!!\n",testID,pArgs[2]); + } + else if(result == ERROR) { + PRINT("\n%15s.....ERROR occured during the test !!!.\n",testID); + } + else { + PRINT("\n%15s.....PASS\n",testID); + } + + } //End of while loop + + + for(i = 0; i < 12; i++) { + free(pArgs[i]); + } + + fclose(fp); + PRINT("\n <--------------------------End of script: %s------------------------>\n",scriptFileName); + +} //End of RunFromScript() + +//----------------------------------------------------------------------------- +void parseFolderOptions(int argc, char** argv) { + + char* pStr = argv[1]; + char* pArgs[12]; + int argCnt = 0; + int count = 1; + int flagMemoryTest = 0; + int result = PASS; + int i; + DIR* pDir = NULL; + DIRENTRY* pDirEnt = NULL; + + flagDumpMd5Sum = 0; //reset flag + + for(i = 0; i < 12; i++) { + pArgs[i] = (char *)malloc(200); + } + + //options: + // M-memory test. + // C-dump MD5-checksum strings into a file. + for (i=0; pStr[i] != '\0'; i++) { + switch (pStr[i]) { + case 'M': + flagMemoryTest = 1; + break; + + case 'C': + pFileDump = fopen("md5sum_dump.txt", "w"); + if (pFileDump == NULL) { + PRINT("%s():%d::!!!!! Counld not create <md5sum_dump.txt> file!!! \n",__FUNCTION__,__LINE__); + flagDumpMd5Sum = 0; + } + else { + flagDumpMd5Sum = 1; + } + break; + + default: + break; + } + } + + if (flagMemoryTest) { + //get the memory info + system("cat /proc/meminfo > MemInfoBeforeTest.txt"); + system("cat MemInfoBeforeTest.txt"); + } + + if (argc == 3) { + //run the script content one time + count = 1; + } + else if (argc == 4 ){ + count = atoi(argv[3]); + if (count == 0) { + count =1; + } + } + + //Navigate through the directory for .jpg files. + pDir = opendir(argv[2]); + if (pDir == NULL) { + PRINT("%s():%d:: !!!!! unable to open the Directory (%s)!!!!\n",__FUNCTION__,__LINE__,argv[2]); + return; + } + + //Create the parameters for decoder test + strcpy(pArgs[0], argv[0]); + argCnt++; + + //Decoder flag + strcpy(pArgs[1], "D"); + argCnt++; + + //output color format + if (argc > 4 ) { + strcpy(pArgs[4], argv[4]); + } + else { + strcpy(pArgs[4], "4"); //default RGB16 + } + argCnt++; + + //scale factor percentage + if (argc > 5 ) { + strcpy(pArgs[5], argv[5]); + } + else { + strcpy(pArgs[5], "100"); //default scale factor 100% + } + argCnt++; + + //Output Slice mode + if (argc > 6 ) { + strcpy(pArgs[6], argv[6]); + argCnt++; + } + + //Subregion Decode xOrg, yOrg, xLength, yLength + if (argc > 10 ) { + strcpy(pArgs[7], argv[7]); + strcpy(pArgs[8], argv[8]); + strcpy(pArgs[9], argv[9]); + strcpy(pArgs[10], argv[10]); + argCnt += 4; + } + + //Scale Factor value or the desired output Width + if (argc > 11 ) { + strcpy(pArgs[11], argv[11]); + argCnt++; + } + + //desired output Height + if (argc > 11 ) { + strcpy(pArgs[11], argv[11]); + argCnt++; + } + + argCnt +=2; //for input file and output file parameters + for (i = 0; i < count; i++) { //to repeat the folder + do { //for the files inside the specified folder + pDirEnt = readdir(pDir); + if (pDirEnt != NULL) { + if (strstr(pDirEnt->d_name, ".jpg") == NULL && + strstr(pDirEnt->d_name, ".JPG") == NULL ) { + continue; + } + + PRINT("\n-------------------------------------------------------------------------------\n"); + //input file + strcpy(pArgs[2], argv[2]); //path + pStr = argv[2]; + if ( pStr[strlen(pStr)-1] != '/') { + strcat(pArgs[2], "/"); + } + strcat(pArgs[2], pDirEnt->d_name); //append the file name + + //output File + strcpy(pArgs[3], pArgs[2]); + ((char*)pArgs[3])[strlen(pArgs[2])-3] = '\0'; + strcat(pArgs[3], "raw"); + + result = runFromCmdArgs(argCnt, (char**)&pArgs); + + /* Print the result */ + if (result){ + PRINT("\n<%s>.....FAIL !!!\n",pArgs[2]); + } + else { + PRINT("\n.....PASS\n\n"); + } + } //end of if(pDir != NULL) + } while (pDirEnt != NULL); + PRINT("\n\nRepeating the folder... (%d) more times..\n\n",((count-1)-i) ); + rewinddir(pDir); + PRINT("\n===================================================================================\n"); + } //end of for loop + + closedir(pDir); + + if (flagDumpMd5Sum == 1 && pFileDump != NULL) { + fclose(pFileDump); + } + + if (flagMemoryTest) { + //wait for 2 seconds + sleep(2); + + //get the memory info + system("cat /proc/meminfo > MemInfoAfterTest.txt"); + system("cat MemInfoAfterTest.txt"); + + //Analyze the memory info + analyzeMemoryInfo("MemInfoBeforeTest.txt", "MemInfoAfterTest.txt"); + + //delete the meminfo files + system("rm MemInfoBeforeTest.txt"); + system("rm MemInfoAfterTest.txt"); + } + +} //End of parseFolderOptions() + +//----------------------------------------------------------------------------- +void parseScriptOptions(int argc, char** argv) { + + char* pStr = argv[1]; + int flagMemoryTest = 0; + int i, count = 1; + + flagDumpMd5Sum = 0; //reset flag + + //options: + // M-memory test. + // C-dump MD5-checksum strings into a file. + for (i=0; pStr[i] != '\0'; i++) { + switch (pStr[i]) { + case 'M': + flagMemoryTest = 1; + break; + + case 'C': + pFileDump = fopen("md5sum_dump.txt", "w"); + if (pFileDump == NULL) { + PRINT("%s():%d::!!!!! Counld not create <md5sum_dump.txt> file!!! \n",__FUNCTION__,__LINE__); + flagDumpMd5Sum = 0; + } + else { + flagDumpMd5Sum = 1; + } + break; + + default: + break; + } + } + + if (flagMemoryTest) { + //get the memory info + system("cat /proc/meminfo"); + system("cat /proc/meminfo > MemInfoBeforeTest.txt"); + } + + if (argc == 3) { + //run the script content one time + count = 1; + } + else if (argc == 4) { + count = atoi(argv[3]); + if (count == 0) { + count =1; + } + } + + for(i = 0; i < count; i++) { + /* Test using script file*/ + RunFromScript(argv[2]); + PRINT("\n\nRepeating the Script... (%d) more times..\n\n",((count-1)-i) ); + } + + if (flagDumpMd5Sum == 1 && pFileDump != NULL) { + fclose(pFileDump); + } + + if (flagMemoryTest) { + //get the memory info + sleep(2); + system("cat /proc/meminfo"); + system("cat /proc/meminfo > MemInfoAfterTest.txt"); + + //Analyze the memory info + analyzeMemoryInfo("MemInfoBeforeTest.txt", "MemInfoAfterTest.txt"); + + //delete the meminfo files + system("rm MemInfoBeforeTest.txt"); + system("rm MemInfoAfterTest.txt"); + } + + +} //End of parseScriptOptions() + +//----------------------------------------------------------------------------- +int main(int argc, char** argv) { + + int result = PASS; + int count = 0; + int i = 0; + unsigned int nTotalTests = 0; + char* pStr = NULL; + + nTestCount[0] = 0; + nTestCount[1] = 0; + nTestCount[2] = 0; + nTestCount[3] = 0; + nTestCount[4] = 0; + + PRINT("\n|------------------------------------------------------------------------------|\n"); + PRINT ("|-Skia JPEG Decoder/Encoder Test App built on:"__DATE__":"__TIME__"\n"); + PRINT ("|------------------------------------------------------------------------------|\n"); + + if (argc < 2) { + printUsage(); + return 0; + } + pStr = (char*)argv[1]; + switch (pStr[0]) { + + case 'D': + case 'E': + /* test using command line parameters*/ + result = runFromCmdArgs(argc, argv); + + if (result == PASS){ + PRINT("\nTest.....PASS\n"); + } + else { + PRINT("\nTest.....FAIL !!!\n"); + } + + break; + + case 'F': + //Folder for Decoder test only. Decodes all the jpg files in the folder specified. + parseFolderOptions(argc, argv); + break; + + case 'S': + parseScriptOptions(argc, argv); + break; + + default: + PRINT("%s():%d::!!!! Invalid options..\n",__FUNCTION__,__LINE__); + printUsage(); + break; + } + + //print the PASS FAIL report + nTotalTests = ( nTestCount[0] + nTestCount[1] + nTestCount[2] + nTestCount[3] + nTestCount[4]); + if ( nTotalTests ) { + PRINT("\n|------------------------------------------------------------------------------|\n"); + PRINT ("| Total Test cases run = %d\n|\n",nTotalTests ); + PRINT ("| Test cases run on ARM = %d\t (%d %c)\n",nTestCount[0], ((100*nTestCount[0])/nTotalTests),'%' ); + PRINT ("| Test cases run on TI-DSP = %d\t (%d %c)\n",nTestCount[1], ((100*nTestCount[1])/nTotalTests),'%' ); + PRINT ("| Test cases run on SIMCOP = %d\t (%d %c)\n",nTestCount[2], ((100*nTestCount[2])/nTotalTests),'%' ); + PRINT ("| Test cases FAILED = %d\t (%d %c)\n",nTestCount[3], ((100*nTestCount[3])/nTotalTests),'%' ); + PRINT ("| Test cases needs manual check = %d\t (%d %c)\n",nTestCount[4], ((100*nTestCount[4])/nTotalTests),'%' ); + PRINT("|\n|------------------------------------------------------------------------------|\n"); + } + + return 0; +} //end of main + + + + diff --git a/test/libskiahw/SkLibTiJpeg_Test.h b/test/libskiahw/SkLibTiJpeg_Test.h new file mode 100644 index 0000000..a8cdc3f --- /dev/null +++ b/test/libskiahw/SkLibTiJpeg_Test.h @@ -0,0 +1,2560 @@ +/* + * Copyright (C) Texas Instruments - http://www.ti.com/ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +/* ============================================================================== +* Texas Instruments OMAP (TM) Platform Software +* (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. +* +* Use of this software is controlled by the terms and conditions found +* in the license agreement under which this software has been supplied. +* ============================================================================ */ + +#include <dirent.h> + +#include <utils/Mutex.h> + +#include <SkBitmap.h> +#include <SkStream.h> +#include <SkRect.h> +#include <SkImageDecoder.h> +#include <SkImageEncoder.h> + +namespace android { + Mutex countMutex; +}; //namespace android + +//------------------------------------------------------------------------- JPEG +// code byte (which is not an FF). Here are the marker codes of interest +// in this program. (See jdmarker.c for a more complete list.) +//-------------------------------------------------------------------------- + +#define M_SOF0 0xC0 // Start Of Frame N +#define M_SOF1 0xC1 // N indicates which compression process +#define M_SOF2 0xC2 // Only SOF0-SOF2 are now in common use +#define M_SOF3 0xC3 +#define M_SOF5 0xC5 // NB: codes C4 and CC are NOT SOF markers +#define M_SOF6 0xC6 +#define M_SOF7 0xC7 +#define M_SOF9 0xC9 +#define M_SOF10 0xCA +#define M_SOF11 0xCB +#define M_SOF13 0xCD +#define M_SOF14 0xCE +#define M_SOF15 0xCF +#define M_SOI 0xD8 // Start Of Image (beginning of datastream) +#define M_EOI 0xD9 // End Of Image (end of datastream) +#define M_SOS 0xDA // Start Of Scan (begins compressed data) +#define M_JFIF 0xE0 // Jfif marker +#define M_EXIF 0xE1 // Exif marker. Also used for XMP data! +#define M_XMP 0x10E1 // Not a real tag (same value in file as Exif!) +#define M_COM 0xFE // COMment +#define M_DQT 0xDB +#define M_DHT 0xC4 +#define M_DRI 0xDD +#define M_IPTC 0xED // IPTC marker + +typedef unsigned char U8; +typedef unsigned long U32; +typedef signed long S32; +typedef struct dirent DIRENTRY; + +typedef struct JpegDecoderParams +{ + // Quatization Table + // Huffman Table + // SectionDecode; + + // SubRegionDecode + U32 nXOrg; /* X origin*/ + U32 nYOrg; /* Y origin*/ + U32 nXLength; /* X length*/ + U32 nYLength; /* Y length*/ + +}JpegDecoderParams; + +typedef struct _JPEG_IMAGE_INFO { + int nWidth; + int nHeight; +}JPEG_IMAGE_INFO; + +const struct JPGD_TEST_OUTPUT_FILE_LIST { + char fileName[128]; + char md5CheckSumArm[33]; + char md5CheckSumTi[33]; + char md5CheckSumSimcop[33]; + +}st_jpgd_file_list[] = { + +{ // L_SKIA_JPGD_0001: +"4X4_rgb16.raw", +"33c45eaaa35c13d6d252fabe8221dd91", +"6777f86ae4b429920f8d07bb0c287528", +"0" +}, +{ // L_SKIA_JPGD_0002: +"img_70x70_rgb16.raw", +"b472449794580b01ddce086c3c83169d", +"4b055c105bbb139f56626f4c92046e72", +"0" +}, +{ // L_SKIA_JPGD_0003: +"img01_94x80_rgb16.raw", +"bdaad66f662f743b4cbf56be7f1be076", +"22d0747166587e44f50240a13600a02e", +"0" +}, +{ // L_SKIA_JPGD_0004: +"I_000283_SQCIF128x96_prog_rgb16.raw", +"6a2b814d4a706a282272f8a9efde015a", +"b6addcf589c41da5d99ddb6529b1e114", +"0" +}, +{ // L_SKIA_JPGD_0005: +"I_000284_SQCIF128x96_seq_rgb16.raw", +"b6c48670c98941df98fb3115e14b56e2", +"fac7a4514225319acd70652ec94a0311", +"0" +}, +{ // L_SKIA_JPGD_0006: +"I_000280_QQVGA160x120_prog_rgb16.raw", +"9e3ad015a2ed3f1b744abe81cfedd4a4", +"13a09115b8b86ac8a7a1abe308cef60f", +"0" +}, +{ // L_SKIA_JPGD_0007: +"I_000281_QQVGA160X120_seq_rgb16.raw", +"0c4d2eb588b03e757d128b768ec96938", +"333919ec855413d597aad945a53ead56", +"0" +}, +{ // L_SKIA_JPGD_0008: +"I_000278_QCIF176X144_prog_rgb16.raw", +"fbcf17b9a187adfb219311a69f84011c", +"fb527cf55d387dd14d554af9707ed676", +"0" +}, +{ // L_SKIA_JPGD_0009: +"I_000279_QCIF176X144_seq_rgb16.raw", +"7942b30e0756f9d0d790a1b370099eb4", +"f16bd94c374209476bdf01227da0c3b6", +"0" +}, +{ // L_SKIA_JPGD_0010: +"img_200x200_rgb16.raw", +"0b296bdc830b62d7646019a626895e35", +"5fcf5d522c24433bbc69d373061dc2ce", +"0" +}, +{ // L_SKIA_JPGD_0011: +"I_000275_CGA320x200_prog_rgb16.raw", +"783a16e72cce1eb1a7c72eeebf8eb920", +"cef9dac3fbfa4a9da52d653663f42d7d", +"0" +}, +{ // L_SKIA_JPGD_0012: +"I_000276_CGA320x200_seq_rgb16.raw", +"74cc172489f98b96c2eb9c79b839b21c", +"aa93d1d18890dd12f0cdbb4a71f9d043", +"0" +}, +{ // L_SKIA_JPGD_0013: +"I_000282_QVGA320X240_prog_rgb16.raw", +"667a23bebdde74109dedf1630aa20384", +"088cdd4b2caaeea763c5c4f1205c91ad", +"0" +}, +{ // L_SKIA_JPGD_0014: +"laugh_QVGA320x240_seq_rgb16.raw", +"167653ba6e1781430228ff030c3fec5c", +"429af3044e0d902f875a6e7df5bb9a00", +"0" +}, +{ // L_SKIA_JPGD_0015: +"I_000137_VGA_0.3MP_480x640_rgb16.raw", +"d8df96e3c28566b6d8082edc26e0827c", +"5732bc27a98ce6db32c363638b2311e7", +"0" +}, +{ // L_SKIA_JPGD_0016: +"I_000066_SVGA_0.5MP_600x800_rgb16.raw", +"0a99693a2dca9c422e076ea3c4a725d5", +"9ff991c346123198ed7faea71e87376f", +"0" +}, +{ // L_SKIA_JPGD_0017: +"shrek_D1_720x480_rgb16.raw", +"b2275b984c4095be162c69eb79f3ed6d", +"4bbd5d406cc08c1c80ea8d444c0b3525", +"0" +}, +{ // L_SKIA_JPGD_0018: +"I_000245_XGA_0.8MP_768x1024_rgb16.raw", +"b32c6c9a48bd4fc14ab61539a5176102", +"1c7aea5781e525b6a403145f00d52e19", +"0" +}, +{ // L_SKIA_JPGD_0019: +"patzcuaro_800x600_rgb16.raw", +"22250c8afcc1096586ccd816c2b4ce2c", +"3c1bbbf46c8e557492ecb19e422fd1f0", +"0" +}, +{ // L_SKIA_JPGD_0020: +"I_000263_2MP_1600x1200_prog_rgb16.raw", +"36878007a4c078e376ae1396678e3e5c", +"02509a23fe0d09fd21f69182212daf83", +"0" +}, +{ // L_SKIA_JPGD_0021: +"I_000272_2MP_1600x1200_seq_rgb16.raw", +"334ed9f6df8edfc5b1974292f94d53ab", +"1923760e05c6e1392bf865f01d1403e8", +"0" +}, +{ // L_SKIA_JPGD_0022: +"I_000268_5MP_2560x1920_prog_rgb16.raw", +"6da97613f2279ebaaccc4671c2cd4ce2", +"18fa305c19b9628450789ae6858b00d7", +"0" +}, +{ // L_SKIA_JPGD_0023: +"I_000259_5MP_internet_seq_2560x1920_rgb16.raw", +"c5ea648357f5f19f2d47612b7bafe425", +"cd7a903ddd93e9be41b79334249a7fc4", +"0" +}, +{ // L_SKIA_JPGD_0024: +"6MP_3072x2048_internet_seq_rgb16.raw", +"bb233272ea82862a720604492abcf3c8", +"1facb45e2b83b07d6e652b467b98326a", +"0" +}, +{ // L_SKIA_JPGD_0025: +"I_000264_8MP_3264x2448_43_ratio_prog_rgb16.raw", +"8c2b1bd4f4c6660d90494df02286d0ec", +"93a985fec9de9ea97e4c4133e679f704", +"0" +}, +{ // L_SKIA_JPGD_0026: +"I_000261_8MP_internet_seq_4000x2048_rgb16.raw", +"aed86e57f42e74d058769362cb7632c2", +"c63121316e64a7dddb4f63e567455f9f", +"0" +}, +{ // L_SKIA_JPGD_0027: +"I_000266_12MP_4000x3000_prog_rgb16.raw", +"be40a6089cd3c1c3814b747ce03f69c0", +"024ab26e63cb594f738f0b0a02b45101", +"0" +}, +{ // L_SKIA_JPGD_0028: +"I_000265_12MP_4000x3000_seq_rgb16.raw", +"f655ad55870deb7212f476b3127e738b", +"13218edcbff4fc86624fcf70b9d27ed0", +"0" +}, +{ // L_SKIA_JPGD_0029: +"4X4_rgb32.raw", +"e244fadb68ce8ac3fcd6ce86f37e8a0b", +"a509a311c1b0186530c3ead9a2368f07", +"0" +}, +{ // L_SKIA_JPGD_0030: +"I_000283_SQCIF128x96_prog_rgb32.raw", +"f19bc5c1cf98d7719cd880077e212ca9", +"2a9057e6865616b3d1eafb942b897cf8", +"0" +}, +{ // L_SKIA_JPGD_0031: +"I_000276_CGA320x200_seq_rgb32.raw", +"74f933f5e1fdd4831411b1f1cd673b4b", +"24dd2926f0532d8975793e42563586eb", +"0" +}, +{ // L_SKIA_JPGD_0032: +"I_000137_VGA_0.3MP_480x640_rgb32.raw", +"7efc08e4bf5debe3842e101c7868cf71", +"7283b2371644b220d9e7e2c8e7de3e77", +"0" +}, +{ // L_SKIA_JPGD_0033: +"patzcuaro_800x600_rgb32.raw", +"b3704ee97d0fb0b22d5ddf01b7d891c7", +"41ef3153e3029b777583163d2df1828d", +"0" +}, +{ // L_SKIA_JPGD_0034: +"I_000245_XGA_0.8MP_768x1024_rgb32.raw", +"f48363e64f3fcacbca44332f7d908aeb", +"399fcbd4621999ab5f9f0178712f7995", +"0" +}, +{ // L_SKIA_JPGD_0035: +"I_000263_2MP_1600x1200_prog_rgb32.raw", +"d4c44e80ac8e25492d7a0566f71777b3", +"b9af9d8a998ff27a82a8257ab41c7b7c", +"0" +}, +{ // L_SKIA_JPGD_0036: +"I_000259_5MP_internet_seq_2560x1920_rgb32.raw", +"f455cdfd9c07afd35fc3f0e5c22d1a33", +"de70232d3ab011dae6cfd8a9b88105cf", +"0" +}, +{ // L_SKIA_JPGD_0037: +"I_000264_8MP_3264x2448_43_ratio_prog_rgb32.raw", +"b23f3661c17135b4ca6ef4b96ef44329", +"56e7ebc2bf4e87343aba9ebb4206201e", +"0" +}, +{ // L_SKIA_JPGD_0038: +"I_000265_12MP_4000x3000_seq_rgb32.raw", +"665327de8e0d36224f2b11a89903a4a9", +"e3f43253741d2fcfb85e34f318d1f703", +"0" +}, +{ // L_SKIA_JPGD_0039: +"patzcuaro_800x600_rgb16_resized_50.raw", +"726d74fcca1ba33bffe2fa792653b7b8", +"77454844fc4e2d449906ebf48c919bde", +"0" +}, +{ // L_SKIA_JPGD_0040: +"I_000263_2MP_1600x1200_prog_rgb16_resized_50.raw", +"baf09fe07abeb8c2b2b3a61c8b2754d5", +"36a4d22709578fc341eee9fcae92cf7a", +"0" +}, +{ // L_SKIA_JPGD_0041: +"I_000272_2MP_1600x1200_seq_rgb16_resized_25.raw", +"7379d202688ab47aa5bd7abb6aa79b94", +"920ed0fb130eafab849ec9754cad066f", +"0" +}, +{ // L_SKIA_JPGD_0042: +"I_000268_5MP_2560x1920_prog_rgb16_resized_25.raw", +"4c5dd512fdfac1b4f8911b338ea75195", +"5372d22fda640313fffffcfdce42b3d8", +"0" +}, +{ // L_SKIA_JPGD_0043: +"I_000261_8MP_internet_seq_4000x2048_rgb16_resized_12.raw", +"59229d94097c007d64daa093e2b78f63", +"9c86917230195c7694a4b24c9b0c7174", +"0" +}, +{ // L_SKIA_JPGD_0044: +"I_000265_12MP_4000x3000_seq_rgb16_resized_12.raw", +"56ca9a8eb973a5839cafcee48542d76b", +"2757a17da91891646484f85d60613cc2", +"0" +}, +{ // L_SKIA_JPGD_0045: +"patzcuaro_800x600_rgb32_resized_50.raw", +"1c592c12a386af495589653a4b2498c4", +"24bda07f57822232e88ffae9e2901b1a", +"0" +}, +{ // L_SKIA_JPGD_0046: +"I_000263_2MP_1600x1200_prog_rgb32_resized_50.raw", +"4a8890cd782a1c129e27e8f64d872d97", +"fad7c7ba0c78fa361b7d5ef66f5bef2b", +"0" +}, +{ // L_SKIA_JPGD_0047: +"I_000272_2MP_1600x1200_seq_rgb32_resized_25.raw", +"1e584c398e5db31d8c25a4e86aec4ffb", +"06bacc6b6ed21e676937cfded3356ce5", +"0" +}, +{ // L_SKIA_JPGD_0048: +"I_000268_5MP_2560x1920_prog_rgb32_resized_25.raw", +"21165710b87baa80f73b19cbcc693370", +"21453096d209cfb5eb2d56be8f5499d0", +"0" +}, +{ // L_SKIA_JPGD_0049: +"I_000261_8MP_internet_seq_4000x2048_rgb32_resized_12.raw", +"d76a5b77002aa1cf4058c7008cf2841d", +"cd54955716e2d58afc29b7b1656b3aaf", +"0" +}, +{ // L_SKIA_JPGD_0050: +"I_000265_12MP_4000x3000_seq_rgb32_resized_12.raw", +"9ef2c382ad2d7e6f9a450dc1d64efde6", +"e8c62691fe01498927f9e0fe2db2b866", +"0" +}, +{ // L_SKIA_JPGD_0051-001: +"4X4_rgb16_stress-1.raw", +"33c45eaaa35c13d6d252fabe8221dd91", +"6777f86ae4b429920f8d07bb0c287528", +"0" +}, +{ // L_SKIA_JPGD_0051-002: +"img01_94x80_rgb16-stress-2.raw", +"bdaad66f662f743b4cbf56be7f1be076", +"22d0747166587e44f50240a13600a02e", +"0" +}, +{ // L_SKIA_JPGD_0051-003: +"I_000278_QCIF176X144_prog_rgb16-stress-3.raw", +"fbcf17b9a187adfb219311a69f84011c", +"fb527cf55d387dd14d554af9707ed676", +"0" +}, +{ // L_SKIA_JPGD_0051-004: +"img_200x200_rgb16-stress-4.raw", +"0b296bdc830b62d7646019a626895e35", +"5fcf5d522c24433bbc69d373061dc2ce", +"0" +}, +{ // L_SKIA_JPGD_0051-005: +"I_000137_VGA_0.3MP_480x640_rgb16-stress-5.raw", +"d8df96e3c28566b6d8082edc26e0827c", +"5732bc27a98ce6db32c363638b2311e7", +"0" +}, +{ // L_SKIA_JPGD_0051-006: +"shrek_D1_720x480_rgb16-stress-6.raw", +"b2275b984c4095be162c69eb79f3ed6d", +"4bbd5d406cc08c1c80ea8d444c0b3525", +"0" +}, +{ // L_SKIA_JPGD_0051-007: +"patzcuaro_800x600_rgb16-stress-7.raw", +"22250c8afcc1096586ccd816c2b4ce2c", +"3c1bbbf46c8e557492ecb19e422fd1f0", +"0" +}, +{ // L_SKIA_JPGD_0051-008: +"I_000263_2MP_1600x1200_prog_rgb16-stress-8.raw", +"36878007a4c078e376ae1396678e3e5c", +"02509a23fe0d09fd21f69182212daf83", +"0" +}, +{ // L_SKIA_JPGD_0051-009: +"I_000259_5MP_internet_seq_2560x1920_rgb16-stress-9.raw", +"c5ea648357f5f19f2d47612b7bafe425", +"cd7a903ddd93e9be41b79334249a7fc4", +"0" +}, +{ // L_SKIA_JPGD_0051-010: +"I_000265_12MP_4000x3000_seq_rgb16-stress-10.raw", +"f655ad55870deb7212f476b3127e738b", +"13218edcbff4fc86624fcf70b9d27ed0", +"0" +}, +{ // L_SKIA_JPGD_0057-[1]: +"I_000272_2MP_1600x1200_seq_rgb16-parallel-1.raw", +"334ed9f6df8edfc5b1974292f94d53ab", +"1923760e05c6e1392bf865f01d1403e8", +"0" +}, +{ // L_SKIA_JPGD_0057-[2]: +"I_000263_2MP_1600x1200_prog_rgb16-parallel-2.raw", +"36878007a4c078e376ae1396678e3e5c", +"02509a23fe0d09fd21f69182212daf83", +"0" +}, +{ // L_SKIA_JPGD_0058-[1]: +"I_000268_5MP_2560x1920_prog_rgb16-parallel-1.raw", +"6da97613f2279ebaaccc4671c2cd4ce2", +"18fa305c19b9628450789ae6858b00d7", +"0" +}, +{ // L_SKIA_JPGD_0058-[2]: +"shrek_D1_720x480_rgb16-parallel-2.raw", +"b2275b984c4095be162c69eb79f3ed6d", +"4bbd5d406cc08c1c80ea8d444c0b3525", +"0" +}, +{ // L_SKIA_JPGD_0059-[1]-01: +"I_000272_2MP_1600x1200_seq_rgb16-p1.raw", +"334ed9f6df8edfc5b1974292f94d53ab", +"1923760e05c6e1392bf865f01d1403e8", +"0" +}, +{ // L_SKIA_JPGD_0059-[2]-01: +"patzcuaro_800x600_rgb16-p2.raw", +"22250c8afcc1096586ccd816c2b4ce2c", +"3c1bbbf46c8e557492ecb19e422fd1f0", +"0" +}, +{ // L_SKIA_JPGD_0059-[3]-01: +"I_000245_XGA_0.8MP_768x1024_rgb16-p3.raw", +"b32c6c9a48bd4fc14ab61539a5176102", +"1c7aea5781e525b6a403145f00d52e19", +"0" +}, +{ // L_SKIA_JPGD_0061: +"JPEGD_0001_320x240_420.raw", +"1ea086628f60b3817018b1c37b13c7d3", +"0", +"0" +}, +{ // L_SKIA_JPGD_0062: +"JPEGD_0002_64x64_420.raw", +"b27368f4abc20fdbed5a8501138c5926", +"0", +"0" +}, +{ // L_SKIA_JPGD_0063: +"JPEGD_0002_80x60_420.raw", +"84f710f9de064abacf1af5828ef09566", +"0", +"0" +}, +{ // L_SKIA_JPGD_0064: +"JPEGD_0003_eagle_1600x1200_420.raw", +"38908a951529c58c036c7ed3385459cb", +"0", +"0" +}, +{ // L_SKIA_JPGD_0065: +"JPEGD_0004_market_5120x3200_16MP_420.raw", +"99b539962421ff79d2b9dbd0bc3a5595", +"0", +"0" +}, +{ // L_SKIA_JPGD_0066: +"JPEGD_0005_5120x3200_16MP_420.raw", +"31b4de7d46270dc16d2b9720f640c633", +"0", +"0" +}, +{ // L_SKIA_JPGD_0067: +"JPEGD_0006_chile_3072x2048_420.raw", +"68d8d45c20355e89937da3a8a975f424", +"0", +"0" +}, +{ // L_SKIA_JPGD_0068: +"JPEGD_0006_waste_3072x2048_420.raw", +"632a9ef97d84862bfb6d69eefb012b9a", +"0", +"0" +}, +{ // L_SKIA_JPGD_0069: +"JPEGD_0007_ametlles_1280x1024_420.raw", +"fece26808f1f525ed50f8197d0791326", +"0", +"0" +}, +{ // L_SKIA_JPGD_0070: +"JPEGD_0008_flowers_5120x3200_16MP_420.raw", +"4ee28ae2a3111e739ccf1d15c3c4e013", +"0", +"0" +}, +{ // L_SKIA_JPGD_0071: +"JPEGD_0009_3072x2304_7MP_420.raw", +"815c0e0432e9d50b1c5f9be848a81012", +"0", +"0" +}, +{ // L_SKIA_JPGD_0072: +"JPEGD_0009_3072x2304_7MP_422.raw", +"124d4deeeb5779f9e4890e1ea7d13148", +"0", +"0" +}, +{ // L_SKIA_JPGD_0073: +"JPEGD_0010_5088x3392_16MP_422.raw", +"66339f0cd6d69a4653664f60408e7a12", +"0", +"0" +}, +{ // L_SKIA_JPGD_0074: +"JPEGD_0011_5120x3200_color_16MP_420.raw", +"20d77f027613ad475752c32a4cc3fdd7", +"0", +"0" +}, +{ // L_SKIA_JPGD_0075: +"JPEGD_0012_5088x3392_16MP_422.raw", +"66339f0cd6d69a4653664f60408e7a12", +"0", +"0" +}, +{ // L_SKIA_JPGD_0076: +"JPEGD_0013_villa_4096x3072_12MP_420.raw", +"5dc54119be48bbdf9d626c9b585e0acc", +"0", +"0" +}, +{ // L_SKIA_JPGD_0077: +"JPEGD_0014_shredder_3072x3072_9MP_420.raw", +"216b8985c1c97ada359662962a200d27", +"0", +"0" +}, +{ // L_SKIA_JPGD_0078: +"JPEGD_0015_3072x2048_6MP_420.raw", +"632a9ef97d84862bfb6d69eefb012b9a", +"0", +"0" +}, +{ // L_SKIA_JPGD_0079: +"JPEGD_0016_fall_3072x2304_7MP_420.raw", +"eea436a7b377e703eac059b99afb27b0", +"0", +"0" +}, +{ // L_SKIA_JPGD_0080: +"JPEGD_0016_park_3072x2304_7MP_420.raw", +"cc4a002fe9be2d601998f840d102e9b1", +"0", +"0" +}, +{ // L_SKIA_JPGD_0081: +"JPEGD_0017_lily_2048x1536_422.raw", +"a95f1fed84d687f726a2a88ecd231272", +"0", +"0" +}, +{ // L_SKIA_JPGD_0082: +"JPEGD_0018_352x288_420.raw", +"19391a23edc78543a61b98904c2b1e39", +"0", +"0" +}, +{ // L_SKIA_JPGD_0083: +"JPEGD_0019_market_640x480_420.raw", +"b2269b5b00506a44738f5c97181b2a7d", +"0", +"0" +}, +{ // L_SKIA_JPGD_0085: +"JPEGD_0021_eagle_800x480_420.raw", +"02836667b2aced06dfbaed1bb6fccf69", +"0", +"0" +}, +{ // L_SKIA_JPGD_0086: +"JPEGD_0003_eagle_1600x1200_420_25.raw", +"4045e9daa23d06ed2aa9d60f2d87e5c2", +"0", +"0" +}, +{ // L_SKIA_JPGD_0087: +"JPEGD_0003_eagle_1600x1200_420_50.raw", +"97bc7bc25e1acb711eab4a2db1449524", +"0", +"0" +}, +{ // L_SKIA_JPGD_0088: +"JPEGD_0003_eagle_1600x1200_420_RGB32.raw", +"385868604e9978ce8e96778651554fa8", +"0", +"0" +}, +{ // L_SKIA_JPGD_0089: +"6_640x640_panda_nv12.raw", +"988d609cf729bbac933e8450bd9455a4", +"0", +"0" +}, +{ // L_SKIA_JPGD_0091: +"img_odd_res_199x200_rgb16.raw", +"e3fae2536f8df55b50608bf0f59797c8", +"12ca99ee457adb1e0361f096782f2c71", +"0" +}, +{ // L_SKIA_JPGD_0092: +"img_odd_res_200x199_rgb16.raw", +"3cb0ad1a59744bf783ada1829332dc42", +"ec11aa02fa94f44186568cf040db48d3", +"0" +}, +{ // L_SKIA_JPGD_0093: +"img_odd_res_199x199_rgb16.raw", +"b871ede1f4536277de89154b18d8559d", +"53a9e97c99727de6733a80ad2b556fac", +"0" +}, +{ // L_SKIA_JPGD_0094: +"img_odd_res_767x1024_rgb16.raw", +"9b668159b666165a41091d029b126a46", +"490c8cd6f3813a3aac56e4c0a9e0fef8", +"0" +}, +{ // L_SKIA_JPGD_0095: +"img_odd_res_768x1023_rgb16.raw", +"6a42315825f876da9e29cd6864d15d4e", +"6811ba1bf39b953858ec215ae7bc1334", +"0" +}, +{ // L_SKIA_JPGD_0096: +"img_odd_res_767x1023_rgb16.raw", +"25d886e81756c54f9a214285c27bca59", +"a976e1aa21fc0d0ae46ba11dc806f047", +"0" +}, +{ // L_SKIA_JPGD_0097: +"img_odd_res_199x200_rgb32.raw", +"53afc8fa6ef8dbf6f5c0256feb2d4ee9", +"93aa6faebd44c10b13e8b2b0ad21ec89", +"0" +}, +{ // L_SKIA_JPGD_0098: +"img_odd_res_200x199_rgb32.raw", +"df8f86fb5d1477ad7043b2ebbd69f956", +"3c251999e4ed40a097f857b885ecb3d5", +"0" +}, +{ // L_SKIA_JPGD_0099: +"img_odd_res_199x199_rgb32.raw", +"61060bcd8511b0d5139b510f08de4433", +"a70f1ee67d0a6bb01242aa67fa561d06", +"0" +}, +{ // L_SKIA_JPGD_0100: +"img_odd_res_767x1024_rgb32.raw", +"c794bceeaccabe903d687b39d9ad7f97", +"80002ce1ef40df0972d9b4455192807c", +"0" +}, +{ // L_SKIA_JPGD_0101: +"img_odd_res_768x1023_rgb32.raw", +"836b9b90988148239ff34c0d4ba7913a", +"56a47a71b648924900ece4fa727acc36", +"0" +}, +{ // L_SKIA_JPGD_0102: +"img_odd_res_767x1023_rgb32.raw", +"61d76c0b12098fb4df8227178d099f70", +"6b617a091f14314e2f475c1789bddbf9", +"0" +}, +{ // L_SKIA_JPGD_0103: +"img_40x40_rgb16.raw", +"3d0e006970c28cd5c5dc3eefd4329936", +"63139ba7599fe4341dffca68b4d9f1b8", +"0" +}, +{ // L_SKIA_JPGD_0104: +"img_180x160_rgb16.raw", +"fe754abb2a4a931bcc34c440598f078c", +"17d421d84a5ef6273ae9977a2be0a6d1", +"0" +}, +{ // L_SKIA_JPGD_0105: +"img_1MP_1280x800_rgb16.raw", +"e258b6b03941489dbc0549e00f73b6aa", +"fdb8ffb00cb4f365168018377cb5836c", +"0" +}, +{ // L_SKIA_JPGD_0106: +"img_1.3MP_1440x900_rgb16.raw", +"1788231a7d2f575c1c9d6bfc380f91ed", +"94856a4405a1297fcebbdec3db10a3c4", +"0" +}, +{ // L_SKIA_JPGD_0107: +"img_2.3MP_1920x1200_rgb16.raw", +"28b9837fbbcb0abaf8996ec228a911fa", +"2123de76480e46e5d32b148079d1aa32", +"0" +}, +{ // L_SKIA_JPGD_0108: +"img_3.1MP_2048x1536_rgb16.raw", +"c01e2f11774142fd69dfa0da99e64218", +"cfac123a662b5ab620bf70a164485aa5", +"0" +}, +{ // L_SKIA_JPGD_0109: +"img_3.5MP_2048x1800_rgb16.raw", +"1124816889986666e055d05620b8c395", +"ae5dcfe04d5e84d8ebc04dcef8e19bce", +"0" +}, +{ // L_SKIA_JPGD_0110: +"img_4MP_2560x1600_rgb16.raw", +"ee86aea12bf4611011787836600c7260", +"a32cf73ac74dc58562c8682935e5f6f7", +"0" +}, +{ // L_SKIA_JPGD_0111: +"img_4.6MP_2560x1800_rgb16.raw", +"d9386326f79d869606f3a631e1f8f0ae", +"64e7a6ed7853acd63bbfa0355bd45d44", +"0" +}, +{ // L_SKIA_JPGD_0112: +"img_5.5MP_2952x1882_rgb16.raw", +"6efb3a2df62c8714cfe2d5bbee461e83", +"92ee346d094b8aeae743ccad18ad9a39", +"0" +}, +{ // L_SKIA_JPGD_0113: +"img_6.6MP_2842x2357_rgb16.raw", +"77630ea3633b4ff3390756cf78f09b45", +"0617c159a2d646725eb305c4a918776d", +"0" +}, +{ // L_SKIA_JPGD_0114: +"img_7MP_3072x2304_rgb16.raw", +"65eebbbedbca47dd40447af74f47790f", +"43492efa4c692b1b22391a2cd1193d1d", +"0" +}, +{ // L_SKIA_JPGD_0115: +"img_7.5MP_3474x2154_rgb16.raw", +"89b040ef2909b88be8ee5c70d4df7728", +"d19d81deb16ce2d9c05d0966f67558b9", +"0" +}, +{ // L_SKIA_JPGD_0116: +"img_8.4MP_3300x2550_rgb16.raw", +"2e50e6297347b1ccc27b844fc9ce3423", +"908cd33b6a8d7bde6f4a170838631d3e", +"0" +}, +{ // L_SKIA_JPGD_0117: +"img_9MP_3000x3000_rgb16.raw", +"99afe33c9a9d477645a57439ab2cfaf3", +"f92b8cf6f34bc55a87110a77b8080626", +"0" +}, +{ // L_SKIA_JPGD_0118: +"img_9.6MP_3600x2400_rgb16.raw", +"47f8ac4a7f6df2c99307b15eb77f8dd8", +"56d862f49be7e32a4aa1bb0ec850ca00", +"0" +}, +{ // L_SKIA_JPGD_0119: +"img_10MP_3664x2748_rgb16.raw", +"56f7097f38c3b1438f3074c0261d22d6", +"5fe98fd2187bc3c66a2e4b1931e25760", +"0" +}, +{ // L_SKIA_JPGD_0120: +"img_10.5MP_3780x2782_rgb16.raw", +"a719a24905fde0f760ca4d443697314b", +"15eb944841474f5e643fff5f268bb8bc", +"0" +}, +{ // L_SKIA_JPGD_0121: +"img_11MP_4028x2732_rgb16.raw", +"b1fab4fe495f5150b051bc3da59a7f27", +"2ecda0f3d20919187f7ef7dd23c29b93", +"0" +}, +{ // L_SKIA_JPGD_0122: +"img_11.5MP_4195x2763_rgb16.raw", +"abbf36ffbd2205c607f45f392079f8d1", +"03512217ed67fa02c9ecf426d505982c", +"0" +}, +{ // L_SKIA_JPGD_0123: +"img_40x40_prog_rgb16.raw", +"f2cd3028af816c95ea26482465bbc50d", +"32b37b460eeb8178b2f9106e70ecfa12", +"0" +}, +{ // L_SKIA_JPGD_0124: +"img_180x160_prog_rgb16.raw", +"33116dc1c5731efde5cb124ed8dffd8d", +"f9998e2122402d62a4ad871da59ba078", +"0" +}, +{ // L_SKIA_JPGD_0125: +"img_1MP_1280x800_prog_rgb16.raw", +"d74c4adadccc4db34c55d8d257cada0c", +"7cb9d80e3864f7d61ff9255d28aa1b16", +"0" +}, +{ // L_SKIA_JPGD_0126: +"img_1.3MP_1440x900_prog_rgb16.raw", +"8ddbbe0cfcb81b0cc072291cb7bcd5eb", +"2e1a44665b26561df4689ba80a8611cf", +"0" +}, +{ // L_SKIA_JPGD_0127: +"img_2.3MP_1920x1200_prog_rgb16.raw", +"3b1770e1d03a011aeeb8e102e19d6aad", +"1cbcead543fadcde8cdcc188fb340fed", +"0" +}, +{ // L_SKIA_JPGD_0128: +"img_3.1MP_2048x1536_prog_rgb16.raw", +"2278955f1689bf5aecd4bd4026a1b1ae", +"40b3b4bb3821d606f10e792fe23af1b7", +"0" +}, +{ // L_SKIA_JPGD_0129: +"img_3.5MP_2048x1800_prog_rgb16.raw", +"56385e059792d88be41f2694a7abbf3c", +"cf678552d5bb13d5cacd049c9a2d7b06", +"0" +}, +{ // L_SKIA_JPGD_0130: +"img_4MP_2560x1600_prog_rgb16.raw", +"c3bd9e45b52cb6783a6498bfb7ed9eab", +"2d70aa0164f6460f143defb133b7b586", +"0" +}, +{ // L_SKIA_JPGD_0131: +"img_4.6MP_2560x1800_prog_rgb16.raw", +"68fcaf9d2f81c2703573882a2461de6b", +"d0b35f02f5c3a93273abb666d6efe3f2", +"0" +}, +{ // L_SKIA_JPGD_0132: +"img_5.5MP_2952x1882_prog_rgb16.raw", +"57e9673b88451e237c04d9ef48e77b6f", +"f7ca8638ed903097eda11ee522560ce0", +"0" +}, +{ // L_SKIA_JPGD_0133: +"img_6.6MP_2842x2357_prog_rgb16.raw", +"cc3c287c452d3572b7c8535dd0b60d6f", +"f11771283329d7645d5d059d3165a238", +"0" +}, +{ // L_SKIA_JPGD_0134: +"img_7MP_3072x2304_prog_rgb16.raw", +"2b01ea3de7e5de121e746a056adba0c4", +"d84e92536fe793a45d18cd0aa453e4a2", +"0" +}, +{ // L_SKIA_JPGD_0135: +"img_7.5MP_3474x2154_prog_rgb16.raw", +"22632143e82ee756b1125196be1ef629", +"61137f2d0ab3eb793e47accd7d9f5bbc", +"0" +}, +{ // L_SKIA_JPGD_0136: +"img_8.4MP_3300x2550_prog_rgb16.raw", +"202844bbcc483aba797fd7989cda5be6", +"74ef4244ed653c169ff018d5625d4f53", +"0" +}, +{ // L_SKIA_JPGD_0137: +"img_9MP_3000x3000_prog_rgb16.raw", +"fe66d338d0923c715a6efb53daf41d01", +"34ab565c1fc50295e2042891e04ba18a", +"0" +}, +{ // L_SKIA_JPGD_0138: +"img_9.6MP_3600x2400_prog_rgb16.raw", +"436d77caa05ca007a8ec9faf4eb6d35f", +"666ae67916133e0b99c4250d2625275e", +"0" +}, +{ // L_SKIA_JPGD_0139: +"img_10MP_3664x2748_prog_rgb16.raw", +"d1a85fd39edcec99521affb2c9f15609", +"1ed236a4ff1b9f4ff17a87fcad0afe2d", +"0" +}, +{ // L_SKIA_JPGD_0140: +"img_10.5MP_3780x2782_prog_rgb16.raw", +"8a2b6a84b3a21500ed802ce847a8d35d", +"e778a356cbf67b7e89c6bd2e9a5cbff4", +"0" +}, +{ // L_SKIA_JPGD_0141: +"img_11MP_4028x2732_prog_rgb16.raw", +"455a957b564eec455e629ae16c013b8e", +"e04ce2755be9ec5d4bb24c822c750cf3", +"0" +}, +{ // L_SKIA_JPGD_0142: +"img_11.5MP_4195x2763_prog_rgb16.raw", +"2eb9bfc4867cfbb78a4761c683c3e1d2", +"aa684887a67b414fed278782f0016de6", +"0" +}, +{ // L_SKIA_JPGD_0143: +"img_1MP_1280x800_SF2_rgb32.raw", +"7713330ebf34804a10b371373d9f3d0f", +"5aca25621deaf471cbb861731d83da78", +"0" +}, +{ // L_SKIA_JPGD_0144: +"img_1.3MP_1440x900_SF2_rgb32.raw", +"71828a1142d6aa7eba780320555156a7", +"cf8ff7ef85517d576fbd5fbda692caef", +"0" +}, +{ // L_SKIA_JPGD_0145: +"img_2.3MP_1920x1200_SF2_rgb32.raw", +"2c0af1df3ea7768519d7c110449981c9", +"79f40193523425e158ae6498f90f57de", +"0" +}, +{ // L_SKIA_JPGD_0146: +"img_3.1MP_2048x1536_SF2_rgb32.raw", +"7b825bc9041c1c932ff1a6a1b6e63138", +"01c23cc5ec67caa8bf00eb370202b8d2", +"0" +}, +{ // L_SKIA_JPGD_0147: +"img_3.5MP_2048x1800_SF2_rgb32.raw", +"8319abbf0f96060a130e16fa1ed32946", +"a30fb77e3c15b3ca98db90de2d874e91", +"0" +}, +{ // L_SKIA_JPGD_0148: +"img_4MP_2560x1600_SF2_rgb32.raw", +"edf8e4f2e006a3bbfc4114488d090570", +"4014bc62cc595410d1d857fd89f077ae", +"0" +}, +{ // L_SKIA_JPGD_0149: +"img_4.6MP_2560x1800_SF2_rgb32.raw", +"7d03aebeac0b7ddf1cee721a9e481c86", +"51399d3c549ac7da358af8fab4679027", +"0" +}, +{ // L_SKIA_JPGD_0150: +"img_5.5MP_2952x1882_SF2_rgb32.raw", +"6f0b29f0e4c6f5df7d5502c8c29c2e6c", +"0ccc7a136461e5665032b3ba49b569e4", +"0" +}, +{ // L_SKIA_JPGD_0151: +"img_6.6MP_2842x2357_SF2_rgb32.raw", +"c5db4ec7723eccf34115bf5d3427aff9", +"df47af347ce2da509c3ec9ff43dccc50", +"0" +}, +{ // L_SKIA_JPGD_0152: +"img_7MP_3072x2304_SF2_rgb32.raw", +"8c2f77a98eed33fcc5ad0239f7290343", +"5c2d1fdec6eab435743f6186e33f66e8", +"0" +}, +{ // L_SKIA_JPGD_0153: +"img_7.5MP_3474x2154_SF2_rgb32.raw", +"03be867848e682a93cfe97bde2169b1c", +"f2e76e1cf09028fd518bb6d28f2e6596", +"0" +}, +{ // L_SKIA_JPGD_0154: +"I_000261_8MP_4000x2048_SF2_rgb32.raw", +"22b9ea334e0df8882171d466de024003", +"09f6913f276fa22511c0f9d461b57716", +"0" +}, +{ // L_SKIA_JPGD_0155: +"img_8.4MP_3300x2550_SF2_rgb32.raw", +"628fa442b73b6d250bd48b5ff01793b1", +"f794ccbbabb572cac7c821215de03565", +"0" +}, +{ // L_SKIA_JPGD_0156: +"img_9MP_3000x3000_SF2_rgb32.raw", +"e03e5606a64b3e750cbad841839670eb", +"a6c5fd3b7b824e90d459352a5ef108b7", +"0" +}, +{ // L_SKIA_JPGD_0157: +"img_9.6MP_3600x2400_SF2_rgb32.raw", +"ef2d8fec99d64ba4538fc83dcbfcf3c2", +"f852aab988eee10b67d0ddd55110664c", +"0" +}, +{ // L_SKIA_JPGD_0158: +"img_10MP_3664x2748_SF2_rgb32.raw", +"efde797d2b9d0ad45916bdb9e45d3d45", +"5f400b17c4c06641ea92b100e0be7a7a", +"0" +}, +{ // L_SKIA_JPGD_0159: +"img_10.5MP_3780x2782_SF2_rgb32.raw", +"62c4090823d861da52bc577273158285", +"92d6eb70eac1c591444ed039413e0002", +"0" +}, +{ // L_SKIA_JPGD_0160: +"img_11MP_4028x2732_SF2_rgb32.raw", +"0cbafe730884745a7fa3ad8ac1f54eb5", +"d1f7a3404293bccae65dcdaf5887ed25", +"0" +}, +{ // L_SKIA_JPGD_0161: +"img_11.5MP_4195x2763_SF2_rgb32.raw", +"16679ff95b950e0b7283b86536326de1", +"306afa493b83175b1740fdc9af11f63c", +"0" +}, +{ // L_SKIA_JPGD_0162: +"I_000265_12MP_4000x3000_SF2_rgb32.raw", +"8f982bbdb80b846da6dc397568da4e7a", +"c9388e39723057e6e3bb0232f29bdae4", +"0" +}, +{ // L_SKIA_JPGD_0163: +"img_1MP_1280x800_prog_SF2_rgb32.raw", +"625f1f29409db8707b8db43d65970861", +"4f9688f0bd96fb937bc76bdbbdc5dbd1", +"0" +}, +{ // L_SKIA_JPGD_0164: +"img_1.3MP_1440x900_prog_SF2_rgb32.raw", +"5966a57ca9427cc6711e46a655b67845", +"b2ad642905a7e690361d9cffda3c285f", +"0" +}, +{ // L_SKIA_JPGD_0165: +"img_2.3MP_1920x1200_prog_SF2_rgb32.raw", +"a9df28a51759e16838f747c7b5c5de54", +"cbb2546dd17639f98b9b8d3ad59331bf", +"0" +}, +{ // L_SKIA_JPGD_0166: +"img_3.1MP_2048x1536_prog_SF2_rgb32.raw", +"38bd18ec9327b34965753a3337bb367a", +"0125d487645fdc6534b2e688758a4d98", +"0" +}, +{ // L_SKIA_JPGD_0167: +"img_3.5MP_2048x1800_prog_SF2_rgb32.raw", +"24144aa4214eb25800eac1374ca71505", +"dd65e4c22f7e5d8a41f675161260ab26", +"0" +}, +{ // L_SKIA_JPGD_0168: +"img_4MP_2560x1600_prog_SF2_rgb32.raw", +"35d66005095beab7590de0f3f8e583e5", +"763565ae63901ba5d2fb9b34a1676df9", +"0" +}, +{ // L_SKIA_JPGD_0169: +"img_4.6MP_2560x1800_prog_SF2_rgb32.raw", +"6deb57950f28f5b18e748444c13ce90c", +"350899a74ecb3e191fb1ecfebf0a72d7", +"0" +}, +{ // L_SKIA_JPGD_0170: +"img_5.5MP_2952x1882_prog_SF2_rgb32.raw", +"2a9cf43c3f69ced33a3ce04d1b1e243a", +"26a59ef0b34d5f9a2f6de96a3f2d21d1", +"0" +}, +{ // L_SKIA_JPGD_0171: +"img_6.6MP_2842x2357_prog_SF2_rgb32.raw", +"7b2638b0a36469f042fca29d70756b54", +"622bfe377bc43a465a72f682e82248cc", +"0" +}, +{ // L_SKIA_JPGD_0172: +"img_7MP_3072x2304_prog_SF2_rgb32.raw", +"a4912008aa68e5c88999f473004e60d6", +"aa3405b3edc58be69ef01c5d07c74ef7", +"0" +}, +{ // L_SKIA_JPGD_0173: +"img_7.5MP_3474x2154_prog_SF2_rgb32.raw", +"140d3693971229a162f64ce12f9ecfb4", +"5fc4969f30037e32d852c9d4824c02f8", +"0" +}, +{ // L_SKIA_JPGD_0174: +"I_000264_8MP_3264x2448_prog_SF2_rgb32.raw", +"469f61180fbac3ca0beb751207739147", +"a3c2773cf15b241bf39cacda3aa241a8", +"0" +}, +{ // L_SKIA_JPGD_0175: +"img_8.4MP_3300x2550_prog_SF2_rgb32.raw", +"b12f4f1d1c6d45d541eae05c52f4c36e", +"b8e0d0a1aaab291663ecda68b8f1bbcf", +"0" +}, +{ // L_SKIA_JPGD_0176: +"img_9MP_3000x3000_prog_SF2_rgb32.raw", +"b12b0c1eba01fbbe72d21532876bd88b", +"06f465452f9e0ea3c871dc88532bdf7a", +"0" +}, +{ // L_SKIA_JPGD_0177: +"img_9.6MP_3600x2400_prog_SF2_rgb32.raw", +"e0351fda00064463d482798618ed1171", +"6ddac2a18e902500353d8e2e67d7102c", +"0" +}, +{ // L_SKIA_JPGD_0178: +"img_10MP_3664x2748_prog_SF2_rgb32.raw", +"391c3007b88bed07b7d7b253479ec94a", +"25a1d6a6b98e8ccaf0d5c92318967dcc", +"0" +}, +{ // L_SKIA_JPGD_0179: +"img_10.5MP_3780x2782_prog_SF2_rgb32.raw", +"6854cb0bf6b39db5e7d7c223e6888ca3", +"189f2027479f971fbc37ac7a8d97f94d", +"0" +}, +{ // L_SKIA_JPGD_0180: +"img_11MP_4028x2732_prog_SF2_rgb32.raw", +"f3f7c4c38e71d4d304ca632131484707", +"169568584f1e6580e474822f53710f2d", +"0" +}, +{ // L_SKIA_JPGD_0181: +"img_11.5MP_4195x2763_prog_SF2_rgb32.raw", +"42d2b008ef2df524661ab6305703b25c", +"6aec05cd8119cc4346e549d9c2b57fb9", +"0" +}, +{ // L_SKIA_JPGD_0182: +"I_000266_12MP_4000x3000_prog_SF2_rgb32.raw", +"dcee94245ebda172cacc58233fe55099", +"7a590855d01907ffc46c1fdec12fed66", +"0" +}, +{ // L_SKIA_JPGD_0183: +"img_1MP_1280x800_SF4_rgb32.raw", +"c4fdd6a291ceecd8542f4b813d7d9cc3", +"addc9525b7ed043bff481b5634db33db", +"0" +}, +{ // L_SKIA_JPGD_0184: +"img_1.3MP_1440x900_SF4_rgb32.raw", +"ad70ddfdf0ed81dd163fe8c0f000f696", +"3940da8aa4d511c18976f475d9fef4f2", +"0" +}, +{ // L_SKIA_JPGD_0185: +"img_2.3MP_1920x1200_SF4_rgb32.raw", +"5b7836820e7960ff6113fc3be6b46eca", +"4c00e8aa6f5440e80dfee213caab66e5", +"0" +}, +{ // L_SKIA_JPGD_0186: +"img_3.1MP_2048x1536_SF4_rgb32.raw", +"d0eecf1e2cde003a016da809a369f628", +"d9c4e613fc6e9167dc8ad3bbcd811ba0", +"0" +}, +{ // L_SKIA_JPGD_0187: +"img_3.5MP_2048x1800_SF4_rgb32.raw", +"94ad070f99af4256af036eddb48b7cc5", +"81b85c11a654830022e5728db2522cd9", +"0" +}, +{ // L_SKIA_JPGD_0188: +"img_4MP_2560x1600_SF4_rgb32.raw", +"a4f8ad12c48e98140c2975c67c121785", +"ec9bc0847379ae2f00b12254cd62221e", +"0" +}, +{ // L_SKIA_JPGD_0189: +"img_4.6MP_2560x1800_SF4_rgb32.raw", +"2a9acd2bbeeabe99e0090ad874056e67", +"6fc436a59f767325f6cb4ebf34e1acf9", +"0" +}, +{ // L_SKIA_JPGD_0190: +"img_5.5MP_2952x1882_SF4_rgb32.raw", +"5627a21a0de54faabe5515a47632a93a", +"2e40dfc269684f64e19559272ed74aa6", +"0" +}, +{ // L_SKIA_JPGD_0191: +"img_6.6MP_2842x2357_SF4_rgb32.raw", +"26a621af674b4a7ad1aa781e72b4c21c", +"09fd71a0814dd20c7e98cd6be9fc988c", +"0" +}, +{ // L_SKIA_JPGD_0192: +"img_7MP_3072x2304_SF4_rgb32.raw", +"59cb3e201b94498cb9030c59e3ba5158", +"d53583a7de3da9ad6563a4c73a511b56", +"0" +}, +{ // L_SKIA_JPGD_0193: +"img_7.5MP_3474x2154_SF4_rgb32.raw", +"1521d850695f20cb0d4505f4014b6403", +"a072bea579129c7bd00533d89eb53503", +"0" +}, +{ // L_SKIA_JPGD_0194: +"I_000261_8MP_4000x2048_SF4_rgb32.raw", +"d357e2f00c0afe5fec553a312cf9fde7", +"62a8d8e787ccb5fdebac7eac0faf1a02", +"0" +}, +{ // L_SKIA_JPGD_0195: +"img_8.4MP_3300x2550_SF4_rgb32.raw", +"d86f02c9941ad34451093794b0bef7d5", +"ebe8ee11e8042a7ab55f6879f5642768", +"0" +}, +{ // L_SKIA_JPGD_0196: +"img_9MP_3000x3000_SF4_rgb32.raw", +"7879d98e61ab8c855ccab2bf65151576", +"5c9294be06d23aae52f947f35cb7b452", +"0" +}, +{ // L_SKIA_JPGD_0197: +"img_9.6MP_3600x2400_SF4_rgb32.raw", +"10b1ad465a6b9c7ed50c8eed67bad761", +"98acd9418f4290facd816658e87fae85", +"0" +}, +{ // L_SKIA_JPGD_0198: +"img_10MP_3664x2748_SF4_rgb32.raw", +"1c9ae5b839a562052fa20ee3d2e8dbf8", +"c6f346a995302e1c96018049362f37c7", +"0" +}, +{ // L_SKIA_JPGD_0199: +"img_10.5MP_3780x2782_SF4_rgb32.raw", +"99bd7230b39d99934236a964e7b9deb0", +"02064f8059873e8bbee6de4a02a2bf37", +"0" +}, +{ // L_SKIA_JPGD_0200: +"img_11MP_4028x2732_SF4_rgb32.raw", +"f4c4973a502e253ec01cbabeff67eb59", +"98b9bb982061e239cf29870b2aee5db3", +"0" +}, +{ // L_SKIA_JPGD_0201: +"img_11.5MP_4195x2763_SF4_rgb32.raw", +"12fa798a17d029bf448605a24c286ff1", +"30c500ed5a956e0784cab38e403830b9", +"0" +}, +{ // L_SKIA_JPGD_0202: +"I_000265_12MP_4000x3000_SF4_rgb32.raw", +"74ab67c13317f5a4251c9303e59091d1", +"f286f1767f3b55990f55b87fd5a1be86", +"0" +}, +{ // L_SKIA_JPGD_0203: +"img_1MP_1280x800_prog_SF4_rgb32.raw", +"dc376ad17a1951eeaa7fdecdcfe3194e", +"31ecd9f3082ceccd6125b54d4fed9764", +"0" +}, +{ // L_SKIA_JPGD_0204: +"img_1.3MP_1440x900_prog_SF4_rgb32.raw", +"03c66f7748885d9b6bae8f8b6f2afdf9", +"5c36a92c5cd875cb08e5021df131cf77", +"0" +}, +{ // L_SKIA_JPGD_0205: +"img_2.3MP_1920x1200_prog_SF4_rgb32.raw", +"e8d083d07de164689635dc2387b93c73", +"565104406eb86815780fe3c68c5a4931", +"0" +}, +{ // L_SKIA_JPGD_0206: +"img_3.1MP_2048x1536_prog_SF4_rgb32.raw", +"5b864c715234d17dc2e9d7b71f150884", +"7bea36e86d784cc228515776d62833f5", +"0" +}, +{ // L_SKIA_JPGD_0207: +"img_3.5MP_2048x1800_prog_SF4_rgb32.raw", +"9e8ac9907fc395d7b1919e035ba6262f", +"ed430a13b2f9d38abd4ce61a07aac4c6", +"0" +}, +{ // L_SKIA_JPGD_0208: +"img_4MP_2560x1600_prog_SF4_rgb32.raw", +"058cde0bdb5e8ac61cdae104a388fd6f", +"47cb38d503e02876abd235124961b8e6", +"0" +}, +{ // L_SKIA_JPGD_0209: +"img_4.6MP_2560x1800_prog_SF4_rgb32.raw", +"291af0862059ed9f6980ba09a2f341a8", +"b524d7dc8b43088023f98f9c1a83573e", +"0" +}, +{ // L_SKIA_JPGD_0210: +"img_5.5MP_2952x1882_prog_SF4_rgb32.raw", +"3bfacda31ac3841cdb6a9c42702ab82a", +"06b5f1a7116b57695bf17af9fd4a1b8a", +"0" +}, +{ // L_SKIA_JPGD_0211: +"img_6.6MP_2842x2357_prog_SF4_rgb32.raw", +"38544e13a52dc7cd0282613c5ab1f65a", +"60d749cb20b947ee2f7756602fd550a1", +"0" +}, +{ // L_SKIA_JPGD_0212: +"img_7MP_3072x2304_prog_SF4_rgb32.raw", +"69144f0509436243e791bb4aa473c2e2", +"688a7d6c099d177c6b1eae1c248e5c50", +"0" +}, +{ // L_SKIA_JPGD_0213: +"img_7.5MP_3474x2154_prog_SF4_rgb32.raw", +"8f049d7801023e9e14b16dfc54bb9dbe", +"fec74f1096c6bee5ff40ca438b4eea4e", +"0" +}, +{ // L_SKIA_JPGD_0214: +"I_000264_8MP_3264x2448_prog_SF4_rgb32.raw", +"ffa2f73f1cc106b83bcdafd2927187e0", +"936941cfa76f301c2d6208c16829841f", +"0" +}, +{ // L_SKIA_JPGD_0215: +"img_8.4MP_3300x2550_prog_SF4_rgb32.raw", +"49ac040e906b238ac85dcd65bd9b612a", +"a41db1f464ea56726a66575d14be698d", +"0" +}, +{ // L_SKIA_JPGD_0216: +"img_9MP_3000x3000_prog_SF4_rgb32.raw", +"0fabeb20fef08ee32987d5664d568448", +"f88cbec222a455b562eaed8b787c5fc5", +"0" +}, +{ // L_SKIA_JPGD_0217: +"img_9.6MP_3600x2400_prog_SF4_rgb32.raw", +"80ce46c84e34739ca1909aea5bc11d02", +"63b2940ad1fb7d6fe39d84f6cacb2057", +"0" +}, +{ // L_SKIA_JPGD_0218: +"img_10MP_3664x2748_prog_SF4_rgb32.raw", +"5eee3454f2f518afc8032d4eb0e43bc8", +"5da3adb0832ed25332afbef41ff731f5", +"0" +}, +{ // L_SKIA_JPGD_0219: +"img_10.5MP_3780x2782_prog_SF4_rgb32.raw", +"683889a714d9fc0fc1f0eaf2bc79c35e", +"c22c7111965e88514ff1e79e487efb3e", +"0" +}, +{ // L_SKIA_JPGD_0220: +"img_11MP_4028x2732_prog_SF4_rgb32.raw", +"1b042b891f5cc583f8d126e609aec69b", +"9c4ed0cb3b768704e670bc2c91e93d52", +"0" +}, +{ // L_SKIA_JPGD_0221: +"img_11.5MP_4195x2763_prog_SF4_rgb32.raw", +"9429bb521e608eb58869aced9aa815f1", +"2cf72cc66eb10dc2bc4af9cd96be50a6", +"0" +}, +{ // L_SKIA_JPGD_0222: +"I_000266_12MP_4000x3000_prog_SF4_rgb32.raw", +"9019ae5fd772853fd30b2a60176a0195", +"bf467bb162b69a3aea841dcd43418880", +"0" +}, +{ // L_SKIA_JPGD_0223: +"img_1MP_1280x800_SF8_rgb32.raw", +"1a0d8a719bce3878ac0cfd2b2f7288f6", +"f7af8b96f6f912da7633dafd575a457b", +"0" +}, +{ // L_SKIA_JPGD_0224: +"img_1.3MP_1440x900_SF8_rgb32.raw", +"a7ed4000ab046c57db220c678da25994", +"b9abab8cc025bd44480d7ce7d9708b00", +"0" +}, +{ // L_SKIA_JPGD_0225: +"img_2.3MP_1920x1200_SF8_rgb32.raw", +"6ea14942fca529954b245de07da1493e", +"2a65952d146e2689327e97698193742e", +"0" +}, +{ // L_SKIA_JPGD_0226: +"img_3.1MP_2048x1536_SF8_rgb32.raw", +"7808cf9255a0ddaac5355dd3d886c290", +"b0a1cb29c0da12a164b08dd3cc8d5876", +"0" +}, +{ // L_SKIA_JPGD_0227: +"img_3.5MP_2048x1800_SF8_rgb32.raw", +"3cc38165b8a8c1dd74ca91a82841a3b4", +"bb45cd6c7a59b812b229d9911a991cbe", +"0" +}, +{ // L_SKIA_JPGD_0228: +"img_4MP_2560x1600_SF8_rgb32.raw", +"6b489766b17732442c11992f3c8672d0", +"c2ec199586da3e6e30cd78bbf6647095", +"0" +}, +{ // L_SKIA_JPGD_0229: +"img_4.6MP_2560x1800_SF8_rgb32.raw", +"2eea12ad6ec8f9f566a59e93ba0c718b", +"48fa621426d49cecb2efbdd8254c56e5", +"0" +}, +{ // L_SKIA_JPGD_0230: +"img_5.5MP_2952x1882_SF8_rgb32.raw", +"df042cfc54c6d3ec0c51379802e216bc", +"f83f8a2a19cf241f5a41a3dd0cd88030", +"0" +}, +{ // L_SKIA_JPGD_0231: +"img_6.6MP_2842x2357_SF8_rgb32.raw", +"cc3a563b4b1b384b612455038aeb24d2", +"7e4959cde1e622eb185a8702eed7d793", +"0" +}, +{ // L_SKIA_JPGD_0232: +"img_7MP_3072x2304_SF8_rgb32.raw", +"67fa158cd7b18d171220e804af202a58", +"c3f2cbb8066650ae1950893d8d57f49b", +"0" +}, +{ // L_SKIA_JPGD_0233: +"img_7.5MP_3474x2154_SF8_rgb32.raw", +"24475783fa9ee1ba9268d98cd33193b0", +"911fb7dd4daaf5d75a29e394de3e1eee", +"0" +}, +{ // L_SKIA_JPGD_0234: +"I_000259_5MP_2560x1920_SF8_rgb32.raw", +"e003ee795cde8cbebcdae4bbacb56cec", +"8c97ed132e2890cdc5d30c04e066bc6d", +"0" +}, +{ // L_SKIA_JPGD_0235: +"img_8.4MP_3300x2550_SF8_rgb32.raw", +"a64dcc859a0183c292f04fc741497441", +"80e75969a202970fb828586a8c16f603", +"0" +}, +{ // L_SKIA_JPGD_0236: +"img_9MP_3000x3000_SF8_rgb32.raw", +"5d908ae9f60b0765dc8282e0873f7ae9", +"b29a218bbe5e5642203873cc228d991a", +"0" +}, +{ // L_SKIA_JPGD_0237: +"img_9.6MP_3600x2400_SF8_rgb32.raw", +"6ffa20aaa632e1a06aadfbaa71980372", +"620a003a9b58d5e8a864ae18a080abe0", +"0" +}, +{ // L_SKIA_JPGD_0238: +"img_10MP_3664x2748_SF8_rgb32.raw", +"b49a2c75c8452906a73cc9b7a0bf9749", +"2332f935d3ca296bf5da1af52004f8c5", +"0" +}, +{ // L_SKIA_JPGD_0239: +"img_10.5MP_3780x2782_SF8_rgb32.raw", +"463ca2c33ba2da8d6c50e6fe45cee781", +"40eb80fd35c5fdc1d5094322ca6ccc51", +"0" +}, +{ // L_SKIA_JPGD_0240: +"img_11MP_4028x2732_SF8_rgb32.raw", +"b4e1ba10b8d98300bfb64a168434ae46", +"db4155308c235be81ee402db7dca939d", +"0" +}, +{ // L_SKIA_JPGD_0241: +"img_11.5MP_4195x2763_SF8_rgb32.raw", +"1005ec85fd3817837a1058d7841c846f", +"3ca4dbc6b88c8c32a9ca081cc3e75145", +"0" +}, +{ // L_SKIA_JPGD_0242: +"6MP_3072x2048_SF8_rgb32.raw", +"904280669b7d301af23ed507cf25477b", +"23841b99dc68d1c6f546de8bb9e0e3b9", +"0" +}, +{ // L_SKIA_JPGD_0243: +"img_1MP_1280x800_prog_SF8_rgb32.raw", +"b7ab8efe2997bed30f43c81649070a12", +"83c55ec046bca3a8e17405566ea90df5", +"0" +}, +{ // L_SKIA_JPGD_0244: +"img_1.3MP_1440x900_prog_SF8_rgb32.raw", +"44a2b6bbcac06922020a4055add4e540", +"78c32547205a12a25d6c4d2566ce1c35", +"0" +}, +{ // L_SKIA_JPGD_0245: +"img_2.3MP_1920x1200_prog_SF8_rgb32.raw", +"fc0f37746e0807237f0c30ef9c9c0256", +"a2a4247f2b0b74b386b440b28bef1395", +"0" +}, +{ // L_SKIA_JPGD_0246: +"img_3.1MP_2048x1536_prog_SF8_rgb32.raw", +"6c1545c2997fff5dd9bfe470bb34b9c1", +"146553718cb36dfaf0941ccf284b5600", +"0" +}, +{ // L_SKIA_JPGD_0247: +"img_3.5MP_2048x1800_prog_SF8_rgb32.raw", +"676795a30158a3d2a8057886cb58116a", +"1f72ab436ddcff3e51cafb657782b2fb", +"0" +}, +{ // L_SKIA_JPGD_0248: +"img_4MP_2560x1600_prog_SF8_rgb32.raw", +"dcf1be2e7af615a92e5b64dcf113d437", +"202610ee72a97ce62c93fcd34e48b754", +"0" +}, +{ // L_SKIA_JPGD_0249: +"img_4.6MP_2560x1800_prog_SF8_rgb32.raw", +"8f9a697b631ce90fb4a6a38c6636910b", +"38d7d9bb9ffa94535916c4232e7000ab", +"0" +}, +{ // L_SKIA_JPGD_0250: +"img_5.5MP_2952x1882_prog_SF8_rgb32.raw", +"29fe2d1159c47aadebcd34e9a45c3afb", +"216ab790dfc70218c1a5cb6ab3eaf6ab", +"0" +}, +{ // L_SKIA_JPGD_0251: +"img_6.6MP_2842x2357_prog_SF8_rgb32.raw", +"f19a5e1365bf8284ef97f60d9f46448d", +"e10f8e686d43255baffc5fcccdc120af", +"0" +}, +{ // L_SKIA_JPGD_0252: +"img_7MP_3072x2304_prog_SF8_rgb32.raw", +"eb1be1f186dc4232c4f628aec1ba8f0b", +"ec6654204ca84e1b8438bc01c015ea53", +"0" +}, +{ // L_SKIA_JPGD_0253: +"img_7.5MP_3474x2154_prog_SF8_rgb32.raw", +"e5706b5b7c676c7c75c259935f801411", +"dc715147fc4c4b3c1509dc164c6d9681", +"0" +}, +{ // L_SKIA_JPGD_0254: +"I_000264_8MP_3264x2448_prog_SF8_rgb32.raw", +"d5ec45777bc75169b5b769555f04c3d5", +"01c9168265725172aaba2de3c2d53b1b", +"0" +}, +{ // L_SKIA_JPGD_0255: +"I_000263_2MP_1600x1200_prog_SF8_rgb32.raw", +"e18971b44631a29dfb9c732443134f3f", +"1fc2ef9e96aee2f4f41483faa6ce3917", +"0" +}, +{ // L_SKIA_JPGD_0256: +"img_9MP_3000x3000_prog_SF8_rgb32.raw", +"cc5f0049d4a544afe0b3df415570803d", +"0baf86777df0811b582d98b0fe01f104", +"0" +}, +{ // L_SKIA_JPGD_0257: +"img_9.6MP_3600x2400_prog_SF8_rgb32.raw", +"4bd5b7067cd48be9e131693c93c98b65", +"fee131822cd895aae2d2e548f1a3440e", +"0" +}, +{ // L_SKIA_JPGD_0258: +"img_10MP_3664x2748_prog_SF8_rgb32.raw", +"24eed0ef96820335ed8749ded3a57a08", +"e13ae55d320ca92e22021d96268cb76e", +"0" +}, +{ // L_SKIA_JPGD_0259: +"img_10.5MP_3780x2782_prog_SF8_rgb32.raw", +"0c997f0fec40b545a0ecfd5f264c5988", +"b0e0b5f6cc2c143ae77b020e248cc223", +"0" +}, +{ // L_SKIA_JPGD_0260: +"img_11MP_4028x2732_prog_SF8_rgb32.raw", +"a4991c9aa8e8754d1ddef50259fe2de8", +"d99eb71dd8c7b3ed1f7e686a22271967", +"0" +}, +{ // L_SKIA_JPGD_0261: +"img_11.5MP_4195x2763_prog_SF8_rgb32.raw", +"edeea158fd40da8dec3b5efc2f68cc6b", +"b3d3eeae46a3ff175198b6322ded0d90", +"0" +}, +{ // L_SKIA_JPGD_0262: +"I_000268_5MP_2560x1920_prog_SF8_rgb32.raw", +"4f10bafac67a821fa7d3447f0fc8f542", +"a31f2b4d7c15c45fac1c20aa31bf231e", +"0" +}, +{ // L_SKIA_JPGD_0263: +"I_000066_SVGA_SR_LT_256x256_rgb16.raw", +"0c53cf262ca55a71d3a820e879024b77", +"3bc350a02438afd1affb0e4d403118a7", +"0" +}, +{ // L_SKIA_JPGD_0264: +"I_000066_SVGA_SR_RT_256x256_rgb16.raw", +"8ca61d0e7557926f72db1743096c47e6", +"9aec56961b08f857f7c133fbae58ae6a", +"0" +}, +{ // L_SKIA_JPGD_0265: +"I_000066_SVGA_SR_LB_256x256_rgb16.raw", +"b7bda0523919cb74ba6b98c57b3fb11f", +"1492db6dab4ed6cff2276ab9f41d5deb", +"0" +}, +{ // L_SKIA_JPGD_0266: +"I_000066_SVGA_SR_RB_256x256_rgb16.raw", +"89ca5432942a96337b2cb1e107f81c97", +"330e34b246153b4fc8cfdcf3b8951f28", +"0" +}, +{ // L_SKIA_JPGD_0267: +"I_000066_SVGA_SR_M_256x256_rgb16.raw", +"2065bd1764de398b1bab8b755f3b520c", +"a216e47d2428f8ee457787a569f3b5ad", +"0" +}, +{ // L_SKIA_JPGD_0268: +"I_000272_2MP_SR_LT_256x256_seq_rgb16.raw", +"264936f6429922fb4d63c2b161c61ac6", +"342da694feb99e82a3e79802db36696f", +"0" +}, +{ // L_SKIA_JPGD_0269: +"I_000272_2MP_SR_RT_256x256_seq_rgb16.raw", +"567ddba4a011d03cf0b32050431df893", +"54ef3d1b7b1a5a12bcfd0f37f9680b18", +"0" +}, +{ // L_SKIA_JPGD_0270: +"I_000272_2MP_SR_LB_256x256_seq_rgb16.raw", +"7e86f91bc9fe8419a111ba40408a425f", +"8666b904945c90a287c246dc826e87e3", +"0" +}, +{ // L_SKIA_JPGD_0271: +"I_000272_2MP_SR_RB_256x256_seq_rgb16.raw", +"d56ea72c553801a9532056ff08339932", +"d6aef82f8917fc0d867dcec025686ac6", +"0" +}, +{ // L_SKIA_JPGD_0272: +"I_000272_2MP_SR_M_256x256_seq_rgb16.raw", +"537f9f04a5098c6e86e21980052bbc24", +"4b3a59288d7d666bda9d89864cf8ae28", +"0" +}, +{ // L_SKIA_JPGD_0273: +"I_000259_5MP_SR_LT_512x512_rgb16.raw", +"63ca761ffd51671bbad93120b3d64870", +"d976cbf524391a306ee9a9b0a3cd7478", +"0" +}, +{ // L_SKIA_JPGD_0274: +"I_000259_5MP_SR_RT_512x512_rgb16.raw", +"67cc6d44573814d636653d174b7ee1fc", +"4b927aaec8a6a2057bf05fff998ffe56", +"0" +}, +{ // L_SKIA_JPGD_0275: +"I_000259_5MP_SR_LB_512x512_rgb16.raw", +"43e2e59ac50e6debe5bb6e028a1207de", +"41d4e79f2e635cefaaf546f48ce11a41", +"0" +}, +{ // L_SKIA_JPGD_0276: +"I_000259_5MP_SR_RB_512x512_rgb16.raw", +"fa90a42aa8f2abde26a7d1e8553a97ad", +"d61c0bdf7fdf94861ed6ab34ceaae7f7", +"0" +}, +{ // L_SKIA_JPGD_0277: +"I_000259_5MP_SR_M_512x512_rgb16.raw", +"464d66019439e87385deb12506a4f6eb", +"cea7c673adeab41fae6398e2aadfb863", +"0" +}, +{ // L_SKIA_JPGD_0278: +"I_000261_8MP_SR_LT_512x512_rgb16.raw", +"cce56a83ac2c4a05bc3b7d262356a39b", +"042cee6a54ff9980dc689fa253c72cea", +"0" +}, +{ // L_SKIA_JPGD_0279: +"I_000261_8MP_SR_RT_512x512_rgb16.raw", +"7cf56ccbf0df51d73f192cc6179e1de0", +"b7420037b1d8b336c3013cdd8ece77f3", +"0" +}, +{ // L_SKIA_JPGD_0280: +"I_000261_8MP_SR_LB_512x512_rgb16.raw", +"a94548ae9ec0e21d30131ba172428738", +"a019c232f57c0eca231d7116c36a7584", +"0" +}, +{ // L_SKIA_JPGD_0281: +"I_000261_8MP_SR_RB_512x512_rgb16.raw", +"f69459b34434f29348b86f9088dea5a0", +"5d5107a7defeb55a34d5d41f05243887", +"0" +}, +{ // L_SKIA_JPGD_0282: +"I_000261_8MP_SR_M_512x512_rgb16.raw", +"bd4686c806fb8909992c19c7eb091c02", +"437a4c5026a6bc3542718832ade49606", +"0" +}, +{ // L_SKIA_JPGD_0283: +"I_000265_12MP_SR_LT_1024x1024_rgb16.raw", +"6143dd0aae9c8be0ec2aa51494d9331f", +"be67c6c78e90fbc787e2cac77ebbe25b", +"0" +}, +{ // L_SKIA_JPGD_0284: +"I_000265_12MP_SR_RT_1024x1024_rgb16.raw", +"c83a0d7d7dae8f622b484a3c573727b6", +"b00498ed37e53bde123097864d2ef59a", +"0" +}, +{ // L_SKIA_JPGD_0285: +"I_000265_12MP_SR_LB_1024x1024_rgb16.raw", +"04be4f5d4f9e351c44f2382dcd417fa6", +"078e996e3f2c7fb6928f4bba35135a65", +"0" +}, +{ // L_SKIA_JPGD_0286: +"I_000265_12MP_SR_RB_1024x1024_rgb16.raw", +"fa8826eb16bc229fca76b42fe564071a", +"e04edc98f3107cf620c9375bbdf92431", +"0" +}, +{ // L_SKIA_JPGD_0287: +"I_000265_12MP_SR_M_1024x1024_rgb16.raw", +"099dbdf67b5dca7af889283605fc94a3", +"9fa62caca8b65d3d4c288bdf5c027bc9", +"0" +}, +{ //L_SKIA_JPGD_0106 +"I_000282_QVGA_SR_LT_128x128_prog_rgb16.raw", +"0", +"b913e4d632adc96fb82468fa7f3a334a", +"0", +}, +{ //L_SKIA_JPGD_0107 +"I_000282_QVGA_SR_RT_128x128_prog_rgb16.raw", +"0", +"62b5578207fd1f9ed43ca59bd13dcac8", +"0", +}, +{ //L_SKIA_JPGD_0108 +"I_000282_QVGA_SR_LB_128x128_prog_rgb16.raw", +"0", +"9be1c17e667d76784be3474bda4dc9e4", +"0", +}, +{ //L_SKIA_JPGD_0109 +"I_000282_QVGA_SR_RB_128x128_prog_rgb16.raw", +"0", +"b4a325f2d06ec36d5b3905d03b181284", +"0", +}, +{ //L_SKIA_JPGD_0110 +"I_000282_QVGA_SR_M_128x128_prog_rgb16.raw", +"0", +"5c1add95145128102bdfb0dd9f0a04aa", +"0", +}, +{ //L_SKIA_JPGD_0111 +"I_000263_2MP_SR_LT_256x256_prog_rgb16.raw", +"0", +"b94e5bcf5614390ab1ccc664506b8712", +"0", +}, +{ //L_SKIA_JPGD_0112 +"I_000263_2MP_SR_RT_256x256_prog_rgb16.raw", +"0", +"c66c1c0f791ac3711fc321d095443886", +"0", +}, +{ //L_SKIA_JPGD_0113 +"I_000263_2MP_SR_LB_256x256_prog_rgb16.raw", +"0", +"43b9e71941f8f0be7dd98ec1a78661c8", +"0", +}, +{ //L_SKIA_JPGD_0114 +"I_000263_2MP_SR_RB_256x256_prog_rgb16.raw", +"0", +"d7c7fc8d8ae875a24742da21c5940578", +"0", +}, +{ //L_SKIA_JPGD_0115 +"I_000263_2MP_SR_M_256x256_prog_rgb16.raw", +"0", +"4719c34eda29dc042440241e73b70256", +"0", +}, +{ //L_SKIA_JPGD_0116 +"I_000268_5MP_SR_LT_512x512_prog_rgb16.raw", +"0", +"1fb516f45e5e08374887474eeaf4ce87", +"0", +}, +{ //L_SKIA_JPGD_0117 +"I_000268_5MP_SR_RT_512x512_prog_rgb16.raw", +"0", +"470cad2baab36f8d34f14071808cab2f", +"0", +}, +{ //L_SKIA_JPGD_0118 +"I_000268_5MP_SR_LB_512x512_prog_rgb16.raw", +"0", +"6f35571ac2c5bb858eb96ba3fdc70ada", +"0", +}, +{ //L_SKIA_JPGD_0119 +"I_000268_5MP_SR_RB_512x512_prog_rgb16.raw", +"0", +"5b9bfbff7b4d6168dd8a64c20d19fadd", +"0", +}, +{ //L_SKIA_JPGD_0120 +"I_000268_5MP_SR_M_512x512_prog_rgb16.raw", +"0", +"2be82e24f472910cc4a80418b51ec527", +"0", +}, +{ //L_SKIA_JPGD_0121 +"I_000264_8MP_SR_LT_512x512_prog_rgb16.raw", +"0", +"a8b67948fb76fe74deae01f2ba86a93a", +"0", +}, +{ //L_SKIA_JPGD_0122 +"I_000264_8MP_SR_RT_512x512_prog_rgb16.raw", +"0", +"171d123135fd0dfb9f471b41f35a5cec", +"0", +}, +{ //L_SKIA_JPGD_0123 +"I_000264_8MP_SR_LB_512x512_prog_rgb16.raw", +"0", +"4bc180f031e6b620668cf52a68b53fb2", +"0", +}, +{ //L_SKIA_JPGD_0124 +"I_000264_8MP_SR_RB_512x512_prog_rgb16.raw", +"0", +"85c5383ffda934b968b5334c09282c4e", +"0", +}, +{ //L_SKIA_JPGD_0125 +"I_000264_8MP_SR_M_512x512_prog_rgb16.raw", +"0", +"4de5e61c9219375ed6b662e92edef584", +"0", +}, +{ //L_SKIA_JPGD_0126 +"I_000266_12MP_SR_LT_1024x1024_prog_rgb16.raw", +"0", +"8ee34f20888aa0e417c0bf043f94084c", +"0", +}, +{ //L_SKIA_JPGD_0127 +"I_000266_12MP_SR_RT_1024x1024_prog_rgb16.raw", +"0", +"76118ff0ac2419fafe714ff377e21aab", +"0", +}, +{ //L_SKIA_JPGD_0128 +"I_000266_12MP_SR_LB_1024x1024_prog_rgb16.raw", +"0", +"c712390428ddc7f9d4b254a4b20c82d6", +"0", +}, +{ //L_SKIA_JPGD_0129 +"I_000266_12MP_SR_RB_1024x1024_prog_rgb16.raw", +"0", +"2c78248df2eb1a4514d24726b80de40a", +"0", +}, +{ //L_SKIA_JPGD_0130 +"I_000266_12MP_SR_M_1024x1024_prog_rgb16.raw", +"0", +"83ec53f65fcbc01eec22bba488e7f3a5", +"0", +}, + +{ /*add the new test output filename and its md5sum before this comment line*/ +"", +"", +"", +"" +} /* this NULL string is mandatory */ + +}, /* end of st_jpgd_file_list[] initialization */ +st_jpge_file_list[] = { + +{ //L_SKIA_JPGE_0001 +"4X4.jpg", +"4299d5c08c42607e7c1fd6438576a5c1", +"a7f5755e8f100b58fa033f1534eeac2c", +"0" +}, +{//L_SKIA_JPGE_0002 +"img_70x70.jpg", +"1bf0a6396523829b10449721ef09d24c", +"cf8fbb9b82893eb33756f3aaff5627dc", +"0" +}, +{//L_SKIA_JPGE_0003 +"img01_94x80.jpg", +"1e4b82bd5b804a85283efc0e33bded48", +"602a8d255f3a118241e7b26d81090d8e", +"0" +}, +{//L_SKIA_JPGE_0004 +"I_000284_SQCIF128x96_seq.jpg", +"0ab8cdd2b75552166dc2068555471698", +"18a1603132469e834f59be988992db11", +"0" +}, +{ //L_SKIA_JPGE_0005 +"I_000281_QQVGA160X120_seq.jpg", +"344562e64ccfe598d0349b18b38eab0c", +"adfa333b3187b8a4aa8bc346f6d1a49e", +"0" +}, +{//L_SKIA_JPGE_0006 +"I_000279_QCIF176X144_seq.jpg", +"17232de96f4fcd0c9058f65e65c7db8a", +"eb95aeed520e96fcaeaa3b27625df2a3", +"0" +}, +{//L_SKIA_JPGE_0007 +"img_200x200.jpg", +"2a199bdc7d0ee4df06debad860db0c6b", +"4bc543d09728816a0704e5db0bcd2117", +"0" +}, +{//L_SKIA_JPGE_0008 +"I_000276_CGA320x200_seq.jpg", +"048f8849a1943e98215d9c96dc149664", +"838a6ce22ee21c37f2733be3ecb2f948", +"0" +}, +{//L_SKIA_JPGE_0009 +"laugh_QVGA320x240_seq.jpg", +"ab7be68b39f4261250c44b73be227617", +"dc5e6d3d6ae1e8246f6d248fba2659de", +"0" +}, +{ //L_SKIA_JPGE_0010 +"I_000137_VGA_0.3MP_480x640.jpg", +"5425dd28fab7423d18c4e486b3a0e41f", +"19e9b604e1b009be68cba176a2b0c325", +"0" +}, +{//L_SKIA_JPGE_0011 +"I_000066_SVGA_0.5MP_600x800.jpg", +"31fd54d1327e4c26ad5497499940166b", +"1884d4d6c7dbdf43221de52e87ef91e6", +"0" +}, +{//L_SKIA_JPGE_0012 +"shrek_D1_720x480.jpg", +"98087d8ba35373752c94a494741aadf7", +"1e56fd872d2a68aa729fe9d6bcada8bb", +"0" +}, +{//L_SKIA_JPGE_0013 +"I_000245_XGA_0.8MP_768x1024.jpg", +"7ce98aaf39d6ad1b7e998d2a491cae43", +"23367ee165220c3f9bff632abddbccb6", +"0" +}, +{//L_SKIA_JPGE_0014 +"patzcuaro_800x600.jpg", +"a9eb435982d171ece1d86510b861396c", +"be9087c9b94ca96422cb6662ac5ab1b1", +"0" +}, +{ //L_SKIA_JPGE_0015 +"I_000272_2MP_1600x1200_seq.jpg", +"0c8a29c7db4f0c162fc8a05bfffeb7c0", +"695ab8a89dabb69dcf1bcef0191a72ec", +"0" +}, +{//L_SKIA_JPGE_0016 +"I_000259_5MP_internet_seq_2560x1920.jpg", +"1f1a0245adf618085ad6060586b20bcd", +"1853e38904704700aa6b8a53ca9373f8", +"0" +}, +{//L_SKIA_JPGE_0017 +"6MP_3072x2048_internet_seq.jpg", +"eebd6cd63598210f87cdbf72cef73101", +"9a6455f987eddb487fedf78d9702f3c6", +"0" +}, +{//L_SKIA_JPGE_0018 +"I_000261_8MP_internet_seq_4000x2048.jpg", +"2bc266d3381d10ab990b77199734e7b0", +"3d84983d70b445f802a33243d9b27efd", +"0" +}, +{//L_SKIA_JPGE_0019 +"I_000265_12MP_4000x3000_seq.jpg", +"556cfa8880f7079586c1027379d026f3", +"ea42862e003b4c531db37e5102d5e154", +"0" +}, +{ //L_SKIA_JPGE_0020 +"4X4-2.jpg", +"a04a1d9083202c90a54b93e75a9ede1d", +"31f2f2d376478482539cd61eea430d6b", +"0" +}, +{//L_SKIA_JPGE_0021 +"I_000283_SQCIF128x96_prog-2.jpg", +"93a88994419efec109c0dc9554c37deb", +"5b55816ff724a63d990c1a84e7b87685", +"0" +}, +{//L_SKIA_JPGE_0022 +"I_000276_CGA320x200_seq-2.jpg", +"7b7161a1541ac7eed0934d4b95c3308e", +"58702737601343ffe282a6d6df60c208", +"0" +}, +{//L_SKIA_JPGE_0023 +"I_000137_VGA_0.3MP_480x640-2.jpg", +"500462c7aa1feb32fa1d7885bde8cd50", +"e85eb323426dba72c61b7bd89b47ea9a", +"0" +}, +{//L_SKIA_JPGE_0024 +"patzcuaro_800x600-2.jpg", +"9c4a593b6f38e803627aced4948cd5d0", +"a4ffea527828d4bab3781d259b0f0fe4", +"0" +}, +{ //L_SKIA_JPGE_0025 +"I_000245_XGA_0.8MP_768x1024-2.jpg", +"aa7feee54fe999f78e62dbe54da451fb", +"09dba3c7512a33657aed5eb9b8e846bf", +"0" +}, +{//L_SKIA_JPGE_0026 +"I_000263_2MP_1600x1200_prog-2.jpg", +"8a8c2f2b4ad6deab6c3ca08322e7acf5", +"aded3782d1abe1a384bf631bdef11884", +"0" +}, +{//L_SKIA_JPGE_0027 +"I_000259_5MP_internet_seq_2560x1920-2.jpg", +"f1c8f20b0750cc21777691a22f01d720", +"391493535a38ea90be96e947253eaede", +"0" +}, +{//L_SKIA_JPGE_0028 +"I_000264_8MP_3264x2448_43_ratio_prog-2.jpg", +"50f7013fcc363c0f8ea881c4affe4fc3", +"36be4bec60e2a6d5d42204ba52f8b902", +"0" +}, +{//L_SKIA_JPGE_0029 +"I_000265_12MP_4000x3000_seq-2.jpg", +"83c00357b4e2169177585061dced6745", +"11acc114bcb0593ddb8333d2b6f3b3cc", +"0" +}, +{ //L_SKIA_JPGE_0030 +"patzcuaro_800x600-qf80.jpg", +"946a604ed5c8f49098883ab147cdf65a", +"cd95b449430d7006e3e34dbf925bc82c", +"0" +}, +{//L_SKIA_JPGE_0031 +"I_000272_2MP_1600x1200_seq-qf70.jpg", +"16218578e3ed51fcdcd6f9b7f2280f0a", +"68ca71153cdd0f5538b23180db23568f", +"0" +}, +{//L_SKIA_JPGE_0032 +"I_000272_2MP_1600x1200_seq-qf60.jpg", +"8aecb09293d9e06f1f046f55276e6f91", +"e426ea5b8b6e58c555607abe40f19190", +"0" +}, +{//L_SKIA_JPGE_0033 +"I_000272_2MP_1600x1200_seq-qf50.jpg", +"58c1ca6235a32131cae4edff0645cd37", +"de7258f426a283846c367192fcac7fbf", +"0" +}, +{//L_SKIA_JPGE_0034 +"I_000259_5MP_internet_seq_2560x1920-qf50.jpg", +"39ee3be4a1ea587d302b75f09f67492c", +"b4dffe04ac35dbf162a30952a30cf928", +"0" +}, +{ //L_SKIA_JPGE_0035 +"I_000259_5MP_internet_seq_2560x1920-qf40.jpg", +"c9956b26a90e0011125e1b7e8041788b", +"e7c434f216f94743b854b463a928fc1a", +"0" +}, +{//L_SKIA_JPGE_0036 +"I_000259_5MP_internet_seq_2560x1920-qf30.jpg", +"45e69f911299b4260acc8e174d83cac9", +"32d21b32c16fefe540bb19febbde8db4", +"0" +}, +{//L_SKIA_JPGE_0037 +"I_000259_5MP_internet_seq_2560x1920-qf20.jpg", +"ddf0895ab91ca23f3b0795ff3461cf44", +"37c1090c32724434fba0c728c8b7f41d", +"0" +}, +{//L_SKIA_JPGE_0038 +"I_000259_5MP_internet_seq_2560x1920-qf10.jpg", +"06d91aa5b8d6d74365d38fb7fa78e7f6", +"7a2d0b35b5ffbf1ddc6ddce1619712cd", +"0" +}, +{//L_SKIA_JPGE_0039 +"I_000066_SVGA_0.5MP_600x800_Corrupted_data.jpg", +"6eaddad911310f43fceb344161e9a16d", +"f7d8e3c43dc6bbb056406d2365fabacb", +"0" +}, +{ //L_SKIA_JPGE_0041-001 +"img01_94x80-stress-1.jpg", +"1e4b82bd5b804a85283efc0e33bded48", +"602a8d255f3a118241e7b26d81090d8e", +"0", +}, +{ //L_SKIA_JPGE_0041-002 +"img_200x200-stress-2.jpg", +"2a199bdc7d0ee4df06debad860db0c6b", +"4bc543d09728816a0704e5db0bcd2117", +"0", +}, +{ //L_SKIA_JPGE_0041-003 +"I_000137_VGA_0.3MP_480x640-stress-3.jpg", +"5425dd28fab7423d18c4e486b3a0e41f", +"19e9b604e1b009be68cba176a2b0c325", +"0", +}, +{ //L_SKIA_JPGE_0041-004 +"patzcuaro_800x600-stress-4.jpg", +"a9eb435982d171ece1d86510b861396c", +"be9087c9b94ca96422cb6662ac5ab1b1", +"0", +}, +{ //L_SKIA_JPGE_0041-005 +"I_000272_2MP_1600x1200_seq-stress-5.jpg", +"0c8a29c7db4f0c162fc8a05bfffeb7c0", +"695ab8a89dabb69dcf1bcef0191a72ec", +"0", +}, +{ //L_SKIA_JPGE_0041-006 +"I_000259_5MP_internet_seq_2560x1920-stress-6.jpg", +"1f1a0245adf618085ad6060586b20bcd", +"1853e38904704700aa6b8a53ca9373f8", +"0", +}, +{ //L_SKIA_JPGE_0041-007 +"I_000261_8MP_internet_seq_4000x2048-stress-7.jpg", +"2bc266d3381d10ab990b77199734e7b0", +"3d84983d70b445f802a33243d9b27efd", +"0", +}, +{ //L_SKIA_JPGE_0041-008 +"I_000265_12MP_4000x3000_seq-stress-8.jpg", +"556cfa8880f7079586c1027379d026f3", +"ea42862e003b4c531db37e5102d5e154", +"0", +}, +{ //L_SKIA_JPGE_0041-009 +"4X4-stress-9.jpg", +"4299d5c08c42607e7c1fd6438576a5c1", //ARM +//"a120a60c09380c556ec39da1bc6f09b5", //Hack: DSP: another valid md5sum for stress test +"a7f5755e8f100b58fa033f1534eeac2c", +"0", +}, +{ //L_SKIA_JPGE_0041-010 +"I_000066_SVGA_0.5MP_600x800-stress-10.jpg", +"31fd54d1327e4c26ad5497499940166b", +"1884d4d6c7dbdf43221de52e87ef91e6", +"0", +}, +{ //L_SKIA_JPGE_0042-[1] +"I_000259_5MP_internet_seq_2560x1920-parallel-1.jpg", +"1f1a0245adf618085ad6060586b20bcd", +"1853e38904704700aa6b8a53ca9373f8", +"0", +}, +{ //L_SKIA_JPGE_0042-[2] +"I_000259_5MP_internet_seq_2560x1920-parallel-2.jpg", +"1f1a0245adf618085ad6060586b20bcd", +"1853e38904704700aa6b8a53ca9373f8", +"0", +}, +{ //L_SKIA_JPGE_0043-[1] +"I_000261_8MP_internet_seq_4000x2048-parallel-1.jpg", +"2bc266d3381d10ab990b77199734e7b0", +"3d84983d70b445f802a33243d9b27efd", +"0", +}, +{ //L_SKIA_JPGE_0043-[2] +"patzcuaro_800x600-parallel-2.jpg", +"a9eb435982d171ece1d86510b861396c", +"be9087c9b94ca96422cb6662ac5ab1b1", +"0", +}, +{ //L_SKIA_JPGE_0044-[1] +"patzcuaro_800x600-p1.jpg", +"a9eb435982d171ece1d86510b861396c", +"be9087c9b94ca96422cb6662ac5ab1b1", +"0", +}, +{ //L_SKIA_JPGE_0044-[2] +"I_000245_XGA_0.8MP_768x1024-p2.jpg", +"7ce98aaf39d6ad1b7e998d2a491cae43", +"23367ee165220c3f9bff632abddbccb6", +"0", +}, +{ // L_SKIA_JPGE_0044-[3] +"shrek_D1_720x480-p3.jpg", +"98087d8ba35373752c94a494741aadf7", +"1e56fd872d2a68aa729fe9d6bcada8bb", +"0", +}, +//odd resolution image encoding tests +{ //L_SKIA_JPGE_0047 +"img_odd_res_199x200.jpg", +"5093ece361c468d67808bba395a76364", +"0", +"0", +}, +{ //L_SKIA_JPGE_0048 +"img_odd_res_200x199.jpg", +"146af37e9169a50302501fec47a0577e", +"0", +"0", +}, +{ //L_SKIA_JPGE_0049 +"img_odd_res_199x199.jpg", +"1a69c8557aa0fa326e60057d9a03f02f", +"0", +"0", +}, +{ //L_SKIA_JPGE_0050 +"img_odd_res_199x200-2.jpg", +"5786d0eb5b588f7031684aa02a8e8c21", +"0", +"0", +}, +{ //L_SKIA_JPGE_0051 +"img_odd_res_200x199-2.jpg", +"f4f44027d7ab8c99d6d430b463277f83", +"0", +"0", +}, +{ //L_SKIA_JPGE_0052 +"img_odd_res_199x199-2.jpg", +"91b3d572df64f73183ad4ab7584fce24", +"0", +"0", +}, +{ //L_SKIA_JPGE_0053 +"img_odd_res_767x1024.jpg", +"0754244ddefc8666e8b73716de74b932", +"0", +"0", +}, +{ //L_SKIA_JPGE_0054 +"img_odd_res_768x1023.jpg", +"af502b74562e6800618d847cc59d5ec5", +"0", +"0", +}, +{ //L_SKIA_JPGE_0055 +"img_odd_res_767x1023.jpg", +"dd08b4e5c12573f2c8b956a884a12783", +"0", +"0", +}, +{ //L_SKIA_JPGE_0056 +"img_odd_res_767x1024-2.jpg", +"07d05f233842098ba5bf890203b024a2", +"0", +"0", +}, +{ //L_SKIA_JPGE_0057 +"img_odd_res_768x1023-2.jpg", +"10c56f122d2ae788d0c0745f27c5a3ce", +"0", +"0", +}, +{ //L_SKIA_JPGE_0058 +"img_odd_res_767x1023-2.jpg", +"b7b7bd3509bc4c8b908c033dfa55b87f", +"0", +"0", +}, +{ // L_SKIA_JPGE_0062: +"img_40x40.jpg", +"de42966b308851437e6d2a57b752052c", +"0", +"0" +}, +{ // L_SKIA_JPGE_0063: +"img_180x160.jpg", +"96b9cc698fdb1f4b86aa318ab2b4b8b7", +"0", +"0" +}, +{ // L_SKIA_JPGE_0064: +"img_1MP_1280x800.jpg", +"572d84ecd9ba621d44ff047cacfa2d34", +"d314741f1d5954c46465fbbbf1ab61d5", +"0" +}, +{ // L_SKIA_JPGE_0065: +"img_1.3MP_1440x900.jpg", +"c89bff41f8287bb388ca8a87bc541210", +"7c2eba27047229f0113d35c9f162778e", +"0" +}, +{ // L_SKIA_JPGE_0066: +"img_2.3MP_1920x1200.jpg", +"5637301d17133e54531cbd6368f5a143", +"30d5ffd2f343f0fb4b712fa544091eae", +"0" +}, +{ // L_SKIA_JPGE_0067: +"img_3.1MP_2048x1536.jpg", +"f0babaa98f7224cb276c439fe76496e0", +"90eaae721846e682b597dcc22245a3df", +"0" +}, +{ // L_SKIA_JPGE_0068: +"img_3.5MP_2048x1800.jpg", +"dfc4d0a10e793c7e359606bbbfebe1bb", +"e48bef13d29919de20e71372ac7b2310", +"0" +}, +{ // L_SKIA_JPGE_0069: +"img_4MP_2560x1600.jpg", +"b87f419e86f23b38a31a28b62e127504", +"aea3b25de29ea0268b0ef92ba2b60861", +"0" +}, +{ // L_SKIA_JPGE_0070: +"img_4.6MP_2560x1800.jpg", +"5439011562e77b27ec1dc2312cf14e84", +"b9e793a7ee914465c0db6abac86e8dcb", +"0" +}, +{ // L_SKIA_JPGE_0071: +"img_5.5MP_2952x1882.jpg", +"623743278f08f74d5d8242268418bbcf", +"7c37445ca471480ff42735b3c3c7e39f", +"0" +}, +{ // L_SKIA_JPGE_0072: +"img_6.6MP_2842x2357.jpg", +"eb87115c2a0580a58ef1c0abdc0228bc", +"0", +"0" +}, +{ // L_SKIA_JPGE_0073: +"img_7MP_3072x2304.jpg", +"05510147d075c5acc4e7af847528134d", +"7a092e59ed2db8e4cc84df66a745e1d4", +"0" +}, +{ // L_SKIA_JPGE_0074: +"img_7.5MP_3474x2154.jpg", +"d3dfe1c1f74b88628971134c38f115c4", +"96ee2cfeb19992f544a78f7cc868a8ad", +"0" +}, +{ // L_SKIA_JPGE_0075: +"img_8.4MP_3300x2550.jpg", +"5d9ded221de32b42e7959a686ed78868", +"70c077cf61d71d5ef4d77ccade482cbd", +"0" +}, +{ // L_SKIA_JPGE_0076: +"img_9MP_3000x3000.jpg", +"71fdd854b289a1f1a9ff2d6b77c4f355", +"8cd36ce9dd49556a53069dfb15fc76f8", +"0" +}, +{ // L_SKIA_JPGE_0077: +"img_9.6MP_3600x2400.jpg", +"af34f5984328d2cc7c514e50bdc14ce4", +"4bd6c8f7c45d510fae3bd678e3c07269", +"0" +}, +{ // L_SKIA_JPGE_0078: +"img_10MP_3664x2748.jpg", +"a73b96eb735d24837ae5dff4d4e40716", +"330d0e0e1a0b2e6043efefe62540dcf1", +"0" +}, +{ // L_SKIA_JPGE_0079: +"img_10.5MP_3780x2782.jpg", +"4d6ff1cce73e040e4915566b0b3460c1", +"67755f45edf70c6dfe6408e1d57d6161", +"0" +}, +{ // L_SKIA_JPGE_0080: +"img_11MP_4028x2732.jpg", +"7d5b8b8aae7bc8497a401c596deb1c67", +"4b3ad9cca93b192110e8a0c09f83f0a1", +"0" +}, +{ // L_SKIA_JPGE_0081: +"img_11.5MP_4195x2763.jpg", +"f897c84c422729f7ab58531255a357d1", +"0", +"0" +}, + + +{ /*add the new test output filename and its md5sum before this comment line*/ +"", +"", +"", +"" +} /* this NULL string is mandatory */ + +}; /* End of st_jpge_file_list[] initialization */ + + + + |