mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 23:05:42 +00:00
Bug 1274199 - remove use of FlushableTaskQueue. r=cpearce.
MozReview-Commit-ID: J9BHEuF6CPJ
This commit is contained in:
parent
fbdef02717
commit
13fa174ec0
@ -25,11 +25,9 @@ class BlankMediaDataDecoder : public MediaDataDecoder {
|
||||
public:
|
||||
|
||||
BlankMediaDataDecoder(BlankMediaDataCreator* aCreator,
|
||||
FlushableTaskQueue* aTaskQueue,
|
||||
MediaDataDecoderCallback* aCallback,
|
||||
TrackInfo::TrackType aType)
|
||||
: mCreator(aCreator)
|
||||
, mTaskQueue(aTaskQueue)
|
||||
, mCallback(aCallback)
|
||||
, mType(aType)
|
||||
{
|
||||
@ -43,46 +41,21 @@ public:
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
class OutputEvent : public Runnable {
|
||||
public:
|
||||
OutputEvent(MediaRawData* aSample,
|
||||
MediaDataDecoderCallback* aCallback,
|
||||
BlankMediaDataCreator* aCreator)
|
||||
: mSample(aSample)
|
||||
, mCreator(aCreator)
|
||||
, mCallback(aCallback)
|
||||
{
|
||||
}
|
||||
NS_IMETHOD Run() override
|
||||
{
|
||||
RefPtr<MediaData> data =
|
||||
mCreator->Create(media::TimeUnit::FromMicroseconds(mSample->mTime),
|
||||
media::TimeUnit::FromMicroseconds(mSample->mDuration),
|
||||
mSample->mOffset);
|
||||
if (!data) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
mCallback->Output(data);
|
||||
return NS_OK;
|
||||
}
|
||||
private:
|
||||
RefPtr<MediaRawData> mSample;
|
||||
BlankMediaDataCreator* mCreator;
|
||||
MediaDataDecoderCallback* mCallback;
|
||||
};
|
||||
|
||||
nsresult Input(MediaRawData* aSample) override
|
||||
{
|
||||
// The MediaDataDecoder must delete the sample when we're finished
|
||||
// with it, so the OutputEvent stores it in an nsAutoPtr and deletes
|
||||
// it once it's run.
|
||||
RefPtr<nsIRunnable> r(new OutputEvent(aSample, mCallback, mCreator));
|
||||
mTaskQueue->Dispatch(r.forget());
|
||||
RefPtr<MediaData> data =
|
||||
mCreator->Create(media::TimeUnit::FromMicroseconds(aSample->mTime),
|
||||
media::TimeUnit::FromMicroseconds(aSample->mDuration),
|
||||
aSample->mOffset);
|
||||
if (!data) {
|
||||
mCallback->Error();
|
||||
} else {
|
||||
mCallback->Output(data);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult Flush() override {
|
||||
mTaskQueue->Flush();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -98,7 +71,6 @@ public:
|
||||
|
||||
private:
|
||||
nsAutoPtr<BlankMediaDataCreator> mCreator;
|
||||
RefPtr<FlushableTaskQueue> mTaskQueue;
|
||||
MediaDataDecoderCallback* mCallback;
|
||||
TrackInfo::TrackType mType;
|
||||
};
|
||||
@ -236,7 +208,6 @@ public:
|
||||
aConfig.mDisplay.width, aConfig.mDisplay.height, aImageContainer);
|
||||
RefPtr<MediaDataDecoder> decoder =
|
||||
new BlankMediaDataDecoder<BlankVideoDataCreator>(creator,
|
||||
aVideoTaskQueue,
|
||||
aCallback,
|
||||
TrackInfo::kVideoTrack);
|
||||
return decoder.forget();
|
||||
@ -253,7 +224,6 @@ public:
|
||||
|
||||
RefPtr<MediaDataDecoder> decoder =
|
||||
new BlankMediaDataDecoder<BlankAudioDataCreator>(creator,
|
||||
aAudioTaskQueue,
|
||||
aCallback,
|
||||
TrackInfo::kAudioTrack);
|
||||
return decoder.forget();
|
||||
|
Loading…
Reference in New Issue
Block a user