Index: lang/c/librtmp/data_rw.c
===================================================================
--- lang/c/librtmp/data_rw.c (revision 28370)
+++ lang/c/librtmp/data_rw.c (revision 28384)
@@ -80,4 +80,5 @@
 }
 
+
 double read_be64double(unsigned char *data)
 {
@@ -101,2 +102,22 @@
     return value;
 }
+
+
+void write_be64double(unsigned char *data, double value)
+{
+    unsigned char number_data[8];
+
+    if (is_little_endian()) {
+        memmove(number_data, &value, 8);
+        data[0] = number_data[7];
+        data[1] = number_data[6];
+        data[2] = number_data[5];
+        data[3] = number_data[4];
+        data[4] = number_data[3];
+        data[5] = number_data[2];
+        data[6] = number_data[1];
+        data[7] = number_data[0];
+    } else {
+        memmove(data, &value, 8);
+    }
+}
