[webcodecs] Deprecate VideoFrame.destroy().
This CL adds VideoFrame.close() as an alias for VideoFrame.destroy(),
adds a deprecation message for VideoFrame.destroy(), and changes all
callsites to use close().
Bug: 1166930
Change-Id: I39b9c68262553a6814f6bb0b6b81c02012c2d026
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2631405
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Eugene Zemtsov <eugene@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#844250}
diff --git a/webcodecs/video-decoder.any.js b/webcodecs/video-decoder.any.js
index 33ea2db..44e7375 100644
--- a/webcodecs/video-decoder.any.js
+++ b/webcodecs/video-decoder.any.js
@@ -199,7 +199,7 @@
assert_equals(frame.cropWidth, 320, "cropWidth");
assert_equals(frame.cropHeight, 240, "cropHeight");
assert_equals(frame.timestamp, 0, "timestamp");
- frame.destroy();
+ frame.close();
});
},
error(e) {
diff --git a/webcodecs/video-encoder.any.js b/webcodecs/video-encoder.any.js
index 77fe184..d86e6b6 100644
--- a/webcodecs/video-encoder.any.js
+++ b/webcodecs/video-encoder.any.js
@@ -222,14 +222,14 @@
encoder.encode(frame);
- // |frame| is not longer valid since it has been destroyed.
+ // |frame| is not longer valid since it has been closed.
assert_not_equals(frame.timestamp, timestamp);
assert_throws_dom("InvalidStateError", () => frame.clone());
encoder.close();
return endAfterEventLoopTurn();
-}, 'Test encoder consumes (destroys) frames.');
+}, 'Test encoder consumes (closes) frames.');
promise_test(async t => {
let encoder = new VideoEncoder(getDefaultCodecInit(t));
@@ -251,12 +251,11 @@
let encoder = new VideoEncoder(getDefaultCodecInit(t));
let frame = await createVideoFrame(640, 480, 0);
- frame.destroy();
+ frame.close();
encoder.configure(defaultConfig);
- frame.destroy();
assert_throws_dom("OperationError", () => {
encoder.encode(frame)
});
-}, 'Verify encoding destroyed frames throws.');
+}, 'Verify encoding closed frames throws.');
diff --git a/webcodecs/video-frame-serialization.any.js b/webcodecs/video-frame-serialization.any.js
index 524f943..338f721 100644
--- a/webcodecs/video-frame-serialization.any.js
+++ b/webcodecs/video-frame-serialization.any.js
@@ -25,8 +25,8 @@
assert_equals(frame.cropWidth, clone.cropWidth);
assert_equals(frame.cropHeight, clone.cropHeight);
- frame.destroy();
- clone.destroy();
+ frame.close();
+ clone.close();
}, 'Test we can clone a VideoFrame.');
test(t => {
@@ -35,23 +35,23 @@
let copy = frame;
let clone = frame.clone();
- frame.destroy();
+ frame.close();
assert_not_equals(copy.timestamp, defaultInit.timestamp);
assert_equals(clone.timestamp, defaultInit.timestamp);
- clone.destroy();
-}, 'Verify destroying a frame doesn\'t affect its clones.');
+ clone.close();
+}, 'Verify closing a frame doesn\'t affect its clones.');
test(t => {
let frame = createDefaultVideoFrame();
- frame.destroy();
+ frame.close();
assert_throws_dom("InvalidStateError", () => {
let clone = frame.clone();
});
-}, 'Verify cloning a destroyed frame throws.');
+}, 'Verify cloning a closed frame throws.');
async_test(t => {
let localFrame = createDefaultVideoFrame();
@@ -62,7 +62,7 @@
externalPort.onmessage = t.step_func((e) => {
let externalFrame = e.data;
- externalFrame.destroy();
+ externalFrame.close();
externalPort.postMessage("Done");
})
@@ -72,7 +72,7 @@
localPort.postMessage(localFrame);
-}, 'Verify destroying frames propagates accross contexts.');
+}, 'Verify closing frames propagates accross contexts.');
async_test(t => {
let localFrame = createDefaultVideoFrame();
@@ -83,18 +83,18 @@
externalPort.onmessage = t.step_func((e) => {
let externalFrame = e.data;
- externalFrame.destroy();
+ externalFrame.close();
externalPort.postMessage("Done");
})
localPort.onmessage = t.step_func_done((e) => {
assert_equals(localFrame.timestamp, defaultInit.timestamp);
- localFrame.destroy();
+ localFrame.close();
})
localPort.postMessage(localFrame.clone());
-}, 'Verify destroying cloned frames doesn\'t propagate accross contexts.');
+}, 'Verify closing cloned frames doesn\'t propagate accross contexts.');
async_test(t => {
let localFrame = createDefaultVideoFrame();
@@ -104,11 +104,11 @@
localPort.onmessage = t.unreached_func();
- localFrame.destroy();
+ localFrame.close();
assert_throws_dom("DataCloneError", () => {
localPort.postMessage(localFrame);
});
t.done();
-}, 'Verify posting destroyed frames throws.');
+}, 'Verify posting closed frames throws.');
diff --git a/webcodecs/video-frame.any.js b/webcodecs/video-frame.any.js
index 9eb6699..14cce43 100644
--- a/webcodecs/video-frame.any.js
+++ b/webcodecs/video-frame.any.js
@@ -12,7 +12,7 @@
assert_equals(frame.cropWidth, 32, "displayWidth");
assert_equals(frame.cropHeight, 16, "displayHeight");
- frame.destroy();
+ frame.close();
}, 'Test we can construct a VideoFrame.');
test(t => {
@@ -24,7 +24,7 @@
assert_equals(frame.cropWidth, 1, "displayWidth");
assert_equals(frame.cropHeight, 1, "displayHeight");
- frame.destroy();
+ frame.close();
}, 'Test we can construct an odd-sized VideoFrame.');
test(t => {
@@ -63,7 +63,7 @@
// guarantees about the color space.
assert_equals(view[0], 94, "Y value at (0, 0)");
- frame.destroy();
+ frame.close();
}, 'Test we can read planar data from a VideoFrame.');
test(t => {
@@ -78,15 +78,15 @@
assert_equals(frame.planes.length, 3, "number of planes");
- // Attempt to read Y plane data, but destroy the frame first.
+ // Attempt to read Y plane data, but close the frame first.
let yPlane = frame.planes[0];
let yLength = yPlane.length;
- frame.destroy();
+ frame.close();
let buffer = new ArrayBuffer(yLength);
let view = new Uint8Array(buffer);
assert_throws_dom("InvalidStateError", () => yPlane.readInto(view));
-}, 'Test we cannot read planar data from a destroyed VideoFrame.');
+}, 'Test we cannot read planar data from a closed VideoFrame.');
test(t => {
let image = makeImageBitmap(32, 16);
diff --git a/webcodecs/video-track-reader.html b/webcodecs/video-track-reader.html
index b5d610e..925e837 100644
--- a/webcodecs/video-track-reader.html
+++ b/webcodecs/video-track-reader.html
@@ -38,7 +38,7 @@
assert_equals(frame.codedWidth, testVideo.width);
assert_equals(frame.codedHeight, testVideo.height);
assert_not_equals(frame.timestamp, null);
- frame.destroy();
+ frame.close();
if (++numberFrames == 5) {
vtr.stop();