Backed out changeset ab31c60d46d7 (bug 1319992)

This commit is contained in:
Carsten "Tomcat" Book 2016-12-16 12:41:08 +01:00
Родитель 96bde6ffe2
Коммит ba4d31d333
13 изменённых файлов: 24 добавлений и 18 удалений

Просмотреть файл

@ -151,8 +151,10 @@ public:
// ReadUpdatedMetadata will always be called once ReadMetadata has succeeded.
virtual void ReadUpdatedMetadata(MediaInfo* aInfo) {}
// Moves the decode head to aTime microseconds.
virtual RefPtr<SeekPromise> Seek(const SeekTarget& aTarget) = 0;
// Moves the decode head to aTime microseconds. aEndTime denotes the end
// time of the media in usecs. This is only needed for OggReader, and should
// probably be removed somehow.
virtual RefPtr<SeekPromise> Seek(const SeekTarget& aTarget, int64_t aEndTime) = 0;
virtual void SetCDMProxy(CDMProxy* aProxy) {}

Просмотреть файл

@ -121,15 +121,16 @@ MediaDecoderReaderWrapper::IsWaitingVideoData() const
}
RefPtr<MediaDecoderReader::SeekPromise>
MediaDecoderReaderWrapper::Seek(const SeekTarget& aTarget)
MediaDecoderReaderWrapper::Seek(const SeekTarget& aTarget,
const media::TimeUnit& aEndTime)
{
MOZ_ASSERT(mOwnerThread->IsCurrentThreadIn());
SeekTarget adjustedTarget = aTarget;
adjustedTarget.SetTime(adjustedTarget.GetTime() + StartTime());
return InvokeAsync<SeekTarget&&>(
return InvokeAsync<SeekTarget&&, int64_t>(
mReader->OwnerThread(), mReader.get(), __func__,
&MediaDecoderReader::Seek,
Move(adjustedTarget));
Move(adjustedTarget), aEndTime.ToMicroseconds());
}
void

Просмотреть файл

@ -67,7 +67,8 @@ public:
bool IsWaitingAudioData() const;
bool IsWaitingVideoData() const;
RefPtr<SeekPromise> Seek(const SeekTarget& aTarget);
RefPtr<SeekPromise> Seek(const SeekTarget& aTarget,
const media::TimeUnit& aEndTime);
RefPtr<ShutdownPromise> Shutdown();
void ReleaseResources();

Просмотреть файл

@ -1055,7 +1055,7 @@ private:
void DoSeek() override
{
// Request the demuxer to perform seek.
mSeekRequest.Begin(Reader()->Seek(mSeekJob.mTarget)
mSeekRequest.Begin(Reader()->Seek(mSeekJob.mTarget, mMaster->Duration())
->Then(OwnerThread(), __func__,
[this] (media::TimeUnit aUnit) {
OnSeekResolved(aUnit);
@ -1350,7 +1350,7 @@ private:
{
mSeekTask = new NextFrameSeekTask(
mMaster->mDecoderID, OwnerThread(), Reader(), mSeekJob.mTarget,
Info(), mMaster->Duration(), mMaster->GetMediaTime(),
Info(), mMaster->Duration(),mMaster->GetMediaTime(),
AudioQueue(), VideoQueue());
}
@ -1361,7 +1361,7 @@ private:
void DoSeek() override
{
mSeekTaskRequest.Begin(mSeekTask->Seek()
mSeekTaskRequest.Begin(mSeekTask->Seek(mMaster->Duration())
->Then(OwnerThread(), __func__,
[this] (const SeekTaskResolveValue& aValue) {
OnSeekTaskResolved(aValue);

Просмотреть файл

@ -2277,7 +2277,7 @@ MediaFormatReader::OnVideoSkipFailed(MediaTrackDemuxer::SkipFailureHolder aFailu
}
RefPtr<MediaDecoderReader::SeekPromise>
MediaFormatReader::Seek(const SeekTarget& aTarget)
MediaFormatReader::Seek(const SeekTarget& aTarget, int64_t aUnused)
{
MOZ_ASSERT(OnTaskQueue());

Просмотреть файл

@ -46,7 +46,8 @@ public:
void ReadUpdatedMetadata(MediaInfo* aInfo) override;
RefPtr<SeekPromise> Seek(const SeekTarget& aTarget) override;
RefPtr<SeekPromise>
Seek(const SeekTarget& aTarget, int64_t aUnused) override;
protected:
void NotifyDataArrived() override;

Просмотреть файл

@ -231,7 +231,7 @@ DiscardFrames(MediaQueue<MediaData>& aQueue, const Function& aCompare)
}
RefPtr<NextFrameSeekTask::SeekTaskPromise>
NextFrameSeekTask::Seek()
NextFrameSeekTask::Seek(const media::TimeUnit&)
{
AssertOwnerThread();

Просмотреть файл

@ -36,7 +36,7 @@ public:
void Discard() override;
RefPtr<SeekTaskPromise> Seek() override;
RefPtr<SeekTaskPromise> Seek(const media::TimeUnit& aDuration) override;
int64_t CalculateNewCurrentTime() const override;

Просмотреть файл

@ -56,7 +56,7 @@ public:
virtual void Discard() = 0;
virtual RefPtr<SeekTaskPromise> Seek() = 0;
virtual RefPtr<SeekTaskPromise> Seek(const media::TimeUnit& aDuration) = 0;
virtual int64_t CalculateNewCurrentTime() const = 0;

Просмотреть файл

@ -313,7 +313,7 @@ bool AndroidMediaReader::DecodeAudioData()
}
RefPtr<MediaDecoderReader::SeekPromise>
AndroidMediaReader::Seek(const SeekTarget& aTarget)
AndroidMediaReader::Seek(const SeekTarget& aTarget, int64_t aEndTime)
{
MOZ_ASSERT(OnTaskQueue());

Просмотреть файл

@ -48,7 +48,7 @@ public:
bool DecodeVideoFrame(bool &aKeyframeSkip, int64_t aTimeThreshold) override;
nsresult ReadMetadata(MediaInfo* aInfo, MetadataTags** aTags) override;
RefPtr<SeekPromise> Seek(const SeekTarget& aTarget) override;
RefPtr<SeekPromise> Seek(const SeekTarget& aTarget, int64_t aEndTime) override;
RefPtr<ShutdownPromise> Shutdown() override;

Просмотреть файл

@ -320,7 +320,7 @@ DirectShowReader::DecodeVideoFrame(bool &aKeyframeSkip,
}
RefPtr<MediaDecoderReader::SeekPromise>
DirectShowReader::Seek(const SeekTarget& aTarget)
DirectShowReader::Seek(const SeekTarget& aTarget, int64_t aEndTime)
{
nsresult res = SeekInternal(aTarget.GetTime().ToMicroseconds());
if (NS_FAILED(res)) {

Просмотреть файл

@ -57,7 +57,8 @@ public:
nsresult ReadMetadata(MediaInfo* aInfo,
MetadataTags** aTags) override;
RefPtr<SeekPromise> Seek(const SeekTarget& aTarget) override;
RefPtr<SeekPromise>
Seek(const SeekTarget& aTarget, int64_t aEndTime) override;
static const GUID CLSID_MPEG_LAYER_3_DECODER_FILTER;