mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-18 15:55:36 +00:00
6ea4ed1c80
This converts `nsAutoPtr` usage in dom/media to `UniquePtr`. Beyond just a search and replace we also needed to update assignment and access of the `UniquePtr`s. This falls into a few categories: - Assignment from a newly constructed object switches to `MakeUnique` - Assignment from a raw ptr switches to `UniquePtr::reset` - Handing out a raw ptr now requires `UniquePtr::get` - Uses `UniquePtr::release` rather than `nsAutoPtr::forget` - A few spots are updated to return a `UniquePtr` rather than a raw ptr Differential Revision: https://phabricator.services.mozilla.com/D60084 --HG-- extra : moz-landing-system : lando
59 lines
2.0 KiB
C++
59 lines
2.0 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-*/
|
|
/* 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 MOZILLA_FORWARDEDINPUTTRACK_H_
|
|
#define MOZILLA_FORWARDEDINPUTTRACK_H_
|
|
|
|
#include "MediaTrackGraph.h"
|
|
#include <algorithm>
|
|
|
|
namespace mozilla {
|
|
|
|
/**
|
|
* See MediaTrackGraph::CreateForwardedInputTrack.
|
|
*/
|
|
class ForwardedInputTrack : public ProcessedMediaTrack {
|
|
public:
|
|
ForwardedInputTrack(TrackRate aSampleRate, MediaSegment::Type aType);
|
|
|
|
virtual ForwardedInputTrack* AsForwardedInputTrack() override { return this; }
|
|
friend class DOMMediaStream;
|
|
|
|
void AddInput(MediaInputPort* aPort) override;
|
|
void RemoveInput(MediaInputPort* aPort) override;
|
|
void ProcessInput(GraphTime aFrom, GraphTime aTo, uint32_t aFlags) override;
|
|
|
|
void SetEnabledImpl(DisabledTrackMode aMode) override;
|
|
|
|
friend class MediaTrackGraphImpl;
|
|
|
|
protected:
|
|
// Set up this track from a specific input.
|
|
void SetInput(MediaInputPort* aPort);
|
|
|
|
// MediaSegment-agnostic ProcessInput.
|
|
void ProcessInputImpl(MediaTrack* aSource, MediaSegment* aSegment,
|
|
GraphTime aFrom, GraphTime aTo, uint32_t aFlags);
|
|
|
|
void AddDirectListenerImpl(
|
|
already_AddRefed<DirectMediaTrackListener> aListener) override;
|
|
void RemoveDirectListenerImpl(DirectMediaTrackListener* aListener) override;
|
|
void RemoveAllDirectListenersImpl() override;
|
|
|
|
// These are direct track listeners that have been added to this
|
|
// ForwardedInputTrack-track. While an input is set, these are forwarded to
|
|
// the input track. We will update these when this track's disabled status
|
|
// changes.
|
|
nsTArray<RefPtr<DirectMediaTrackListener>> mOwnedDirectListeners;
|
|
|
|
// Set if an input has been added, nullptr otherwise. Adding more than one
|
|
// input is an error.
|
|
MediaInputPort* mInputPort = nullptr;
|
|
};
|
|
|
|
} // namespace mozilla
|
|
|
|
#endif /* MOZILLA_FORWARDEDINPUTTRACK_H_ */
|