MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / exif_write_values

Function exif_write_values

libavcodec/exif.c:364–413  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

362}
363
364static void exif_write_values(PutByteContext *pb, int le, const AVExifEntry *entry)
365{
366 switch (entry->type) {
367 case AV_TIFF_SHORT:
368 for (size_t i = 0; i < entry->count; i++)
369 tput16(pb, le, entry->value.uint[i]);
370 break;
371 case AV_TIFF_LONG:
372 for (size_t i = 0; i < entry->count; i++)
373 tput32(pb, le, entry->value.uint[i]);
374 break;
375 case AV_TIFF_SSHORT:
376 for (size_t i = 0; i < entry->count; i++)
377 tput16(pb, le, entry->value.sint[i]);
378 break;
379 case AV_TIFF_SLONG:
380 for (size_t i = 0; i < entry->count; i++)
381 tput32(pb, le, entry->value.sint[i]);
382 break;
383 case AV_TIFF_DOUBLE:
384 for (size_t i = 0; i < entry->count; i++) {
385 const av_alias64 a = { .f64 = entry->value.dbl[i] };
386 tput64(pb, le, a.u64);
387 }
388 break;
389 case AV_TIFF_FLOAT:
390 for (size_t i = 0; i < entry->count; i++) {
391 const av_alias32 a = { .f32 = entry->value.dbl[i] };
392 tput32(pb, le, a.u32);
393 }
394 break;
395 case AV_TIFF_RATIONAL:
396 case AV_TIFF_SRATIONAL:
397 for (size_t i = 0; i < entry->count; i++) {
398 tput32(pb, le, entry->value.rat[i].num);
399 tput32(pb, le, entry->value.rat[i].den);
400 }
401 break;
402 case AV_TIFF_UNDEFINED:
403 case AV_TIFF_BYTE:
404 bytestream2_put_buffer(pb, entry->value.ubytes, entry->count);
405 break;
406 case AV_TIFF_SBYTE:
407 bytestream2_put_buffer(pb, entry->value.sbytes, entry->count);
408 break;
409 case AV_TIFF_STRING:
410 bytestream2_put_buffer(pb, entry->value.str, entry->count);
411 break;
412 }
413}
414
415static const uint8_t aoc_header[] = { 'A', 'O', 'C', 0, };
416static const uint8_t casio_header[] = { 'Q', 'V', 'C', 0, 0, 0, };

Callers 1

exif_write_ifdFunction · 0.85

Calls 4

tput16Function · 0.85
tput32Function · 0.85
tput64Function · 0.85
bytestream2_put_bufferFunction · 0.85

Tested by

no test coverage detected