New issue
Advanced search Search tips

Issue 622812 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Feature

Blocking:
issue 619729



Sign in to add a comment

Introduce a "URL demuxer" to pave the way for MediaPlayerRenderer

Project Member Reported by tguilbert@chromium.org, Jun 23 2016

Issue description

The Android MediaPlayer manages its own network calls and its own
demuxing, and therefore has no need for a Demuxer or DemuxerStreams.

However, the concept of a Demuxer and DemuxerStream is deeply engrained
within the Pipeline. Removing the Demuxer from the pipeline when using
a MediaPlayer would require a non-trivial amount of refactoring, that
might not be worth it.

Furthermore, we need to somehow give the MediaPlayerRenderer the URL that it needs.

The current proposed plan is therefore to create a "URL demuxer", which would allow minimal disruption of the Pipeline logic.
 
Summary: Introduce a "URL demuxer" to pave the way for MediaPlayerRenderer (was: Introduce a "URL demuxer")
For historical/curiosity purposes, here is what adding a UrlDemuxerStream looks like:
https://codereview.chromium.org/2099453002

This is not the currently proposed solution however.
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 25 2016

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

commit ecbf9a03be35bb77f01fb681e08b822db4575b7e
Author: tguilbert <tguilbert@chromium.org>
Date: Sat Jun 25 03:05:08 2016

Add GetUrl to DemuxerStreamProvider interface

The Android MediaPlayer manages its own network calls and its own
demuxing, and therefore has no need for a Demuxer or DemuxerStreams.

However, the concept of a Demuxer and DemuxerStream is deeply engrained
within the Pipeline. Removing the Demuxer from the pipeline when using
a MediaPlayer would require a non-trivial amount of refactoring, that
might not be worth it.

This change adds a GetUrl method to the DemuxerStreamProvider interface.
It allows us to pass a Url to the MojoRenderer and MediaPlayerRenderer
at initialization time. It also adds the MediaUrlProvider, a concrete
class implementing this new method. MediaUrlProvider's primary purpose
is however to act as a dummy demuxer, that swallows demuxer calls as to
not disrupt the normal Pipeline logic.

As of this change, the DemuxerStreamProvider interface is now a bit of a
misnomer, but renaming it "MediaSourceProvider" would be even more
confusing. The interface should be renamed if ever we refactor Pipeline
to be less intertwined with Demuxer.

BUG= 622812 
TEST=All media_unittests passed.

Review-Url: https://codereview.chromium.org/2090343004
Cr-Commit-Position: refs/heads/master@{#402048}

[modify] https://crrev.com/ecbf9a03be35bb77f01fb681e08b822db4575b7e/media/base/android/BUILD.gn
[add] https://crrev.com/ecbf9a03be35bb77f01fb681e08b822db4575b7e/media/base/android/media_url_demuxer.cc
[add] https://crrev.com/ecbf9a03be35bb77f01fb681e08b822db4575b7e/media/base/android/media_url_demuxer.h
[add] https://crrev.com/ecbf9a03be35bb77f01fb681e08b822db4575b7e/media/base/android/media_url_demuxer_unittest.cc
[modify] https://crrev.com/ecbf9a03be35bb77f01fb681e08b822db4575b7e/media/base/demuxer_stream_provider.cc
[modify] https://crrev.com/ecbf9a03be35bb77f01fb681e08b822db4575b7e/media/base/demuxer_stream_provider.h

Status: Fixed (was: Started)

Sign in to add a comment