New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 784607 link

Starred by 9 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 783519



Sign in to add a comment

Figure out what the AV1 codec string and mime type should be.

Project Member Reported by dalecur...@chromium.org, Nov 13 2017

Issue description

See StringToVideoCodec() in media/base/video_codecs.cc:

https://cs.chromium.org/chromium/src/media/base/video_codecs.cc?l=601

We'll need this to launch AV1 for real. Will this be the same as the new style vp9.2 codec string? More complicated? Less complicated?
 
Blocking: 783519
Project Member

Comment 2 by bugdroid1@chromium.org, Nov 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/68d5c0ad6f486158dd797241a544b8946f36452d

commit 68d5c0ad6f486158dd797241a544b8946f36452d
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Mon Nov 20 23:36:29 2017

Enable AV1 with MSE and SRC when runtime flag is enabled.

Adds support for AV1 in webm and mp4 with MSE and enables this
support only when the buildflag and runtime flag are present.

The proper codec string is currently just "av1" until it's
finalized. Tracked by  http://crbug.com/784607 . E.g., the
following should be used with this demo:

HTMLMediaElement.canPlayType('video/mp4; codecs="av1"')
HTMLMediaElement.canPlayType('video/webm; codecs="av1"')
MediaSource.isTypeSupported('video/mp4; codecs="av1"')
MediaSource.isTypeSupported('video/webm; codecs="av1"')

BUG= 783519 ,  784607 , b/67860440
TEST=manual, new tests, updated existing tests.

http: //xorax.sea/mse.html?type=mp4_av1&src=test_av1_bitstream.mp4
http: //xorax.sea/mse.html?type=webm_av1&src=test_av1_bitstream.mkv
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I7f29de49b05849f681d8781755f189ea50ace475
Reviewed-on: https://chromium-review.googlesource.com/776060
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Johann Koenig <johannkoenig@google.com>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517991}
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/content/browser/DEPS
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/content/browser/media/media_canplaytype_browsertest.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/content/test/BUILD.gn
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/base/decode_capabilities.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/base/mime_util_internal.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/base/mime_util_internal.h
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/base/mime_util_unittest.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/filters/BUILD.gn
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/filters/stream_parser_factory.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/formats/BUILD.gn
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/formats/mp4/box_definitions.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/formats/mp4/fourccs.h
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/formats/webm/webm_video_client.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/renderers/default_renderer_factory.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/test/BUILD.gn
[add] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/test/data/bear-av1.mp4
[add] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/test/data/bear-av1.webm
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/test/pipeline_integration_test.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/media/test/pipeline_integration_test_base.cc
[modify] https://crrev.com/68d5c0ad6f486158dd797241a544b8946f36452d/tools/metrics/histograms/enums.xml

Comment 3 by jaikk@chromium.org, Mar 30 2018

Owner: tomfinegan@chromium.org
Hey Tom, are we ready to finalize the canPlayType()/isTypeSupported() return values? 
There's an updated proposed format in the latest ISOBMFF spec: https://aomediacodec.github.io/av1-isobmff/#codecsparam

The ISOBMFF bindings, at least the v1.0 release, will hopefully be soon. Until that's done we're not ready, but we're close. That said, I don't expect it to change significantly from what is currently proposed.

Comment 5 by jaikk@chromium.org, Jun 18 2018

Status: Fixed (was: Assigned)
Given how close we are to bitstream freeze, I'm listing this as fixed. We can reopen if there are any last second changes. 
Owner: dalecur...@chromium.org
Status: Assigned (was: Fixed)
Should be assigned to me. Can you link to finalized strings?

Comment 7 by jaikk@chromium.org, Jun 18 2018

Reassigning to Dale for any actual work in Chrome :)
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c

commit dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Fri Jun 22 00:09:57 2018

Add finalized AV1 profile types.

This just adds the enum values for use in later patch sets which
will parse the profile from the codec string and bitstreams.

There are three named profiles:
“Main” compliant decoders must be able to decode [...]
“High” compliant decoders must be able to decode [...]
“Professional” compliant decoders must be able to decode [...]

