]> git.sesse.net Git - ffmpeg/commitdiff
avio: Add avio_put_str16be
authorLuca Barbato <lu_zero@gentoo.org>
Fri, 5 Jun 2015 21:21:18 +0000 (23:21 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Sun, 7 Jun 2015 08:14:45 +0000 (10:14 +0200)
doc/APIchanges
libavformat/avio.h
libavformat/aviobuf.c
libavformat/version.h

index 2c443b01b0d8766441a872d3fa6090c2750819b2..0ddfb11e03c8b7e436ad02dae10024293f7aa560 100644 (file)
@@ -13,6 +13,9 @@ libavutil:     2014-08-09
 
 API changes, most recent first:
 
+2015-xx-xx - xxxxxxx - lavf 56.20.0 - avio.h
+  Add avio_put_str16be.
+
 2015-xx-xx - xxxxxxx - lavu 54.14.0 - cpu.h
   Add AV_CPU_FLAG_AVXSLOW.
 
index 3360e8296e85b76dd1bdc48309ee4c3fc0c087e5..a1497d9d6547ee733fc0809a2161d92d0bcf1b91 100644 (file)
@@ -178,10 +178,22 @@ int avio_put_str(AVIOContext *s, const char *str);
 
 /**
  * Convert an UTF-8 string to UTF-16LE and write it.
+ * @param s the AVIOContext
+ * @param str NULL-terminated UTF-8 string
+ *
  * @return number of bytes written.
  */
 int avio_put_str16le(AVIOContext *s, const char *str);
 
+/**
+ * Convert an UTF-8 string to UTF-16BE and write it.
+ * @param s the AVIOContext
+ * @param str NULL-terminated UTF-8 string
+ *
+ * @return number of bytes written.
+ */
+int avio_put_str16be(AVIOContext *s, const char *str);
+
 /**
  * Passing this as the "whence" parameter to a seek function causes it to
  * return the filesize without seeking anywhere. Supporting this is optional.
index d3e345295446c6ba2afbef808fbaf751c4b8b3f2..6716772464b4452b01a6239b1eaf565aa8faa929 100644 (file)
@@ -284,22 +284,28 @@ int avio_put_str(AVIOContext *s, const char *str)
     return len;
 }
 
-int avio_put_str16le(AVIOContext *s, const char *str)
-{
-    const uint8_t *q = str;
-    int ret = 0;
+#define PUT_STR16(type, write)                                   \
+    int avio_put_str16 ## type(AVIOContext * s, const char *str) \
+    {                                                            \
+        const uint8_t *q = str;                                  \
+        int ret          = 0;                                    \
+                                                                 \
+        while (*q) {                                             \
+            uint32_t ch;                                         \
+            uint16_t tmp;                                        \
+                                                                 \
+            GET_UTF8(ch, *q++, break; )                          \
+            PUT_UTF16(ch, tmp, write(s, tmp); ret += 2; )        \
+        }                                                        \
+        write(s, 0);                                             \
+        ret += 2;                                                \
+        return ret;                                              \
+    }
 
-    while (*q) {
-        uint32_t ch;
-        uint16_t tmp;
+PUT_STR16(le, avio_wl16)
+PUT_STR16(be, avio_wb16)
 
-        GET_UTF8(ch, *q++, break;)
-        PUT_UTF16(ch, tmp, avio_wl16(s, tmp); ret += 2;)
-    }
-    avio_wl16(s, 0);
-    ret += 2;
-    return ret;
-}
+#undef PUT_STR16
 
 int ff_get_v_length(uint64_t val)
 {
index 714ec72e2c5a3201eb9e46bbca0b81679e75184a..3be6fc69c8414ae2d18d367ab6541e9887c99713 100644 (file)
@@ -30,7 +30,7 @@
 #include "libavutil/version.h"
 
 #define LIBAVFORMAT_VERSION_MAJOR 56
-#define LIBAVFORMAT_VERSION_MINOR 19
+#define LIBAVFORMAT_VERSION_MINOR 20
 #define LIBAVFORMAT_VERSION_MICRO  0
 
 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \