summaryrefslogtreecommitdiff
path: root/src/demuxers/ebml.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/demuxers/ebml.c')
-rw-r--r--src/demuxers/ebml.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/demuxers/ebml.c b/src/demuxers/ebml.c
index aabdea362..268f5e2e6 100644
--- a/src/demuxers/ebml.c
+++ b/src/demuxers/ebml.c
@@ -283,15 +283,19 @@ int ebml_read_float (ebml_parser_t *ebml, ebml_elem_t *elem, double *num) {
}
if (size == 4) {
- float f;
-
- *((uint32_t *) &f) = _X_BE_32(data);
- *num = f;
+ union {
+ float f;
+ uint32_t u32;
+ } tmp;
+ tmp.u32 = _X_BE_32(data);
+ *num = tmp.f;
} else {
- double d;
-
- *((uint64_t *) &d) = _X_BE_64(data);
- *num = d;
+ union {
+ double d;
+ uint64_t u64;
+ } tmp;
+ tmp.u64 = _X_BE_64(data);
+ *num = tmp.d;
}
return 1;
}