summaryrefslogtreecommitdiffstats
path: root/media/libmkv/gecko_fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media/libmkv/gecko_fix.patch')
-rw-r--r--media/libmkv/gecko_fix.patch133
1 files changed, 133 insertions, 0 deletions
diff --git a/media/libmkv/gecko_fix.patch b/media/libmkv/gecko_fix.patch
new file mode 100644
index 0000000000..19015fd088
--- /dev/null
+++ b/media/libmkv/gecko_fix.patch
@@ -0,0 +1,133 @@
+diff --git a/EbmlBufferWriter.h b/EbmlBufferWriter.h
+index c135f29..d5116ce 100644
+--- a/EbmlBufferWriter.h
++++ b/EbmlBufferWriter.h
+@@ -11,6 +11,9 @@ typedef struct {
+ unsigned int offset;
+ } EbmlGlobal;
+
++void Ebml_Write(EbmlGlobal *glob, const void *buffer_in, unsigned long len);
++void Ebml_Serialize(EbmlGlobal *glob, const void *buffer_in,
++ int buffer_size, unsigned long len);
+ void Ebml_StartSubElement(EbmlGlobal *glob, EbmlLoc *ebmlLoc, unsigned long class_id);
+ void Ebml_EndSubElement(EbmlGlobal *glob, EbmlLoc *ebmlLoc);
+
+diff --git a/EbmlIDs.h b/EbmlIDs.h
+index 44d4385..3b5da19 100644
+--- a/EbmlIDs.h
++++ b/EbmlIDs.h
+@@ -119,7 +119,7 @@ enum mkv {
+ /* video */
+ Video = 0xE0,
+ FlagInterlaced = 0x9A,
+- StereoMode = 0x53B8,
++ WEBM_StereoMode = 0x53B8,
+ AlphaMode = 0x53C0,
+ PixelWidth = 0xB0,
+ PixelHeight = 0xBA,
+diff --git a/EbmlWriter.c b/EbmlWriter.c
+index ebefc1a..087e817 100644
+--- a/EbmlWriter.c
++++ b/EbmlWriter.c
+@@ -12,6 +12,7 @@
+ #include <wchar.h>
+ #include <string.h>
+ #include <limits.h>
++#include "EbmlBufferWriter.h"
+ #if defined(_MSC_VER)
+ #define LITERALU64(n) n
+ #else
+diff --git a/EbmlWriter.h b/EbmlWriter.h
+index a0a848b..3aee2b3 100644
+--- a/EbmlWriter.h
++++ b/EbmlWriter.h
+@@ -7,10 +7,16 @@
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ #ifndef EBMLWRITER_HPP
+ #define EBMLWRITER_HPP
+ #include <stddef.h>
+ #include "vpx/vpx_integer.h"
++#include "EbmlBufferWriter.h"
+
+ /* note: you must define write and serialize functions as well as your own
+ * EBML_GLOBAL
+@@ -18,9 +24,9 @@
+ * These functions MUST be implemented
+ */
+
+-typedef struct EbmlGlobal EbmlGlobal;
+-void Ebml_Serialize(EbmlGlobal *glob, const void *, int, unsigned long);
+-void Ebml_Write(EbmlGlobal *glob, const void *, unsigned long);
++// typedef struct EbmlGlobal EbmlGlobal;
++// void Ebml_Serialize(EbmlGlobal *glob, const void *, int, unsigned long);
++// void Ebml_Write(EbmlGlobal *glob, const void *, unsigned long);
+
+ /*****/
+
+@@ -41,3 +47,7 @@ void Ebml_SerializeData(EbmlGlobal *glob, unsigned long class_id, unsigned char
+ void Ebml_WriteVoid(EbmlGlobal *glob, unsigned long vSize);
+ /* TODO need date function */
+ #endif
++
++#ifdef __cplusplus
++}
++#endif
+diff --git a/WebMElement.c b/WebMElement.c
+index 02eefa4..0d5056d 100644
+--- a/WebMElement.c
++++ b/WebMElement.c
+@@ -6,8 +6,6 @@
+ // in the file PATENTS. All contributing project authors may
+ // be found in the AUTHORS file in the root of the source tree.
+
+-
+-#include "EbmlBufferWriter.h"
+ #include "EbmlIDs.h"
+ #include "WebMElement.h"
+ #include <stdio.h>
+diff --git a/WebMElement.h b/WebMElement.h
+index d9ad0a0..987582a 100644
+--- a/WebMElement.h
++++ b/WebMElement.h
+@@ -6,10 +6,15 @@
+ // in the file PATENTS. All contributing project authors may
+ // be found in the AUTHORS file in the root of the source tree.
+
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ #ifndef MKV_CONTEXT_HPP
+ #define MKV_CONTEXT_HPP 1
+
++#include "EbmlWriter.h"
++
+ void writeSimpleBock(EbmlGlobal *ebml, unsigned char trackNumber, unsigned short timeCode,
+ int isKeyframe, unsigned char lacingFlag, int discardable,
+ unsigned char *data, unsigned long dataLength);
+@@ -24,12 +29,14 @@ void writeVideoTrack(EbmlGlobal *ebml, unsigned int trackNumber, int flagLacing,
+ double frameRate);
+ void writeAudioTrack(EbmlGlobal *glob, unsigned int trackNumber, int flagLacing,
+ char *codecId, double samplingFrequency, unsigned int channels,
+- unsigned char *private, unsigned long privateSize);
++ unsigned char *private_, unsigned long privateSize);
+
+ void writeSimpleBlock(EbmlGlobal *ebml, unsigned char trackNumber, short timeCode,
+ int isKeyframe, unsigned char lacingFlag, int discardable,
+ unsigned char *data, unsigned long dataLength);
+
++#endif
+
+-
+-#endif
+\ No newline at end of file
++#ifdef __cplusplus
++}
++#endif