45 const char *
name,
const char *sep,
52 "Invalid TIFF tag type 0 found for %s with size %d\n",
98 char *use_name = (
char*) name;
105 snprintf(use_name, 7,
"0x%04X",
id);
109 gbytes, le, metadata);
134 for (i = 0; i < entries; i++) {
135 if ((ret =
exif_decode_tag(logctx, gbytes, le, depth, metadata)) < 0) {
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
int ff_exif_decode_ifd(void *logctx, GetByteContext *gbytes, int le, int depth, AVDictionary **metadata)
#define AV_LOG_WARNING
Something somehow does not look correct.
static const struct exif_tag tag_list[]
int ff_tadd_doubles_metadata(int count, const char *name, const char *sep, GetByteContext *gb, int le, AVDictionary **metadata)
Adds count doubles converted to a string into the metadata dictionary.
static av_always_inline void bytestream2_init(GetByteContext *g, const uint8_t *buf, int buf_size)
int ff_tadd_rational_metadata(int count, const char *name, const char *sep, GetByteContext *gb, int le, AVDictionary **metadata)
Adds count rationals converted to a string into the metadata dictionary.
static int exif_add_metadata(void *logctx, int count, int type, const char *name, const char *sep, GetByteContext *gb, int le, AVDictionary **metadata)
void void avpriv_request_sample(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature.
static const char * exif_get_tag_name(uint16_t id)
unsigned ff_tget_short(GetByteContext *gb, int le)
Reads a short from the bytestream using given endianness.
static av_always_inline unsigned int bytestream2_get_bytes_left(GetByteContext *g)
static int exif_decode_tag(void *logctx, GetByteContext *gbytes, int le, int depth, AVDictionary **metadata)
unsigned ff_tget_long(GetByteContext *gb, int le)
Reads a long from the bytestream using given endianness.
TiffTypes
data type identifiers for TIFF tags
#define FF_ARRAY_ELEMS(a)
int ff_tis_ifd(unsigned tag)
Returns a value > 0 if the tag is a known IFD-tag.
static av_always_inline int bytestream2_tell(GetByteContext *g)
int avpriv_exif_decode_ifd(void *logctx, const uint8_t *buf, int size, int le, int depth, AVDictionary **metadata)
Recursively decodes all IFD's and adds included TAGS into the metadata dictionary.
int ff_tadd_long_metadata(int count, const char *name, const char *sep, GetByteContext *gb, int le, AVDictionary **metadata)
Adds count longs converted to a string into the metadata dictionary.
int ff_tadd_shorts_metadata(int count, const char *name, const char *sep, GetByteContext *gb, int le, int is_signed, AVDictionary **metadata)
Adds count shorts converted to a string into the metadata dictionary.
int ff_tadd_bytes_metadata(int count, const char *name, const char *sep, GetByteContext *gb, int le, int is_signed, AVDictionary **metadata)
Adds count bytes converted to a string into the metadata dictionary.
int ff_tadd_string_metadata(int count, const char *name, GetByteContext *gb, int le, AVDictionary **metadata)
Adds a string of count characters into the metadata dictionary.
static av_always_inline int bytestream2_seek(GetByteContext *g, int offset, int whence)
int ff_tread_tag(GetByteContext *gb, int le, unsigned *tag, unsigned *type, unsigned *count, int *next)
Reads the first 3 fields of a TIFF tag, which are the tag id, the tag type and the count of values fo...
char name[EXIF_TAG_NAME_LENGTH]