mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
libavformat/avio: added avio_put_str16be
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
6394acaf36
commit
81a91269a2
@ -15,6 +15,9 @@ libavutil: 2014-08-09
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2015-03-xx - xxxxxxx - lavf 56.24.100
|
||||||
|
Add avio_put_str16be()
|
||||||
|
|
||||||
2015-xx-xx - xxxxxxx - lavc 56.13
|
2015-xx-xx - xxxxxxx - lavc 56.13
|
||||||
Add width, height, coded_width, coded_height and format to
|
Add width, height, coded_width, coded_height and format to
|
||||||
AVCodecParserContext.
|
AVCodecParserContext.
|
||||||
|
@ -233,6 +233,12 @@ int avio_put_str(AVIOContext *s, const char *str);
|
|||||||
*/
|
*/
|
||||||
int avio_put_str16le(AVIOContext *s, const char *str);
|
int avio_put_str16le(AVIOContext *s, const char *str);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert an UTF-8 string to UTF-16BE and write it.
|
||||||
|
* @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
|
* Passing this as the "whence" parameter to a seek function causes it to
|
||||||
* return the filesize without seeking anywhere. Supporting this is optional.
|
* return the filesize without seeking anywhere. Supporting this is optional.
|
||||||
|
@ -342,7 +342,7 @@ int avio_put_str(AVIOContext *s, const char *str)
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
int avio_put_str16le(AVIOContext *s, const char *str)
|
static inline int put_str16(AVIOContext *s, const char *str, const int be)
|
||||||
{
|
{
|
||||||
const uint8_t *q = str;
|
const uint8_t *q = str;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@ -353,19 +353,34 @@ int avio_put_str16le(AVIOContext *s, const char *str)
|
|||||||
uint16_t tmp;
|
uint16_t tmp;
|
||||||
|
|
||||||
GET_UTF8(ch, *q++, goto invalid;)
|
GET_UTF8(ch, *q++, goto invalid;)
|
||||||
PUT_UTF16(ch, tmp, avio_wl16(s, tmp); ret += 2;)
|
PUT_UTF16(ch, tmp, be ? avio_wb16(s, tmp) : avio_wl16(s, tmp);
|
||||||
|
ret += 2;)
|
||||||
continue;
|
continue;
|
||||||
invalid:
|
invalid:
|
||||||
av_log(s, AV_LOG_ERROR, "Invaid UTF8 sequence in avio_put_str16le\n");
|
av_log(s, AV_LOG_ERROR, "Invaid UTF8 sequence in avio_put_str16%s\n", be ? "be" : "le");
|
||||||
err = AVERROR(EINVAL);
|
err = AVERROR(EINVAL);
|
||||||
}
|
}
|
||||||
avio_wl16(s, 0);
|
if (be)
|
||||||
|
avio_wb16(s, 0);
|
||||||
|
else
|
||||||
|
avio_wl16(s, 0);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
ret += 2;
|
ret += 2;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define PUT_STR16(type, big_endian) \
|
||||||
|
int avio_put_str16 ## type(AVIOContext *s, const char *str) \
|
||||||
|
{ \
|
||||||
|
return put_str16(s, str, big_endian); \
|
||||||
|
}
|
||||||
|
|
||||||
|
PUT_STR16(le, 0)
|
||||||
|
PUT_STR16(be, 1)
|
||||||
|
|
||||||
|
#undef PUT_STR16
|
||||||
|
|
||||||
int ff_get_v_length(uint64_t val)
|
int ff_get_v_length(uint64_t val)
|
||||||
{
|
{
|
||||||
int i = 1;
|
int i = 1;
|
||||||
|
@ -30,8 +30,8 @@
|
|||||||
#include "libavutil/version.h"
|
#include "libavutil/version.h"
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 56
|
#define LIBAVFORMAT_VERSION_MAJOR 56
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 23
|
#define LIBAVFORMAT_VERSION_MINOR 24
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 106
|
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
LIBAVFORMAT_VERSION_MINOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user