Closed Bug 1898501 Opened 6 months ago Closed 3 months ago

Enable playback of MP4 videos with YUV444 format

Categories

(Core :: Audio/Video: Playback, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
130 Branch
Tracking Status
firefox130 --- fixed

People

(Reporter: stransky, Assigned: stransky)

References

Details

Attachments

(4 files)

MP4/H264 videos with YUV444 format is supported on Linux and works on other browsers (Chrome/Chromium etc.). Firefox is the only one broken. The video format is already used (for instance Bug 1898379 attachment with reproducer) so we should enable it too to make Firefox on the same level as other browsers.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1291742#c40 and bellow for references.

Assignee: nobody → stransky
Status: NEW → ASSIGNED
See Also: → 1291742

Should it be mentioned in the release notes?

Type: defect → enhancement

Does OpenH264 support YUV444 now or would this change be only for ffmpeg?

(In reply to Darkspirit from comment #3)

Does OpenH264 support YUV444 now or would this change be only for ffmpeg?

AFAIK if OpenH264 doesn't support YUV444 the result will be the same as it's now - a message about broken video format.

Flags: needinfo?(stransky)

There is an r+ patch which didn't land and no activity in this bug for 2 weeks.
:stransky, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit BugBot documentation.

Flags: needinfo?(stransky)
Flags: needinfo?(alwu)
Flags: needinfo?(alwu)
Pushed by stransky@redhat.com: https://hg.mozilla.org/integration/autoland/rev/1b99f7fddaa5 [Linux] Allow to play H264/YUV444 format on Linux r=alwu
Pushed by stransky@redhat.com: https://hg.mozilla.org/integration/autoland/rev/393040878a1f [Linux] Add support of YUVJ444P format r=alwu

Alwu, which test will be suitable for it?

Reftest or something else which just loads the clip? I generated YUV444P (and YUVJ444P) clips by gen_combos.py at dom/media/test/reftest and added the files to dom/media/test/reftest/color_quads/reftest.list, is that correct approach?

Thanks.

Flags: needinfo?(stransky)
Flags: needinfo?(alwu)

Backed out for causing reftest and mochitest failures(720p.png.bt709.bt709.tv.gbrp.h264.mp4 , test_bug1354633_media_error.html)

  • Backout link
  • Push with failures
    Push with mochitest failures
  • Failure Log
  • Failure line: TEST-UNEXPECTED-FAIL | browser/components/resistfingerprinting/test/mochitest/test_bug1354633_media_error.html | Test timed out. -
  • Failure Log reftest
  • Failure line reftest: REFTEST TEST-UNEXPECTED-FAIL | dom/media/test/reftest/color_quads/720p.png.bt709.bt709.tv.gbrp.h264.mp4 == dom/media/test/reftest/color_quads/reftest_video.html?src=timeout | image comparison, max difference: 255, number of differing pixels: 273095
    REFTEST TEST-UNEXPECTED-FAIL | dom/media/test/reftest/color_quads/720p.png.bt709.bt709.pc.gbrp.h264.mp4 == dom/media/test/reftest/color_quads/720p.png.bt709.bt709.tv.gbrp.h264.mp4 | image comparison, max difference: 119, number of differing pixels: 25451
Flags: needinfo?(stransky)

(In reply to Martin Stránský [:stransky] (ni? me) from comment #9)

Alwu, which test will be suitable for it?

Reftest or something else which just loads the clip? I generated YUV444P (and YUVJ444P) clips by gen_combos.py at dom/media/test/reftest and added the files to dom/media/test/reftest/color_quads/reftest.list, is that correct approach?

Thanks.

Reftest sounds right to me. I think reftest_video.html can be used in testing YUV444P.

Flags: needinfo?(alwu)
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → 130 Branch
Status: RESOLVED → REOPENED
Flags: needinfo?(stransky)
Resolution: FIXED → ---
Target Milestone: 130 Branch → ---
Status: REOPENED → ASSIGNED
Flags: needinfo?(stransky)

Yes, looks like there are two issues here.

  • reftest - we expected decode timeout but decode works on Linux now. We may disable that timeout test now and add correct decode test for Linux.
  • Mochitest - browser/components/resistfingerprinting/test/mochitest/test_bug1354633_media_error.html - there's a YUV444P video clip used to throw "decode error" message and test exposed info. As long as we decode it now the test is broken. We may need to come with different weird video format to test decode error :)

As H264/yuv444p is supported now on Linux we need a different video format which fails to decode.
VP9/gbrp12le seems to be exotic enough.

Depends on D217089

Flags: needinfo?(stransky)
Pushed by stransky@redhat.com: https://hg.mozilla.org/integration/autoland/rev/49a31919e147 [Linux] Allow to play H264/YUV444 format on Linux r=alwu https://hg.mozilla.org/integration/autoland/rev/5017e396b69b [Linux] Disable reftest video decode timeout on Linux as we do decode now r=alwu https://hg.mozilla.org/integration/autoland/rev/acc5c64134ee Change decode_error.mp4 video format from H264/yuv444p to VP9/gbrp12le r=alwu

Backed out for causing reftests failures.

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: REFTEST TEST-UNEXPECTED-FAIL | dom/media/test/reftest/color_quads/720p.png.bt709.bt709.tv.gbrp.h264.mp4 == dom/media/test/reftest/color_quads/reftest_video.html?src=timeout | image comparison, max difference: 255, number of differing pixels: 359855
Flags: needinfo?(stransky)
Attachment #9413791 - Attachment description: Bug 1898501 [Linux] Disable reftest video decode timeout on Linux as we do decode now r?alwu → Bug 1898501 [Linux] Disable reftest video decode timeout on Linux and Android as we do decode now r?alwu
Pushed by stransky@redhat.com: https://hg.mozilla.org/integration/autoland/rev/77ee1a53de8b [Linux] Allow to play H264/YUV444 format on Linux r=alwu https://hg.mozilla.org/integration/autoland/rev/c0b6bac8dec2 [Linux] Disable reftest video decode timeout on Linux and Android as we do decode now r=alwu https://hg.mozilla.org/integration/autoland/rev/b94ec5ba05c9 Change decode_error.mp4 video format from H264/yuv444p to VP9/gbrp12le r=alwu
Flags: needinfo?(stransky)
Status: ASSIGNED → RESOLVED
Closed: 4 months ago3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 130 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: