summaryrefslogtreecommitdiff
path: root/libavcodec/exif.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-10-23 23:39:54 -0300
committerJames Almer <jamrial@gmail.com>2017-10-26 00:45:49 -0300
commitae100046ca32b0b83031a60d0c3cdfc5ceb9f874 (patch)
tree0722e781f4d58f08136bc73f37681c83e3303bb4 /libavcodec/exif.c
parent6bd665b7c5798803366b877903fa3bce7f129d05 (diff)
avcodec/exif: remove GetByteContext usage from avpriv_exif_decode_ifd()
This prevents potential ABI issues with GetByteContext. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/exif.c')
-rw-r--r--libavcodec/exif.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/libavcodec/exif.c b/libavcodec/exif.c
index 07ce1741c2..2874772db4 100644
--- a/libavcodec/exif.c
+++ b/libavcodec/exif.c
@@ -92,7 +92,7 @@ static int exif_decode_tag(void *logctx, GetByteContext *gbytes, int le,
// store metadata or proceed with next IFD
ret = ff_tis_ifd(id);
if (ret) {
- ret = avpriv_exif_decode_ifd(logctx, gbytes, le, depth + 1, metadata);
+ ret = ff_exif_decode_ifd(logctx, gbytes, le, depth + 1, metadata);
} else {
const char *name = exif_get_tag_name(id);
char *use_name = (char*) name;
@@ -119,8 +119,8 @@ static int exif_decode_tag(void *logctx, GetByteContext *gbytes, int le,
}
-int avpriv_exif_decode_ifd(void *logctx, GetByteContext *gbytes, int le,
- int depth, AVDictionary **metadata)
+int ff_exif_decode_ifd(void *logctx, GetByteContext *gbytes,
+ int le, int depth, AVDictionary **metadata)
{
int i, ret;
int entries;
@@ -140,3 +140,13 @@ int avpriv_exif_decode_ifd(void *logctx, GetByteContext *gbytes, int le,
// return next IDF offset or 0x000000000 or a value < 0 for failure
return ff_tget_long(gbytes, le);
}
+
+int avpriv_exif_decode_ifd(void *logctx, const uint8_t *buf, int size,
+ int le, int depth, AVDictionary **metadata)
+{
+ GetByteContext gb;
+
+ bytestream2_init(&gb, buf, size);
+
+ return ff_exif_decode_ifd(logctx, &gb, le, depth, metadata);
+}