| Commit-Queue | +1 |
This was my alternative option to plumbing the "SetTrackState" callback into HlsManifestDemuxerEngine. I just didn't think it made a lot of sense to have so many callbacks all stored in the HMDE directly.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +1 |
@Frank, PTAL. Vast majority of changes to demuxer_manager.cc are just moving methods around to share #if DEFINED(...) blocks.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
seems reasonable. i don't know if it can be untangled further but it's an improvement for sure.
-fl
+-------------------------+ +--------------------------+let me guess.. beamer.
// don't line up, with destructors posted across thread hops, so prior to this
// implementation, most of the calls were wrapped in repeating callbacks withnit: in ten years when somebody fiddles with this code next, they won't care what it was like before this interface.
std::unique_ptr<media::TrackManager> GetTrackManager() const override;this could use a comment that the resulting track manager can be called on any thread.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
seems reasonable. i don't know if it can be untangled further but it's an improvement for sure.
-fl
You might want to re-review patch set 9, some stuff changed (including commit message)
+-------------------------+ +--------------------------+let me guess.. beamer.
lol. no just ascii art. you should see the next CL :)
// don't line up, with destructors posted across thread hops, so prior to this
// implementation, most of the calls were wrapped in repeating callbacks withnit: in ten years when somebody fiddles with this code next, they won't care what it was like before this interface.
I think you're remarking on the non-latest patch?
std::unique_ptr<media::TrackManager> GetTrackManager() const override;this could use a comment that the resulting track manager can be called on any thread.
Same thing. turns out there was some serious weirdness with allowing ffmpeg demuxer to post-task the track additions, and it was breaking very many things, hence the new patch set.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[HLS] Replace track op functions with helper class
As a result of the crazy media object lifetimes, the HLS player
implementation always talks back to DemuxerManager via weakly bound
repeating callbacks.
ManifestDemuxer used
- DemuxerManager::DemuxerRequestsSeek
HlsManifestDemuxerEngine used
- DemuxerManager::AddTrack
- DemuxerManager::RemoveTrack
It was slightly annoying to have to create a new bound callback for
every new method that we needed to add (in this case, SetTrackState),
and the class member list was getting polluted with a bunch of same-type
repeating callbacks.
This CL accomplishes two things -
1. Clean up the method declarations for
AddTrack/RemoveTrack/SetTrackState. Identical methods
were originally declared in both DemuxerManager::Client
and MediaPlayerClient. These can be shared in a super-interface
for both, which is now called "TrackManager".
2. Package up all the track management callbacks into a helper
object which can be passed as a single parameter and class
member to HlsManifestDemuxerEngine. This also makes it easier
to unittest.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |