diff options
| author | Antonin Descampe <antonin@gmail.com> | 2016-01-25 23:22:06 +0100 |
|---|---|---|
| committer | Antonin Descampe <antonin@gmail.com> | 2016-01-25 23:22:06 +0100 |
| commit | 0febbff19e05cb1a6c2613eee76ad46a669c96cd (patch) | |
| tree | b6442d01348e2ba6404d0fd6abcc4eb6d6cc1390 /tests/pdf2jp2.c | |
| parent | bede1568b197021bb576b935422af6c1d0a79e21 (diff) | |
processed all c/h files through astyle with opj_astyle.cfgcodingstyle
Diffstat (limited to 'tests/pdf2jp2.c')
| -rw-r--r-- | tests/pdf2jp2.c | 147 |
1 files changed, 71 insertions, 76 deletions
diff --git a/tests/pdf2jp2.c b/tests/pdf2jp2.c index 38aa739f..3fa3d9d4 100644 --- a/tests/pdf2jp2.c +++ b/tests/pdf2jp2.c @@ -39,7 +39,7 @@ /* * Add support for other signatures: - * + * * obj<</Subtype/Image/Length 110494/Filter/JPXDecode/BitsPerComponent 8/ColorSpace/DeviceRGB/Width 712/Height 1052>>stream */ #define _GNU_SOURCE @@ -51,92 +51,87 @@ int main(int argc, char *argv[]) { #define NUMJP2 32 - int i, c = 0; - long offets[NUMJP2]; - char buffer[512]; + int i, c = 0; + long offets[NUMJP2]; + char buffer[512]; #define BUFLEN 4096 - int cont = 1; - FILE *f; - size_t nread; - char haystack[BUFLEN]; - const char needle[] = "JPXDecode"; + int cont = 1; + FILE *f; + size_t nread; + char haystack[BUFLEN]; + const char needle[] = "JPXDecode"; - const size_t nlen = strlen( needle ); - const size_t flen = BUFLEN - nlen; - char *fpos = haystack + nlen; - const char *filename; - if( argc < 2 ) return 1; + const size_t nlen = strlen( needle ); + const size_t flen = BUFLEN - nlen; + char *fpos = haystack + nlen; + const char *filename; + if( argc < 2 ) return 1; - filename = argv[1]; + filename = argv[1]; - memset( haystack, 0, nlen ); + memset( haystack, 0, nlen ); - f = fopen( filename, "rb" ); - while( cont ) - { - const char *ret; - size_t hlen; - nread = fread(fpos, 1, flen, f); - hlen = nlen + nread; - ret = memmem( haystack, hlen, needle, nlen); - if( ret ) - { - const long cpos = ftell(f); - const ptrdiff_t diff = ret - haystack; - assert( diff >= 0 ); - /*fprintf( stdout, "Found it: %lx\n", (ptrdiff_t)cpos - (ptrdiff_t)hlen + diff);*/ - offets[c++] = (ptrdiff_t)cpos - (ptrdiff_t)hlen + diff; - } - cont = (nread == flen); - memcpy( haystack, haystack + nread, nlen ); + f = fopen( filename, "rb" ); + while( cont ) { + const char *ret; + size_t hlen; + nread = fread(fpos, 1, flen, f); + hlen = nlen + nread; + ret = memmem( haystack, hlen, needle, nlen); + if( ret ) { + const long cpos = ftell(f); + const ptrdiff_t diff = ret - haystack; + assert( diff >= 0 ); + /*fprintf( stdout, "Found it: %lx\n", (ptrdiff_t)cpos - (ptrdiff_t)hlen + diff);*/ + offets[c++] = (ptrdiff_t)cpos - (ptrdiff_t)hlen + diff; + } + cont = (nread == flen); + memcpy( haystack, haystack + nread, nlen ); } - assert( feof( f ) ); + assert( feof( f ) ); - for( i = 0; i < c; ++i ) - { - int s, len = 0; - char *r; - const int ret = fseek(f, offets[i], SEEK_SET); - assert( ret == 0 ); - r = fgets(buffer, sizeof(buffer), f); - assert( r ); - /*fprintf( stderr, "DEBUG: %s", r );*/ - s = sscanf(r, "JPXDecode]/Length %d/Width %*d/BitsPerComponent %*d/Height %*d", &len); - if( s == 0 ) - { // try again harder - const int ret = fseek(f, offets[i] - 40, SEEK_SET); // 40 is magic number - assert( ret == 0 ); - r = fgets(buffer, sizeof(buffer), f); - assert( r ); - const char needle2[] = "/Length"; - char * s2 = strstr(buffer, needle2); - s = sscanf(s2, "/Length %d/", &len); - } - if( s == 1 ) - { - FILE *jp2; - int j; - char jp2fn[512]; - sprintf( jp2fn, "%s.%d.jp2", filename, i ); - jp2 = fopen( jp2fn, "wb" ); - for( j = 0; j < len; ++j ) - { - int v = fgetc(f); - int ret2 = fputc(v, jp2); - assert( ret2 != EOF ); + for( i = 0; i < c; ++i ) { + int s, len = 0; + char *r; + const int ret = fseek(f, offets[i], SEEK_SET); + assert( ret == 0 ); + r = fgets(buffer, sizeof(buffer), f); + assert( r ); + /*fprintf( stderr, "DEBUG: %s", r );*/ + s = sscanf(r, "JPXDecode]/Length %d/Width %*d/BitsPerComponent %*d/Height %*d", &len); + if( s == 0 ) { + // try again harder + const int ret = fseek(f, offets[i] - 40, SEEK_SET); // 40 is magic number + assert( ret == 0 ); + r = fgets(buffer, sizeof(buffer), f); + assert( r ); + const char needle2[] = "/Length"; + char * s2 = strstr(buffer, needle2); + s = sscanf(s2, "/Length %d/", &len); } - fclose( jp2 ); + if( s == 1 ) { + FILE *jp2; + int j; + char jp2fn[512]; + sprintf( jp2fn, "%s.%d.jp2", filename, i ); + jp2 = fopen( jp2fn, "wb" ); + for( j = 0; j < len; ++j ) { + int v = fgetc(f); + int ret2 = fputc(v, jp2); + assert( ret2 != EOF ); + } + fclose( jp2 ); #if 0 - /* TODO need to check we reached endstream */ - r = fgets(buffer, sizeof(buffer), f); - fprintf( stderr, "DEBUG: [%s]", r ); - r = fgets(buffer, sizeof(buffer), f); - fprintf( stderr, "DEBUG: [%s]", r ); + /* TODO need to check we reached endstream */ + r = fgets(buffer, sizeof(buffer), f); + fprintf( stderr, "DEBUG: [%s]", r ); + r = fgets(buffer, sizeof(buffer), f); + fprintf( stderr, "DEBUG: [%s]", r ); #endif - } + } } - fclose(f); + fclose(f); - return 0; + return 0; } |
