Introduce a "URL demuxer" to pave the way for MediaPlayerRenderer |
||
Issue descriptionThe 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.
,
Jun 23 2016
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.
,
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
,
Jul 6 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by tguilbert@chromium.org
, Jun 23 2016