avcodec/exif: remove GetByteContext usage from avpriv_exif_decode_ifd()
[ffmpeg.git] / libavcodec / exif.c
index 07ce174..2874772 100644 (file)
@@ -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);
+}