From http://av1-spec.argondesign.com/av1-spec/av1-spec.html#profiles

Bug:  784993 ,  784607 
Test: None
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I54815d6fb6c2d8978c0897d617025e7a5c5473d6
Reviewed-on: https://chromium-review.googlesource.com/1108555
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Oliver Chang <ochang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Johann Koenig <johannkoenig@google.com>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569463}
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/components/arc/common/video_accelerator_struct_traits.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/components/arc/common/video_common.mojom
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/content/browser/gpu/gpu_internals_ui.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/gpu/config/gpu_info.h
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/gpu/ipc/common/gpu_info.mojom
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/gpu/ipc/common/gpu_info_struct_traits.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/base/mime_util_internal.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/base/video_codecs.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/base/video_codecs.h
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/base/video_decoder_config.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/ffmpeg/ffmpeg_common.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/formats/mp4/box_definitions.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/formats/webm/webm_video_client.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/gpu/gpu_video_accelerator_util.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/remoting/proto_enum_utils.cc
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/media/remoting/rpc.proto
[modify] https://crrev.com/dea1981c99e9cb0de9bf95ed1423c5b7c6f68c1c/tools/metrics/histograms/enums.xml

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1

commit 19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Fri Jun 22 22:49:38 2018

Add AV1 codec string parsing and require it for MIME handling.

This implements the codec string processing as described here:
https://aomediacodec.github.io/av1-isobmff/#codecsparam

Valid mime types look something like the following:
"av01.0.04M.10.0.112.09.16.09.0"
"av01.0.01M.08"

Bug:  784607 
Test: New unit tests.
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I320dbdc4571b49a6ccea0a464c10f8ba4e656037
Reviewed-on: https://chromium-review.googlesource.com/1109412
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Johann Koenig <johannkoenig@google.com>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569815}
[modify] https://crrev.com/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1/content/browser/media/media_canplaytype_browsertest.cc
[modify] https://crrev.com/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1/media/base/mime_util_internal.cc
[modify] https://crrev.com/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1/media/base/video_codecs.cc
[modify] https://crrev.com/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1/media/base/video_codecs.h
[modify] https://crrev.com/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1/media/base/video_codecs_unittest.cc
[modify] https://crrev.com/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1/media/filters/stream_parser_factory.cc
[modify] https://crrev.com/19b727f6cffe7c23d58f5917d5ff2b80ce96f4d1/media/test/pipeline_integration_test.cc

Labels: M-69
Status: Fixed (was: Assigned)
Project Member

Comment 11 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61cdd5258503998303ee40ca66e3c851c71956b4

commit 61cdd5258503998303ee40ca66e3c851c71956b4
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Thu Jul 19 02:37:24 2018

Add profile parsing from the 'av1C' MP4 atom. Enable fuzzing.

This implements reading of the 'seq_profile' value from the
'av1C' atom per the spec description here:
https://aomediacodec.github.io/av1-isobmff/#av1codecconfigurationbox
https://aomediacodec.github.io/av1-spec/av1-spec.pdf (Section 5.2)

This also re-enables previously disabled tests and adds the various
bits necessary for av1 fuzzer tests.

Bug: 757047,  784993 ,  784607 
Test: Updated unittests and fuzzertests.
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I05d8d42c8c022b7dc508ab8d212ad846ae1de8b6
Reviewed-on: https://chromium-review.googlesource.com/1107260
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Chrome Cunningham (In Paris) <chcunningham@chromium.org>
Reviewed-by: Tom Finegan <tomfinegan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576335}
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/formats/mp4/box_definitions.cc
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/formats/mp4/box_definitions.h
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/formats/mp4/fourccs.h
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/test/BUILD.gn
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/test/data/bear-av1.mp4
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/test/mp4.dict
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/test/pipeline_integration_fuzzertest.cc
[modify] https://crrev.com/61cdd5258503998303ee40ca66e3c851c71956b4/media/test/pipeline_integration_test.cc

Sign in to add a comment