mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 19:25:43 +00:00
526fdd85f6
Implemented by short-circuiting calls to RequestVideoData in MDSM so no frames are decoded. Resuming playback when video moves to foreground by using the SeekTask/SeekJob/Seek in MDSM with result of GetMediaTime(). Special consideration is made to only seek the video part of Seek() to remove an audible glitch in the audio playback when the video becomes visible again. MozReview-Commit-ID: 7YFDTanslXu
39 lines
874 B
C++
39 lines
874 B
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef SEEK_JOB_H
|
|
#define SEEK_JOB_H
|
|
|
|
#include "mozilla/MozPromise.h"
|
|
#include "MediaDecoder.h"
|
|
#include "MediaDecoderReader.h"
|
|
#include "SeekTarget.h"
|
|
|
|
namespace mozilla {
|
|
|
|
struct SeekJob {
|
|
SeekJob();
|
|
|
|
SeekJob(SeekJob&& aOther);
|
|
|
|
SeekJob& operator=(SeekJob&& aOther);
|
|
|
|
bool Exists() const;
|
|
|
|
void Resolve(bool aAtEnd, const char* aCallSite);
|
|
|
|
void RejectIfExists(const char* aCallSite);
|
|
|
|
~SeekJob();
|
|
|
|
SeekTarget mTarget;
|
|
MozPromiseHolder<MediaDecoder::SeekPromise> mPromise;
|
|
};
|
|
|
|
} // namespace mozilla
|
|
|
|
#endif /* SEEK_JOB_H */
|