Unverified Commit 9e01f171 authored by Lynne's avatar Lynne

tiffdec: support embedded ICC profiles

parent 72254799
...@@ -1218,6 +1218,8 @@ static void set_sar(TiffContext *s, unsigned tag, unsigned num, unsigned den) ...@@ -1218,6 +1218,8 @@ static void set_sar(TiffContext *s, unsigned tag, unsigned num, unsigned den)
static int tiff_decode_tag(TiffContext *s, AVFrame *frame) static int tiff_decode_tag(TiffContext *s, AVFrame *frame)
{ {
AVFrameSideData *sd;
GetByteContext gb_temp;
unsigned tag, type, count, off, value = 0, value2 = 1; // value2 is a denominator so init. to 1 unsigned tag, type, count, off, value = 0, value2 = 1; // value2 is a denominator so init. to 1
int i, start; int i, start;
int pos; int pos;
...@@ -1643,6 +1645,22 @@ static int tiff_decode_tag(TiffContext *s, AVFrame *frame) ...@@ -1643,6 +1645,22 @@ static int tiff_decode_tag(TiffContext *s, AVFrame *frame)
} }
} }
break; break;
case TIFF_ICC_PROFILE:
if (type != TIFF_UNDEFINED)
return AVERROR_INVALIDDATA;
gb_temp = s->gb;
bytestream2_seek(&gb_temp, SEEK_SET, off);
if (bytestream2_get_bytes_left(&gb_temp) < count)
return AVERROR_INVALIDDATA;
sd = av_frame_new_side_data(frame, AV_FRAME_DATA_ICC_PROFILE, count);
if (!sd)
return AVERROR(ENOMEM);
bytestream2_get_bufferu(&gb_temp, sd->data, count);
break;
case TIFF_ARTIST: case TIFF_ARTIST:
ADD_METADATA(count, "artist", NULL); ADD_METADATA(count, "artist", NULL);
break; break;
......
...@@ -92,6 +92,7 @@ enum TiffTags { ...@@ -92,6 +92,7 @@ enum TiffTags {
TIFF_MODEL_TIEPOINT = 0x8482, TIFF_MODEL_TIEPOINT = 0x8482,
TIFF_MODEL_PIXEL_SCALE = 0x830E, TIFF_MODEL_PIXEL_SCALE = 0x830E,
TIFF_MODEL_TRANSFORMATION= 0x8480, TIFF_MODEL_TRANSFORMATION= 0x8480,
TIFF_ICC_PROFILE = 0x8773,
TIFF_GEO_KEY_DIRECTORY = 0x87AF, TIFF_GEO_KEY_DIRECTORY = 0x87AF,
TIFF_GEO_DOUBLE_PARAMS = 0x87B0, TIFF_GEO_DOUBLE_PARAMS = 0x87B0,
TIFF_GEO_ASCII_PARAMS = 0x87B1, TIFF_GEO_ASCII_PARAMS = 0x87B1,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment