Open Bug 1749539 (VideoFrame) Opened 3 years ago Updated 2 months ago

[meta] Implement VideoFrame

Categories

(Core :: Audio/Video: Web Codecs, task, P1)

task

Tracking

()

People

(Reporter: jib, Assigned: chunmin)

References

(Depends on 16 open bugs, Blocks 6 open bugs, )

Details

(Keywords: meta, parity-chrome, parity-safari)

Attachments

(7 obsolete files)

Implement the VideoFrame interface.

VideoFrames will be produced in the platform by:

  1. The MediaStreamTrackProcessor API (bug 1749532)
  2. The VideoDecoder (bug 1749045)
  3. The VideoFrame constructor, from any CanvasImageSource (e.g. Image) or even a BufferSource (e.g. ArrayBuffer).

Given 3, it might be possible to hand this over to Graphics to untangle tasks, but I'm filing it here for now since it's technically part of WebCodecs.

Blocks: webcodecs
Depends on: 1562065, 1696216
Assignee: nobody → cchang

This patch creates a blank class for the VideoColorSpace interface. The
files are generated by running ./mach build-backend && ./mach webidl-example VideoColorSpace with necessary changes to make it
buildable.

The implementations are plain blank now. They will be filled out in the
following patches.

This patch creates a blank class for the VideoFrame interface. The files
are generated by running ./mach build-backend && ./mach webidl-example VideoFrame with necessary changes to make it buildable.

The implementations are plain blank now. They will be filled out in the
following patches.

Depends on D144771

Depends on: 1696219
Attached file WIP: Bug 1749539 - Implement VideoColorSpace (obsolete) —

Depends on D144772

Depends on D145395

Attachment #9277213 - Attachment description: WIP: Bug 1749539 - Implement VideoFrame → WIP: Bug 1749539 - Implement basic VideoFrame interfaces
Attachment #9278272 - Attachment is obsolete: true

Depends on D146752

Depends on D148082

I am going to divide this bug into several smaller sub-tasks, and make this a meta bug for VideoFrame. After working on VideoFrame for a while, I realize that we need to add and/or modify some internal gfx data structure to support all the formats defined in the spec. Landing some basic operations first allows us to unblock other webcodec's works.

Depends on: 1774300
Depends on: 1774302
Depends on: 1774306

Comment on attachment 9273949 [details]
WIP: Bug 1749539 - Add a blank VideoColorSpace interface

Revision D144771 was moved to bug 1774300. Setting attachment 9273949 [details] to obsolete.

Attachment #9273949 - Attachment is obsolete: true

Comment on attachment 9273950 [details]
WIP: Bug 1749539 - Add a blank VideoFrame interface

Revision D144772 was moved to bug 1774300. Setting attachment 9273950 [details] to obsolete.

Attachment #9273950 - Attachment is obsolete: true

Comment on attachment 9274909 [details]
WIP: Bug 1749539 - Implement VideoColorSpace

Revision D145395 was moved to bug 1774300. Setting attachment 9274909 [details] to obsolete.

Attachment #9274909 - Attachment is obsolete: true

Comment on attachment 9277213 [details]
WIP: Bug 1749539 - Implement basic VideoFrame interfaces

Revision D146752 was moved to bug 1774300. Setting attachment 9277213 [details] to obsolete.

Attachment #9277213 - Attachment is obsolete: true

Comment on attachment 9279353 [details]
WIP: Bug 1749539 - Implement VideoFrame Constructor for I420 ArrayBuffer*

Revision D148082 was moved to bug 1774300. Setting attachment 9279353 [details] to obsolete.

Attachment #9279353 - Attachment is obsolete: true

Comment on attachment 9280705 [details]
WIP: Bug 1749539 - Implement VideoFrame Constructor for ImageBitmap

Revision D148930 was moved to bug 1774300. Setting attachment 9280705 [details] to obsolete.

Attachment #9280705 - Attachment is obsolete: true
Alias: VideoFrame
Keywords: meta
Summary: Implement VideoFrame → [meta] Implement VideoFrame
Severity: -- → S3
Priority: -- → P1
Depends on: 1779655
Depends on: 1779656
Depends on: 1780656
Blocks: 1781526
Regressed by: 1781526
Blocks: 1781527
No longer regressed by: 1781526
Depends on: 1782128
Depends on: 1789878
Depends on: 1797557
Depends on: 1798959
Depends on: 1798975
Depends on: 1801818
Depends on: 1802053
Depends on: 1803022
Depends on: 1805103
Depends on: 1805104
Depends on: 1814939
Depends on: 1815511
Depends on: 1815519
Depends on: 1827470
Depends on: 1839169
Depends on: 1839270
Depends on: 1797643
Depends on: 1841195
Component: Audio/Video → Audio/Video: Web Codecs
Depends on: 1841844
Depends on: 1841903

Is there any progress on this?
I don't know how I should tell people to still use Firefox if background blur in video meetings are not working because this feature is missing?
Other browsers implemented this 2 years ago. Even Safari has it since 6 months.

https://www.3cx.com/community/threads/background-blur-for-3cx-video-meetings.122356/
https://developer.mozilla.org/en-US/docs/Web/API/VideoFrame#browser_compatibility

Depends on: 1861769
Blocks: VideoEncoder
No longer blocks: 1749047
Depends on: 1749047
Depends on: 1864475
Depends on: 1875485
No longer depends on: 1696216
No longer depends on: 1696219
Depends on: 1902115
Depends on: 1902157
Depends on: 1902351
Depends on: 1902355
Depends on: 1902365
Depends on: 1770258
Depends on: 1904470
Depends on: 1904471
No longer depends on: 1904470
Depends on: 1906717
Depends on: 1906774
Depends on: 1907121
Depends on: 1908206
Depends on: 1908572
Depends on: 1909373
Depends on: 1910668
Depends on: 1914172
Type: enhancement → task
Depends on: 1923537
Depends on: 1923729
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: