зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1152298 - Implement AutoDriver for CanvasCaptureMediaStream. r=mt
--HG-- extra : transplant_source : %FF%5BC%94%8AD%97%E6zor%24%3A%05C%60%AB%94-%EB
This commit is contained in:
Родитель
461b9f6576
Коммит
c5a6c8081a
|
@ -174,6 +174,30 @@ private:
|
|||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
class AutoDriver : public OutputStreamDriver
|
||||
{
|
||||
public:
|
||||
explicit AutoDriver(SourceMediaStream* aSourceStream,
|
||||
const TrackID& aTrackId)
|
||||
: OutputStreamDriver(aSourceStream, aTrackId) {}
|
||||
|
||||
void NewFrame(already_AddRefed<Image> aImage) override
|
||||
{
|
||||
// Don't reset `mFrameCaptureRequested` since AutoDriver shall always have
|
||||
// `mFrameCaptureRequested` set to true.
|
||||
// This also means we should accept every frame as NewFrame is called only
|
||||
// after something changed.
|
||||
|
||||
nsRefPtr<Image> image = aImage;
|
||||
SetImage(image.forget());
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual ~AutoDriver() {}
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_INHERITED(CanvasCaptureMediaStream, DOMMediaStream,
|
||||
mCanvas)
|
||||
|
||||
|
@ -216,9 +240,8 @@ CanvasCaptureMediaStream::Init(const dom::Optional<double>& aFPS,
|
|||
const TrackID& aTrackId)
|
||||
{
|
||||
if (!aFPS.WasPassed()) {
|
||||
// TODO (Bug 1152298): Implement a real AutoDriver.
|
||||
// We use a 30FPS TimerDriver for now.
|
||||
mOutputStreamDriver = new TimerDriver(GetStream()->AsSourceStream(), 30.0, aTrackId);
|
||||
mOutputStreamDriver =
|
||||
new AutoDriver(GetStream()->AsSourceStream(), aTrackId);
|
||||
} else if (aFPS.Value() < 0) {
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
} else {
|
||||
|
|
Загрузка…
Ссылка в новой задаче