* Fix some unused result warnings.
* Handle folder art a little differently than file album art.
This commit is contained in:
@ -242,38 +242,41 @@ image_get_jpeg_resolution(const char * path, int * width, int * height)
|
||||
unsigned char buf[8];
|
||||
u_int16_t offset, h, w;
|
||||
int ret = 1;
|
||||
size_t nread;
|
||||
long size;
|
||||
|
||||
|
||||
img = fopen(path, "r");
|
||||
if( !img )
|
||||
return(-1);
|
||||
return -1;
|
||||
|
||||
fseek(img, 0, SEEK_END);
|
||||
size = ftell(img);
|
||||
rewind(img);
|
||||
|
||||
fread(&buf, 2, 1, img);
|
||||
if( (buf[0] != 0xFF) || (buf[1] != 0xD8) )
|
||||
nread = fread(&buf, 2, 1, img);
|
||||
if( (nread < 1) || (buf[0] != 0xFF) || (buf[1] != 0xD8) )
|
||||
{
|
||||
fclose(img);
|
||||
return(-1);
|
||||
return -1;
|
||||
}
|
||||
memset(&buf, 0, sizeof(buf));
|
||||
|
||||
while( ftell(img) < size )
|
||||
{
|
||||
while( buf[0] != 0xFF && !feof(img) )
|
||||
fread(&buf, 1, 1, img);
|
||||
while( nread > 0 && buf[0] != 0xFF && !feof(img) )
|
||||
nread = fread(&buf, 1, 1, img);
|
||||
|
||||
while( buf[0] == 0xFF && !feof(img) )
|
||||
fread(&buf, 1, 1, img);
|
||||
while( nread > 0 && buf[0] == 0xFF && !feof(img) )
|
||||
nread = fread(&buf, 1, 1, img);
|
||||
|
||||
if( (buf[0] >= 0xc0) && (buf[0] <= 0xc3) )
|
||||
{
|
||||
fread(&buf, 7, 1, img);
|
||||
nread = fread(&buf, 7, 1, img);
|
||||
*width = 0;
|
||||
*height = 0;
|
||||
if( nread < 1 )
|
||||
break;
|
||||
memcpy(&h, buf+3, 2);
|
||||
*height = SWAP16(h);
|
||||
memcpy(&w, buf+5, 2);
|
||||
@ -284,7 +287,9 @@ image_get_jpeg_resolution(const char * path, int * width, int * height)
|
||||
else
|
||||
{
|
||||
offset = 0;
|
||||
fread(&buf, 2, 1, img);
|
||||
nread = fread(&buf, 2, 1, img);
|
||||
if( nread < 1 )
|
||||
break;
|
||||
memcpy(&offset, buf, 2);
|
||||
offset = SWAP16(offset) - 2;
|
||||
if( fseek(img, offset, SEEK_CUR) == -1 )
|
||||
@ -305,13 +310,14 @@ image_get_jpeg_date_xmp(const char * path, char ** date)
|
||||
struct NameValueParserData xml;
|
||||
char * exif;
|
||||
int ret = 1;
|
||||
size_t nread;
|
||||
|
||||
img = fopen(path, "r");
|
||||
if( !img )
|
||||
return(-1);
|
||||
|
||||
fread(&buf, 2, 1, img);
|
||||
if( (buf[0] != 0xFF) || (buf[1] != 0xD8) )
|
||||
nread = fread(&buf, 2, 1, img);
|
||||
if( (nread < 1) || (buf[0] != 0xFF) || (buf[1] != 0xD8) )
|
||||
{
|
||||
fclose(img);
|
||||
return(-1);
|
||||
@ -320,11 +326,11 @@ image_get_jpeg_date_xmp(const char * path, char ** date)
|
||||
|
||||
while( !feof(img) )
|
||||
{
|
||||
while( buf[0] != 0xFF && !feof(img) )
|
||||
fread(&buf, 1, 1, img);
|
||||
while( nread > 0 && buf[0] != 0xFF && !feof(img) )
|
||||
nread = fread(&buf, 1, 1, img);
|
||||
|
||||
while( buf[0] == 0xFF && !feof(img) )
|
||||
fread(&buf, 1, 1, img);
|
||||
while( nread > 0 && buf[0] == 0xFF && !feof(img) )
|
||||
nread = fread(&buf, 1, 1, img);
|
||||
|
||||
if( feof(img) )
|
||||
break;
|
||||
@ -332,7 +338,9 @@ image_get_jpeg_date_xmp(const char * path, char ** date)
|
||||
if( buf[0] == 0xE1 ) // APP1 marker
|
||||
{
|
||||
offset = 0;
|
||||
fread(&buf, 2, 1, img);
|
||||
nread = fread(&buf, 2, 1, img);
|
||||
if( nread < 1 )
|
||||
break;
|
||||
memcpy(&offset, buf, 2);
|
||||
offset = SWAP16(offset) - 2;
|
||||
|
||||
@ -347,7 +355,9 @@ image_get_jpeg_date_xmp(const char * path, char ** date)
|
||||
break;
|
||||
data = newdata;
|
||||
|
||||
fread(data, 29, 1, img);
|
||||
nread = fread(data, 29, 1, img);
|
||||
if( nread < 1 )
|
||||
break;
|
||||
offset -= 29;
|
||||
if( strcmp(data, "http://ns.adobe.com/xap/1.0/") != 0 )
|
||||
{
|
||||
@ -359,7 +369,9 @@ image_get_jpeg_date_xmp(const char * path, char ** date)
|
||||
if( !newdata )
|
||||
break;
|
||||
data = newdata;
|
||||
fread(data, offset, 1, img);
|
||||
nread = fread(data, offset, 1, img);
|
||||
if( nread < 1 )
|
||||
break;
|
||||
|
||||
ParseNameValue(data, offset, &xml);
|
||||
exif = GetValueFromNameValueList(&xml, "DateTimeOriginal");
|
||||
@ -378,7 +390,9 @@ image_get_jpeg_date_xmp(const char * path, char ** date)
|
||||
else
|
||||
{
|
||||
offset = 0;
|
||||
fread(&buf, 2, 1, img);
|
||||
nread = fread(&buf, 2, 1, img);
|
||||
if( nread < 1 )
|
||||
break;
|
||||
memcpy(&offset, buf, 2);
|
||||
offset = SWAP16(offset) - 2;
|
||||
fseek(img, offset, SEEK_CUR);
|
||||
|
Reference in New Issue
Block a user