New issue
Advanced search Search tips

Issue 812465 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

MediaPlayerRenderer errors are not being propagated to the media::Pipeline

Project Member Reported by tguilbert@chromium.org, Feb 15 2018

Issue description

Switching to post demux HLS introduced the following problem:

The detection of HLS is propagated as an error code through the pipeline, but RendererWrapper's |status_| is never reset. RendererWrapper does not propagate errors when it is in any other state than PIPELINE_OK.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Feb 16 2018

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

commit 903cf4d0ee65f8f649c01f6417d6d7cd4ca2d1ab
Author: Thomas Guilbert <tguilbert@chromium.org>
Date: Fri Feb 16 20:39:45 2018

Fix MediaPlayerRenderer error propagation

The detection of HLS by the demuxer is propagated through the pipeline
via a special error code. This error code is saved by RendererWrapper,
and never reset. RW does not propagate errors when it is already has an
error status. This means that HLS errors are never fully reported to the
pipeline.

This CL fixes the issue by reseting RendererWrapper's status on stop.
This makes the comments above |status_| accurate again.

The CL also fixes a bug in MediaPlayerRenderer, where
MEDIA_ERROR_FORMAT errors are dropped, and MEDIA_ERROR_INVALID_CODE
errors are propagated.

Test: manual tests, added UT
Bug:  812465 
Change-Id: I281d90104c8f9cb879e90c6d31a99167991c06ab
Reviewed-on: https://chromium-review.googlesource.com/920881
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537407}
[modify] https://crrev.com/903cf4d0ee65f8f649c01f6417d6d7cd4ca2d1ab/content/browser/media/android/media_player_renderer.cc
[modify] https://crrev.com/903cf4d0ee65f8f649c01f6417d6d7cd4ca2d1ab/media/base/pipeline_impl.cc
[modify] https://crrev.com/903cf4d0ee65f8f649c01f6417d6d7cd4ca2d1ab/media/base/pipeline_impl_unittest.cc

Summary: MediaPlayerRenderer errors are not being propagated to the media::Pipeline (was: MediaPlayerRenderers are not being propagated to the media::Pipeline)
There is a current uptick in Media.PipelineStatus.Unsupported PIPELINE_ERROR_DECODE UMAs, which is expected. Previously, any error during HLS playback way unreported at the PipelineStatus level (but still reported at the MediaPlayerSuccess level). We should see the level of PIPELINE_ERROR_DECODE increase and more closely match the  "Media.Android.MediaPlayerSuccess.HasErrors" counts.
Status: Fixed (was: Assigned)

Sign in to add a comment