mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 664918. Part 9: Tentative support for MediaStreamListener::NotifyQueuedTrackChanges. r=jesup
This commit is contained in:
parent
0fab284fc7
commit
8470d77f34
@ -621,6 +621,13 @@ MediaStreamGraphImpl::ExtractPendingInput(SourceMediaStream* aStream)
|
||||
finished = aStream->mUpdateFinished;
|
||||
for (PRInt32 i = aStream->mUpdateTracks.Length() - 1; i >= 0; --i) {
|
||||
SourceMediaStream::TrackData* data = &aStream->mUpdateTracks[i];
|
||||
for (PRUint32 j = 0; j < aStream->mListeners.Length(); ++j) {
|
||||
MediaStreamListener* l = aStream->mListeners[j];
|
||||
TrackTicks offset = (data->mCommands & SourceMediaStream::TRACK_CREATE)
|
||||
? data->mStart : aStream->mBuffer.FindTrack(data->mID)->GetSegment()->GetDuration();
|
||||
l->NotifyQueuedTrackChanges(this, data->mID, data->mRate,
|
||||
offset, data->mCommands, *data->mData);
|
||||
}
|
||||
if (data->mCommands & SourceMediaStream::TRACK_CREATE) {
|
||||
MediaSegment* segment = data->mData.forget();
|
||||
LOG(PR_LOG_DEBUG, ("SourceMediaStream %p creating track %d, rate %d, start %lld, initial end %lld",
|
||||
|
@ -108,6 +108,22 @@ public:
|
||||
* Notify that the stream finished.
|
||||
*/
|
||||
virtual void NotifyFinished(MediaStreamGraph* aGraph) {}
|
||||
|
||||
enum {
|
||||
TRACK_EVENT_CREATED = 0x01,
|
||||
TRACK_EVENT_ENDED = 0x02
|
||||
};
|
||||
/**
|
||||
* Notify that changes to one of the stream tracks have been queued.
|
||||
* aTrackEvents can be any combination of TRACK_EVENT_CREATED and
|
||||
* TRACK_EVENT_ENDED. aQueuedMedia is the data being added to the track
|
||||
* at aTrackOffset (relative to the start of the stream).
|
||||
*/
|
||||
virtual void NotifyQueuedTrackChanges(MediaStreamGraph* aGraph, TrackID aID,
|
||||
TrackRate aTrackRate,
|
||||
TrackTicks aTrackOffset,
|
||||
PRUint32 aTrackEvents,
|
||||
const MediaSegment& aQueuedMedia) {}
|
||||
};
|
||||
|
||||
class MediaStreamGraphImpl;
|
||||
@ -419,8 +435,8 @@ public:
|
||||
nsCOMPtr<nsIRunnable> mRunnable;
|
||||
};
|
||||
enum TrackCommands {
|
||||
TRACK_CREATE = 0x01,
|
||||
TRACK_END = 0x02
|
||||
TRACK_CREATE = MediaStreamListener::TRACK_EVENT_CREATED,
|
||||
TRACK_END = MediaStreamListener::TRACK_EVENT_ENDED
|
||||
};
|
||||
/**
|
||||
* Data for each track that hasn't ended.
|
||||
|
Loading…
Reference in New Issue
Block a user