Re: [PATCH spice-html5] Review the webm audio track header and remove the fixmes.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 8/11/19 4:32 AM, Frediano Ziglio wrote:
Hi,
   why this was not merged ?

I completely missed the ack at the time.

I do think the patch is fundamentally correct and an improvement.  This one arguably deserves a reprise of the audit I performed at the time to ensure that the results are still correct.  I was planning to do that in September (and resubmit the uid patch at the same time).

For the record, I have an internal todo list of patches that were missed to circle back to.  You've now caught most of them, thank you (websockets being the big one).  I believe I still have one or two patches to argument parsing on libcacard, and I do not have a patch, but a concern, on the removal of the spice-controller.  I also have a large separate patch set against the kernel providing usbredir support.

Cheers,

Jeremy


Frediano

Ack

Thanks,
Pavel

On Fri, 2016-12-23 at 10:53 -0600, Jeremy White wrote:
This involved a review of the Firefox parsing code along
with the official specifcation, and setting these fields
to the specified default values.

Most notably, I have found that recent browsers do not need the
8 ms pre skip, and it seems to remove some audio lag to
switch to 0.

Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx>
---
  webm.js | 27 +++++++++++++++++++--------
  1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/webm.js b/webm.js
index 789da14..72c1853 100644
--- a/webm.js
+++ b/webm.js
@@ -393,28 +393,39 @@ webm_SeekHead.prototype =
 function webm_AudioTrackEntry()
  {
+    /*
+    ** 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
+    **   There is one RECOMMENDED guideline we are omitting;
+    ** the OPUS codec_delay is recommended to be 80ms.
+    ** However, the spice server does not currently provide time
+    ** stamps that are offset by 80ms, so you effectively get an
+    ** 80ms lag with this setting.
+    */
      this.id = WEBM_TRACK_ENTRY;
      this.number = 1;
      this.uid = 1;
      this.type = 2; // Audio
      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.seek_pre_roll = 0;
+    this.codec_delay =   0; // Must match codec_private.preskip
      this.codec_id = "A_OPUS";
+    this.codec_decode_all = 1;
      this.audio = new webm_Audio(OPUS_FREQUENCY);
     // See:  http://tools.ietf.org/html/draft-terriberry-oggopus-01
      this.codec_private = [ 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65,
0x61, 0x64,  // OpusHead
                             0x01, // Version
                             OPUS_CHANNELS,
-                           0x00, 0x0F, // Preskip - 3840 samples -
should be 8ms at 48kHz
-                           0x80, 0xbb, 0x00, 0x00,  // 48000
+                           0x00, 0x00, // Preskip - 3840 samples
would be 8ms at 48kHz
+                           0x80, 0xbb, 0x00, 0x00,  // nominal rate
- 48000
                             0x00, 0x00, // Output gain
                             0x00  // Channel mapping family
                             ];
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]