[Spice-devel] [PATCH spice-html5] Review the webm video track header and remove the fixmes.
Jeremy White
jwhite at codeweavers.com
Mon Dec 19 21:15:37 UTC 2016
This involved a review of the Firefox parsing code along
with the official specifcation, and setting these fields
to the specified default values.
Signed-off-by: Jeremy White <jwhite at codeweavers.com>
---
webm.js | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/webm.js b/webm.js
index 789da14..b6dc2fa 100644
--- a/webm.js
+++ b/webm.js
@@ -469,20 +469,26 @@ webm_AudioTrackEntry.prototype =
function webm_VideoTrackEntry(width, height)
{
+ /*
+ ** In general, we follow this specification:
+ ** https://www.matroska.org/technical/specs/index.html
+ ** we supply the mandatory values, and a comment notes
+ ** where we differ from the default
+ */
this.id = WEBM_TRACK_ENTRY;
this.number = 1;
this.uid = 1;
this.type = 1; // Video
this.flag_enabled = 1;
this.flag_default = 1;
- this.flag_forced = 1;
- this.flag_lacing = 0;
- this.min_cache = 0; // fixme - check
+ this.flag_forced = 1; // Different than default; we wish to force
+ this.flag_lacing = 1;
+ this.min_cache = 0;
this.max_block_addition_id = 0;
- this.codec_decode_all = 0; // fixme - check
- this.seek_pre_roll = 0; // 80000000; // fixme - check
- this.codec_delay = 80000000; // Must match codec_private.preskip
this.codec_id = "V_VP8";
+ this.codec_decode_all = 1;
+ this.seek_pre_roll = 0;
+
this.video = new webm_Video(width, height);
}
@@ -504,7 +510,6 @@ webm_VideoTrackEntry.prototype =
at = EBML_write_u8_value(WEBM_MIN_CACHE, this.min_cache, dv, at);
at = EBML_write_u8_value(WEBM_MAX_BLOCK_ADDITION_ID, this.max_block_addition_id, dv, at);
at = EBML_write_u8_value(WEBM_CODEC_DECODE_ALL, this.codec_decode_all, dv, at);
- at = EBML_write_u32_value(WEBM_CODEC_DELAY, this.codec_delay, dv, at);
at = EBML_write_u32_value(WEBM_SEEK_PRE_ROLL, this.seek_pre_roll, dv, at);
at = EBML_write_u8_value(WEBM_TRACK_TYPE, this.type, dv, at);
at = this.video.to_buffer(a, at);
@@ -523,7 +528,6 @@ webm_VideoTrackEntry.prototype =
WEBM_MIN_CACHE.length + 1 + 1 +
WEBM_MAX_BLOCK_ADDITION_ID.length + 1 + 1 +
WEBM_CODEC_DECODE_ALL.length + 1 + 1 +
- WEBM_CODEC_DELAY.length + 1 + 4 +
WEBM_SEEK_PRE_ROLL.length + 1 + 4 +
WEBM_TRACK_TYPE.length + 1 + 1 +
this.video.buffer_size();
--
2.1.4
More information about the Spice-devel
mailing list