New issue
Advanced search Search tips

Issue 720008 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

FFmpegVideoDecoderTest.* failing on Android

Reported by kra...@amazon.com, May 9 2017

Issue description

Version: Tip of master
OS: Android

What steps will reproduce the problem?
On an Android checkout:
(1) Enable ffmpeg being built into Chrome using gn flags
(2) Run media_unittests

What is the expected output?
All tests pass

What do you see instead?
C  165.536s Main  ********************************************************************************
C  165.546s Main  [==========] 3080 tests ran.
C  165.546s Main  [  PASSED  ] 3062 tests.
C  165.546s Main  [  FAILED  ] 18 tests, listed below:
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.Destroy_Initialized
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.Initialize_Normal
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.Reinitialize_Normal
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_0ByteFrame (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_DecodeError (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_DecodeErrorAtEndOfStream (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_LargerHeight (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_LargerWidth (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_Normal (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_SmallerHeight (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.DecodeFrame_SmallerWidth (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.Destroy_Decoding (CRASHED)
C  165.546s Main  [  FAILED  ] FFmpegVideoDecoderTest.Destroy_EndOfStream (CRASHED)
C  165.547s Main  [  FAILED  ] FFmpegVideoDecoderTest.Reinitialize_AfterDecodeFrame (CRASHED)
C  165.547s Main  [  FAILED  ] FFmpegVideoDecoderTest.Reinitialize_AfterReset (CRASHED)
C  165.547s Main  [  FAILED  ] FFmpegVideoDecoderTest.Reset_Decoding (CRASHED)
C  165.547s Main  [  FAILED  ] FFmpegVideoDecoderTest.Reset_EndOfStream (CRASHED)
C  165.547s Main  [  FAILED  ] FFmpegVideoDecoderTest.Reset_Initialized (CRASHED)
C  165.547s Main
C  165.547s Main  18 FAILED TESTS
C  165.547s Main  ********************************************************************************

Please use labels and text to provide additional information.

 

Comment 1 by kra...@amazon.com, May 9 2017

Proposed fix for 14 out of the 18 failures: https://codereview.chromium.org/2874433002
Cc: chcunningham@chromium.org dalecur...@chromium.org
Components: Internals>Media>Codecs
Labels: OS-Android
Status: Available (was: Untriaged)
From the description in the above CL:
>VP8 decoders are not built into the ffmpeg decoders
>by default on Android, even if building in ffmpeg is
>enabled.

Is VP8 decoding enabled in FFmpeg on desktop? I thought we use libvpx for VPx codecs, though I'm not sure how that test would have passed on desktop then.

As I noted in that CL, we can't simply switch these tests to proprietary codecs, because those are not enabled by default in Chromium builds. With Theora not supported on Android, there may not be a common video codec.


Separately, you might want to look into why these crash ("CRASHED" result) and ensure that this can't happen if an app provides VP8 to Chromium builds with this configuration.

Comment 3 by kra...@amazon.com, May 9 2017

Thanks for your feedback!

As for VP8 on non-Android:
third_party/ffmpeg/chromium/scripts/build_ffmpeg.py specifies that if target_os != 'android':
'--enable-decoder=theora,vp8',

So all platforms except Android will get vp8 by default.

As for the crash - in prod it wouldn't try using VP8 on Android since it's not supported, but since the test forces the format to use VP8 right now, initialization of the FFmpegVideoDecoder will fail.
The exact check that fails is in FFmpegVideoDecoder::Decode
  CHECK_NE(state_, kUninitialized);

--> Initialization failed because ConfigureDecoder will return false for VP8 on Android (See FFmpegVideoDecoder::Initialize)
Project Member

Comment 4 by sheriffbot@chromium.org, May 10 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: WontFix (was: Untriaged)

Sign in to add a comment