mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-15 14:25:52 +00:00
Bug 1426486 - P2. Make mTrackId a base member. r=bwc
Also remove unused code. mTrackId / mTrackIdexternal were protected/private members and only ever written. MozReview-Commit-ID: C3wMhxSCA2H --HG-- extra : rebase_source : 18845e480e8e2d741ef1172b212373888a9c1fe8
This commit is contained in:
parent
2bd009f7e0
commit
212565b86e
@ -1327,9 +1327,6 @@ class MediaPipelineTransmit::PipelineListener : public MediaStreamVideoSink
|
||||
public:
|
||||
explicit PipelineListener(const RefPtr<MediaSessionConduit>& aConduit)
|
||||
: mConduit(aConduit)
|
||||
, mTrackId(TRACK_INVALID)
|
||||
, mMutex("MediaPipelineTransmit::PipelineListener")
|
||||
, mTrackIdexternal(TRACK_INVALID)
|
||||
, mActive(false)
|
||||
, mEnabled(false)
|
||||
, mDirectConnect(false)
|
||||
@ -1345,12 +1342,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
// Dispatches setting the internal TrackID to TRACK_INVALID to the media
|
||||
// graph thread to keep it in sync with other MediaStreamGraph operations
|
||||
// like RemoveListener() and AddListener(). The TrackID will be updated on
|
||||
// the next NewData() callback.
|
||||
void UnsetTrackId(MediaStreamGraphImpl* aGraph);
|
||||
|
||||
void SetActive(bool aActive) { mActive = aActive; }
|
||||
void SetEnabled(bool aEnabled) { mEnabled = aEnabled; }
|
||||
|
||||
@ -1407,25 +1398,12 @@ public:
|
||||
void ClearFrames() override {}
|
||||
|
||||
private:
|
||||
void UnsetTrackIdImpl()
|
||||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
mTrackId = mTrackIdexternal = TRACK_INVALID;
|
||||
}
|
||||
|
||||
void NewData(const MediaSegment& aMedia, TrackRate aRate = 0);
|
||||
|
||||
RefPtr<MediaSessionConduit> mConduit;
|
||||
RefPtr<AudioProxyThread> mAudioProcessing;
|
||||
RefPtr<VideoFrameConverter> mConverter;
|
||||
|
||||
// May be TRACK_INVALID until we see data from the track
|
||||
TrackID mTrackId; // this is the current TrackID this listener is attached to
|
||||
Mutex mMutex;
|
||||
// protected by mMutex
|
||||
// May be TRACK_INVALID until we see data from the track
|
||||
TrackID mTrackIdexternal; // this is queried from other threads
|
||||
|
||||
// active is true if there is a transport to send on
|
||||
mozilla::Atomic<bool> mActive;
|
||||
// enabled is true if the media access control permits sending
|
||||
@ -1446,8 +1424,8 @@ class MediaPipelineTransmit::VideoFrameFeeder : public VideoConverterListener
|
||||
{
|
||||
public:
|
||||
explicit VideoFrameFeeder(const RefPtr<PipelineListener>& aListener)
|
||||
: mListener(aListener)
|
||||
, mMutex("VideoFrameFeeder")
|
||||
: mMutex("VideoFrameFeeder")
|
||||
, mListener(aListener)
|
||||
{
|
||||
MOZ_COUNT_CTOR(VideoFrameFeeder);
|
||||
}
|
||||
@ -1494,8 +1472,8 @@ public:
|
||||
protected:
|
||||
virtual ~VideoFrameFeeder() { MOZ_COUNT_DTOR(VideoFrameFeeder); }
|
||||
|
||||
Mutex mMutex; // Protects the member below.
|
||||
RefPtr<PipelineListener> mListener;
|
||||
Mutex mMutex;
|
||||
};
|
||||
|
||||
MediaPipelineTransmit::MediaPipelineTransmit(
|
||||
@ -1711,11 +1689,6 @@ MediaPipelineTransmit::ReplaceTrack(RefPtr<MediaStreamTrack>& aDomTrack)
|
||||
mDomTrack = aDomTrack;
|
||||
SetDescription();
|
||||
|
||||
if (oldTrack) {
|
||||
// Unsets the track id after RemoveListener() takes effect.
|
||||
mListener->UnsetTrackId(oldTrack->GraphImpl());
|
||||
}
|
||||
|
||||
if (wasTransmitting) {
|
||||
Start();
|
||||
}
|
||||
@ -1892,23 +1865,6 @@ MediaPipeline::PipelineTransport::SendRtcpPacket(const uint8_t* aData,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
MediaPipelineTransmit::PipelineListener::UnsetTrackId(
|
||||
MediaStreamGraphImpl* aGraph)
|
||||
{
|
||||
class Message : public ControlMessage
|
||||
{
|
||||
public:
|
||||
explicit Message(PipelineListener* listener)
|
||||
: ControlMessage(nullptr)
|
||||
, mListener(listener)
|
||||
{
|
||||
}
|
||||
virtual void Run() override { mListener->UnsetTrackIdImpl(); }
|
||||
RefPtr<PipelineListener> mListener;
|
||||
};
|
||||
aGraph->AppendMessage(MakeUnique<Message>(this));
|
||||
}
|
||||
// Called if we're attached with AddDirectListener()
|
||||
void
|
||||
MediaPipelineTransmit::PipelineListener::NotifyRealtimeTrackData(
|
||||
@ -2035,6 +1991,7 @@ class GenericReceiveListener : public MediaStreamListener
|
||||
public:
|
||||
explicit GenericReceiveListener(dom::MediaStreamTrack* aTrack)
|
||||
: mTrack(aTrack)
|
||||
, mTrackId(aTrack->GetInputTrackId())
|
||||
, mSource(mTrack->GetInputStream()->AsSourceStream())
|
||||
, mPlayedTicks(0)
|
||||
, mPrincipalHandle(PRINCIPAL_HANDLE_NONE)
|
||||
@ -2093,18 +2050,19 @@ public:
|
||||
class Message : public ControlMessage
|
||||
{
|
||||
public:
|
||||
explicit Message(dom::MediaStreamTrack* aTrack)
|
||||
: ControlMessage(aTrack->GetInputStream())
|
||||
, mTrackId(aTrack->GetInputTrackId())
|
||||
explicit Message(SourceMediaStream* aStream, TrackID aTrackId)
|
||||
: ControlMessage(aStream)
|
||||
, mTrackId(aTrackId)
|
||||
{
|
||||
}
|
||||
|
||||
void Run() override { mStream->AsSourceStream()->EndTrack(mTrackId); }
|
||||
|
||||
|
||||
const TrackID mTrackId;
|
||||
};
|
||||
|
||||
mTrack->GraphImpl()->AppendMessage(MakeUnique<Message>(mTrack));
|
||||
mTrack->GraphImpl()->AppendMessage(MakeUnique<Message>(mSource, mTrackId));
|
||||
// This breaks the cycle with the SourceMediaStream
|
||||
mSource->RemoveListener(this);
|
||||
}
|
||||
@ -2144,6 +2102,7 @@ public:
|
||||
|
||||
protected:
|
||||
RefPtr<dom::MediaStreamTrack> mTrack;
|
||||
const TrackID mTrackId;
|
||||
const RefPtr<SourceMediaStream> mSource;
|
||||
TrackTicks mPlayedTicks;
|
||||
PrincipalHandle mPrincipalHandle;
|
||||
@ -2173,7 +2132,6 @@ public:
|
||||
const RefPtr<MediaSessionConduit>& aConduit)
|
||||
: GenericReceiveListener(aTrack)
|
||||
, mConduit(aConduit)
|
||||
, mTrackId(mTrack->GetInputTrackId())
|
||||
// AudioSession conduit only supports 16, 32, 44.1 and 48kHz
|
||||
// This is an artificial limitation, it would however require more changes
|
||||
// to support any rates.
|
||||
@ -2312,7 +2270,6 @@ private:
|
||||
}
|
||||
|
||||
RefPtr<MediaSessionConduit> mConduit;
|
||||
const TrackID mTrackId;
|
||||
const TrackRate mRate;
|
||||
const RefPtr<AutoTaskQueue> mTaskQueue;
|
||||
// Graph's current sampling rate
|
||||
|
Loading…
Reference in New Issue
Block a user