Commit e71f1099 by ShyRed

Update libwebm

Update of libwebm. Up-to-date version of libwebm contains several bugfixes that allow playback of files that would crash Godot otherwise.
parent b8423694
...@@ -18,6 +18,10 @@ thirdparty_libsimplewebm_sources = [thirdparty_libsimplewebm_dir + file for file ...@@ -18,6 +18,10 @@ thirdparty_libsimplewebm_sources = [thirdparty_libsimplewebm_dir + file for file
env_webm.add_source_files(env.modules_sources, thirdparty_libsimplewebm_sources) env_webm.add_source_files(env.modules_sources, thirdparty_libsimplewebm_sources)
env_webm.Append(CPPPATH=[thirdparty_libsimplewebm_dir, thirdparty_libsimplewebm_dir + "libwebm/"]) env_webm.Append(CPPPATH=[thirdparty_libsimplewebm_dir, thirdparty_libsimplewebm_dir + "libwebm/"])
# upstream uses c++11
if (not env_webm.msvc):
env_webm.Append(CCFLAGS="-std=c++11")
# also requires libogg, libvorbis and libopus # also requires libogg, libvorbis and libopus
if env['builtin_libogg']: if env['builtin_libogg']:
env_webm.Append(CPPPATH=["#thirdparty/libogg"]) env_webm.Append(CPPPATH=["#thirdparty/libogg"])
......
URL: https://chromium.googlesource.com/webm/libwebm URL: https://chromium.googlesource.com/webm/libwebm
Version: 32d5ac49414a8914ec1e1f285f3f927c6e8ec29d Version: d7c62173ff6b4a5e0a2f86683a5b67db98cf09bf
License: BSD License: BSD
License File: LICENSE.txt License File: LICENSE.txt
......
...@@ -124,6 +124,14 @@ enum MkvId { ...@@ -124,6 +124,14 @@ enum MkvId {
kMkvLuminanceMin = 0x55DA, kMkvLuminanceMin = 0x55DA,
// end mastering metadata // end mastering metadata
// end colour // end colour
// projection
kMkvProjection = 0x7670,
kMkvProjectionType = 0x7671,
kMkvProjectionPrivate = 0x7672,
kMkvProjectionPoseYaw = 0x7673,
kMkvProjectionPosePitch = 0x7674,
kMkvProjectionPoseRoll = 0x7675,
// end projection
// audio // audio
kMkvAudio = 0xE1, kMkvAudio = 0xE1,
kMkvSamplingFrequency = 0xB5, kMkvSamplingFrequency = 0xB5,
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#ifndef MKVPARSER_MKVPARSER_H_ #ifndef MKVPARSER_MKVPARSER_H_
#define MKVPARSER_MKVPARSER_H_ #define MKVPARSER_MKVPARSER_H_
#include <stddef.h> #include <cstddef>
namespace mkvparser { namespace mkvparser {
...@@ -21,6 +21,7 @@ class IMkvReader { ...@@ -21,6 +21,7 @@ class IMkvReader {
virtual int Read(long long pos, long len, unsigned char* buf) = 0; virtual int Read(long long pos, long len, unsigned char* buf) = 0;
virtual int Length(long long* total, long long* available) = 0; virtual int Length(long long* total, long long* available) = 0;
public:
virtual ~IMkvReader(); virtual ~IMkvReader();
}; };
...@@ -472,6 +473,34 @@ struct Colour { ...@@ -472,6 +473,34 @@ struct Colour {
MasteringMetadata* mastering_metadata; MasteringMetadata* mastering_metadata;
}; };
struct Projection {
enum ProjectionType {
kTypeNotPresent = -1,
kRectangular = 0,
kEquirectangular = 1,
kCubeMap = 2,
kMesh = 3,
};
static const float kValueNotPresent;
Projection()
: type(kTypeNotPresent),
private_data(NULL),
private_data_length(0),
pose_yaw(kValueNotPresent),
pose_pitch(kValueNotPresent),
pose_roll(kValueNotPresent) {}
~Projection() { delete[] private_data; }
static bool Parse(IMkvReader* reader, long long element_start,
long long element_size, Projection** projection);
ProjectionType type;
unsigned char* private_data;
size_t private_data_length;
float pose_yaw;
float pose_pitch;
float pose_roll;
};
class VideoTrack : public Track { class VideoTrack : public Track {
VideoTrack(const VideoTrack&); VideoTrack(const VideoTrack&);
VideoTrack& operator=(const VideoTrack&); VideoTrack& operator=(const VideoTrack&);
...@@ -496,6 +525,8 @@ class VideoTrack : public Track { ...@@ -496,6 +525,8 @@ class VideoTrack : public Track {
Colour* GetColour() const; Colour* GetColour() const;
Projection* GetProjection() const;
private: private:
long long m_width; long long m_width;
long long m_height; long long m_height;
...@@ -507,6 +538,7 @@ class VideoTrack : public Track { ...@@ -507,6 +538,7 @@ class VideoTrack : public Track {
double m_rate; double m_rate;
Colour* m_colour; Colour* m_colour;
Projection* m_projection;
}; };
class AudioTrack : public Track { class AudioTrack : public Track {
...@@ -812,6 +844,8 @@ class SeekHead { ...@@ -812,6 +844,8 @@ class SeekHead {
long Parse(); long Parse();
struct Entry { struct Entry {
Entry();
// the SeekHead entry payload // the SeekHead entry payload
long long id; long long id;
long long pos; long long pos;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment