summaryrefslogtreecommitdiffstats
path: root/libmpdemux/ebml.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-30 17:55:00 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-30 17:55:00 +0000
commitef393a06505e6cb16015a7e6f57e9164aec6d2e4 (patch)
treeca96319af71458622629fccdbd9cd84612a45156 /libmpdemux/ebml.c
parent15eb8639c61ac71ed1c40b3da0ea8c65b9133b8f (diff)
downloadmpv-ef393a06505e6cb16015a7e6f57e9164aec6d2e4.tar.bz2
mpv-ef393a06505e6cb16015a7e6f57e9164aec6d2e4.tar.xz
Use av_int2flt/av_int2dbl to read float values. This is simpler and more
correct since it also works for int endianness != float endianness. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21404 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/ebml.c')
-rw-r--r--libmpdemux/ebml.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/libmpdemux/ebml.c b/libmpdemux/ebml.c
index af69e61aaf..df1fda647b 100644
--- a/libmpdemux/ebml.c
+++ b/libmpdemux/ebml.c
@@ -13,6 +13,7 @@
#include "ebml.h"
#include "libavutil/common.h"
#include "libavutil/bswap.h"
+#include "libavutil/intfloat_readwrite.h"
#ifndef SIZE_MAX
@@ -179,20 +180,12 @@ ebml_read_float (stream_t *s, uint64_t *length)
switch (len)
{
case 4:
- {
- union {uint32_t i; float f;} u;
- u.i = stream_read_dword (s);
- value = u.f;
+ value = av_int2flt(stream_read_dword(s));
break;
- }
case 8:
- {
- union {uint64_t i; double d;} u;
- u.i = stream_read_qword (s);
- value = u.d;
+ value = av_int2dbl(stream_read_qword(s));
break;
- }
default:
return EBML_FLOAT_INVALID;