From ed7ea87772b891b5e1336a944c3b4e87c7698e80 Mon Sep 17 00:00:00 2001 From: Eugene Zemtsov Date: Tue, 16 Mar 2021 00:03:30 -0700 Subject: [PATCH] webcodecs: Temporal SVC encode 1. Adding VideoEncoderConfig.scalabilityMode and EncodedVideoChunkMetadata 2. Connecting them to SVC fields in media::VideoEncoder config and output 3. Renaming VideoEncoderOutputCallback to EncodedVideoChunkOutputCallback in order to comply with the spec. 4. Deleting EncodedVideoMetadata, it doesn't do anything, and can be confused with EncodedVideoChunkMetadata 5. New test: temporal_svc.any.js Bug: 1176474 Change-Id: Ia89ec093c55df4495f50d51262bcc75c578fd8d6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2755947 Commit-Queue: Eugene Zemtsov Reviewed-by: Dan Sanders Reviewed-by: Chrome Cunningham Cr-Commit-Position: refs/heads/master@{#863171} --- webcodecs/video-encoder.any.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webcodecs/video-encoder.any.js b/webcodecs/video-encoder.any.js index a63df9914a1e2a..a7fc327e979c1c 100644 --- a/webcodecs/video-encoder.any.js +++ b/webcodecs/video-encoder.any.js @@ -60,7 +60,10 @@ promise_test(t => { promise_test(async t => { let output_chunks = []; let codecInit = getDefaultCodecInit(t); - codecInit.output = chunk => output_chunks.push(chunk); + codecInit.output = (chunk, metadata) => { + assert_not_equals(metadata, null); + output_chunks.push(chunk); + } let encoder = new VideoEncoder(codecInit); @@ -102,7 +105,7 @@ promise_test(async t => { let bitmap = await generateBitmap(320, 200); let encoder = null; let reset_completed = false; - codecInit.output = chunk => { + codecInit.output = (chunk, metadata) => { if (chunk.timestamp % 2 == 0) { // pre-reset frames have even timestamp callbacks_before_reset++;