|
|
@@ -127,6 +127,13 @@ static void add_entry(TiffEncoderContext * s, |
|
|
|
s->num_entries++; |
|
|
|
} |
|
|
|
|
|
|
|
static void add_entry1(TiffEncoderContext * s, |
|
|
|
enum TiffTags tag, enum TiffTypes type, int val){ |
|
|
|
uint16_t w = val; |
|
|
|
uint32_t dw= val; |
|
|
|
add_entry(s, tag, type, 1, type == TIFF_SHORT ? &w : &dw); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Encode one strip in tiff file |
|
|
|
* |
|
|
@@ -297,25 +304,25 @@ static int encode_frame(AVCodecContext * avctx, unsigned char *buf, |
|
|
|
|
|
|
|
s->num_entries = 0; |
|
|
|
|
|
|
|
add_entry(s, TIFF_SUBFILE, TIFF_LONG, 1, (uint32_t[]) {0}); |
|
|
|
add_entry(s, TIFF_WIDTH, TIFF_LONG, 1, (uint32_t[]) {s->width}); |
|
|
|
add_entry(s, TIFF_HEIGHT, TIFF_LONG, 1, (uint32_t[]) {s->height}); |
|
|
|
add_entry1(s,TIFF_SUBFILE, TIFF_LONG, 0); |
|
|
|
add_entry1(s,TIFF_WIDTH, TIFF_LONG, s->width); |
|
|
|
add_entry1(s,TIFF_HEIGHT, TIFF_LONG, s->height); |
|
|
|
|
|
|
|
if (s->bpp_tab_size) |
|
|
|
add_entry(s, TIFF_BPP, TIFF_SHORT, s->bpp_tab_size, bpp_tab); |
|
|
|
|
|
|
|
add_entry(s, TIFF_COMPR, TIFF_SHORT, 1, (uint16_t[]) {s->compr}); |
|
|
|
add_entry(s, TIFF_INVERT, TIFF_SHORT, 1, (uint16_t[]) {s->invert}); |
|
|
|
add_entry1(s,TIFF_COMPR, TIFF_SHORT, s->compr); |
|
|
|
add_entry1(s,TIFF_INVERT, TIFF_SHORT, s->invert); |
|
|
|
add_entry(s, TIFF_STRIP_OFFS, TIFF_LONG, strips, strip_offsets); |
|
|
|
|
|
|
|
if (s->bpp_tab_size) |
|
|
|
add_entry(s, TIFF_SAMPLES_PER_PIXEL, TIFF_SHORT, 1, (uint16_t[]) {s->bpp_tab_size}); |
|
|
|
add_entry1(s,TIFF_SAMPLES_PER_PIXEL, TIFF_SHORT, s->bpp_tab_size); |
|
|
|
|
|
|
|
add_entry(s, TIFF_ROWSPERSTRIP, TIFF_LONG, 1, (uint32_t[]) {s->rps}); |
|
|
|
add_entry1(s,TIFF_ROWSPERSTRIP, TIFF_LONG, s->rps); |
|
|
|
add_entry(s, TIFF_STRIP_SIZE, TIFF_LONG, strips, strip_sizes); |
|
|
|
add_entry(s, TIFF_XRES, TIFF_RATIONAL, 1, res); |
|
|
|
add_entry(s, TIFF_YRES, TIFF_RATIONAL, 1, res); |
|
|
|
add_entry(s, TIFF_RES_UNIT, TIFF_SHORT, 1, (uint16_t[]) {2}); |
|
|
|
add_entry1(s,TIFF_RES_UNIT, TIFF_SHORT, 2); |
|
|
|
add_entry(s, TIFF_SOFTWARE_NAME, TIFF_STRING, |
|
|
|
strlen(LIBAVCODEC_IDENT) + 1, LIBAVCODEC_IDENT); |
|
|
|
|
|
|
|