diff options
Diffstat (limited to 'third_party/libmkv/WebMElement.c')
-rw-r--r-- | third_party/libmkv/WebMElement.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/third_party/libmkv/WebMElement.c b/third_party/libmkv/WebMElement.c index 2f79a3c6a..6c3670a28 100644 --- a/third_party/libmkv/WebMElement.c +++ b/third_party/libmkv/WebMElement.c @@ -11,6 +11,7 @@ #include "EbmlIDs.h" #include "WebMElement.h" #include <stdio.h> +#include "vpx/vpx_integer.h" #define kVorbisPrivateMaxSize 4000 @@ -43,22 +44,23 @@ void writeSimpleBlock(EbmlGlobal *glob, unsigned char trackNumber, short timeCod Ebml_Write(glob, data, dataLength); } -static UInt64 generateTrackID(unsigned int trackNumber) { - UInt64 t = time(NULL) * trackNumber; - UInt64 r = rand(); +static uint64_t generateTrackID(unsigned int trackNumber) { + uint64_t t = time(NULL) * trackNumber; + uint64_t r = rand(); r = r << 32; r += rand(); - UInt64 rval = t ^ r; + uint64_t rval = t ^ r; return rval; } -void writeVideoTrack(EbmlGlobal *glob, unsigned int trackNumber, int flagLacing, - char *codecId, unsigned int pixelWidth, unsigned int pixelHeight, +void writeVideoTrack(EbmlGlobal *glob, unsigned int trackNumber, + int flagLacing, const char *codecId, + unsigned int pixelWidth, unsigned int pixelHeight, double frameRate) { EbmlLoc start; Ebml_StartSubElement(glob, &start, TrackEntry); Ebml_SerializeUnsigned(glob, TrackNumber, trackNumber); - UInt64 trackID = generateTrackID(trackNumber); + uint64_t trackID = generateTrackID(trackNumber); Ebml_SerializeUnsigned(glob, TrackUID, trackID); Ebml_SerializeString(glob, CodecName, "VP8"); // TODO shouldn't be fixed @@ -74,13 +76,14 @@ void writeVideoTrack(EbmlGlobal *glob, unsigned int trackNumber, int flagLacing, } Ebml_EndSubElement(glob, &start); // Track Entry } -void writeAudioTrack(EbmlGlobal *glob, unsigned int trackNumber, int flagLacing, - char *codecId, double samplingFrequency, unsigned int channels, +void writeAudioTrack(EbmlGlobal *glob, unsigned int trackNumber, + int flagLacing, const char *codecId, + double samplingFrequency, unsigned int channels, unsigned char *private, unsigned long privateSize) { EbmlLoc start; Ebml_StartSubElement(glob, &start, TrackEntry); Ebml_SerializeUnsigned(glob, TrackNumber, trackNumber); - UInt64 trackID = generateTrackID(trackNumber); + uint64_t trackID = generateTrackID(trackNumber); Ebml_SerializeUnsigned(glob, TrackUID, trackID); Ebml_SerializeUnsigned(glob, TrackType, 2); // audio is always 2 // I am using defaults for thesed required fields |