diff options
author | Fabrice Bellard <fabrice@bellard.org> | 2002-10-22 09:23:14 +0000 |
---|---|---|
committer | Fabrice Bellard <fabrice@bellard.org> | 2002-10-22 09:23:14 +0000 |
commit | 3b4b29dcd9c5da2ba40a34ce3d9eb3a7f659ba77 (patch) | |
tree | 947a2f10246251d9acaa3977264570041424deba /libav/aviobuf.c | |
parent | d4c0ff917dac14258d289807a6d80b6b45daa8ff (diff) | |
download | ffmpeg-3b4b29dcd9c5da2ba40a34ce3d9eb3a7f659ba77.tar.gz |
put/get portable for IEEE double - renamed put_native_string/get_native_string
Originally committed as revision 1062 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libav/aviobuf.c')
-rw-r--r-- | libav/aviobuf.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/libav/aviobuf.c b/libav/aviobuf.c index 3f0108361b..27f6b5d38a 100644 --- a/libav/aviobuf.c +++ b/libav/aviobuf.c @@ -176,12 +176,18 @@ void put_be32(ByteIOContext *s, unsigned int val) put_byte(s, val); } -void put_native_double(ByteIOContext *s, double val) +/* IEEE format is assumed */ +void put_be64_double(ByteIOContext *s, double val) { - put_buffer(s, (const unsigned char *) &val, sizeof(val)); + union { + double d; + UINT64 ull; + } u; + u.d = val; + put_be64(s, u.ull); } -void put_native_string(ByteIOContext *s, const char *str) +void put_strz(ByteIOContext *s, const char *str) { if (str) put_buffer(s, (const unsigned char *) str, strlen(str) + 1); @@ -339,16 +345,18 @@ unsigned int get_be32(ByteIOContext *s) return val; } -double get_native_double(ByteIOContext *s) +double get_be64_double(ByteIOContext *s) { - double val; + union { + double d; + UINT64 ull; + } u; - get_buffer(s, (unsigned char *) &val, sizeof(val)); - - return val; + u.ull = get_be64(s); + return u.d; } -char *get_native_string(ByteIOContext *s, char *buf, int maxlen) +char *get_strz(ByteIOContext *s, char *buf, int maxlen) { int i = 0; char c; |