Bug 1404997 - P11. More constness fixes. r=pehrsons

MozReview-Commit-ID: 5qgO43V9R9P

--HG--
extra : rebase_source : 6f387e73486079737c066420a3e95f15c1c0ac16
This commit is contained in:
Jean-Yves Avenard 2017-12-05 00:07:52 +01:00
parent f702757959
commit bc93df2fbe
6 changed files with 43 additions and 47 deletions

View File

@ -335,18 +335,16 @@ protected:
ImageFormat format = aImage->GetFormat(); ImageFormat format = aImage->GetFormat();
if (format == ImageFormat::PLANAR_YCBCR) { if (format == ImageFormat::PLANAR_YCBCR) {
// Cast away constness b/c some of the accessors are non-const // Cast away constness b/c some of the accessors are non-const
PlanarYCbCrImage* yuv = const_cast<PlanarYCbCrImage*>( const PlanarYCbCrData* data =
static_cast<const PlanarYCbCrImage*>(aImage)); static_cast<const PlanarYCbCrImage*>(aImage)->GetData();
const PlanarYCbCrData* data = yuv->GetData();
if (data) { if (data) {
uint8_t* y = data->mYChannel; uint8_t* y = data->mYChannel;
uint8_t* cb = data->mCbChannel; uint8_t* cb = data->mCbChannel;
uint8_t* cr = data->mCrChannel; uint8_t* cr = data->mCrChannel;
int32_t yStride = data->mYStride; int32_t yStride = data->mYStride;
int32_t cbCrStride = data->mCbCrStride; int32_t cbCrStride = data->mCbCrStride;
uint32_t width = yuv->GetSize().width; uint32_t width = aImage->GetSize().width;
uint32_t height = yuv->GetSize().height; uint32_t height = aImage->GetSize().height;
rtc::Callback0<void> callback_unused; rtc::Callback0<void> callback_unused;
rtc::scoped_refptr<webrtc::WrappedI420Buffer> video_frame_buffer( rtc::scoped_refptr<webrtc::WrappedI420Buffer> video_frame_buffer(
@ -594,7 +592,7 @@ protected:
} }
RefPtr<AudioSessionConduit> mConduit; RefPtr<AudioSessionConduit> mConduit;
RefPtr<AutoTaskQueue> mTaskQueue; const RefPtr<AutoTaskQueue> mTaskQueue;
// Only accessed on mTaskQueue // Only accessed on mTaskQueue
UniquePtr<AudioPacketizer<int16_t, int16_t>> mPacketizer; UniquePtr<AudioPacketizer<int16_t, int16_t>> mPacketizer;
// A buffer to hold a single packet of audio. // A buffer to hold a single packet of audio.
@ -625,7 +623,6 @@ MediaPipeline::MediaPipeline(const std::string& aPc,
, mRtpBytesSent(0) , mRtpBytesSent(0)
, mRtpBytesReceived(0) , mRtpBytesReceived(0)
, mPc(aPc) , mPc(aPc)
, mDescription()
, mRtpParser(webrtc::RtpHeaderParser::Create()) , mRtpParser(webrtc::RtpHeaderParser::Create())
, mPacketDumper(new PacketDumper(mPc)) , mPacketDumper(new PacketDumper(mPc))
{ {
@ -989,7 +986,7 @@ MediaPipeline::UpdateRtcpMuxState(TransportInfo& aInfo)
} }
nsresult nsresult
MediaPipeline::SendPacket(TransportFlow* aFlow, const void* aData, int aLen) MediaPipeline::SendPacket(const TransportFlow* aFlow, const void* aData, int aLen)
{ {
ASSERT_ON_THREAD(mStsThread); ASSERT_ON_THREAD(mStsThread);
@ -1273,7 +1270,7 @@ MediaPipeline::RtcpPacketReceived(TransportLayer* aLayer,
} }
bool bool
MediaPipeline::IsRtp(const unsigned char* aData, size_t aLen) MediaPipeline::IsRtp(const unsigned char* aData, size_t aLen) const
{ {
if (aLen < 2) if (aLen < 2)
return false; return false;
@ -1523,8 +1520,14 @@ MediaPipelineTransmit::MediaPipelineTransmit(
aMainThread, aMainThread,
aStsThread, aStsThread,
aConduit) aConduit)
, mListener(new PipelineListener(aConduit))
, mIsVideo(aIsVideo) , mIsVideo(aIsVideo)
, mListener(new PipelineListener(aConduit))
, mFeeder(aIsVideo ? MakeAndAddRef<VideoFrameFeeder>(mListener)
: nullptr) // For video we send frames to an
// async VideoFrameConverter that
// calls back to a VideoFrameFeeder
// that feeds I420 frames to
// VideoConduit.
, mDomTrack(aDomTrack) , mDomTrack(aDomTrack)
, mTransmitting(false) , mTransmitting(false)
{ {
@ -1534,14 +1537,8 @@ MediaPipelineTransmit::MediaPipelineTransmit(
static_cast<AudioSessionConduit*>(aConduit.get())); static_cast<AudioSessionConduit*>(aConduit.get()));
mListener->SetAudioProxy(mAudioProcessing); mListener->SetAudioProxy(mAudioProcessing);
} else { // Video } else { // Video
// For video we send frames to an async VideoFrameConverter that calls
// back to a VideoFrameFeeder that feeds I420 frames to VideoConduit.
mFeeder = MakeAndAddRef<VideoFrameFeeder>(mListener);
mConverter = MakeAndAddRef<VideoFrameConverter>(); mConverter = MakeAndAddRef<VideoFrameConverter>();
mConverter->AddListener(mFeeder); mConverter->AddListener(mFeeder);
mListener->SetVideoFrameConverter(mConverter); mListener->SetVideoFrameConverter(mConverter);
} }
} }
@ -1650,7 +1647,7 @@ MediaPipelineTransmit::IsVideo() const
} }
void void
MediaPipelineTransmit::UpdateSinkIdentity_m(MediaStreamTrack* aTrack, MediaPipelineTransmit::UpdateSinkIdentity_m(const MediaStreamTrack* aTrack,
nsIPrincipal* aPrincipal, nsIPrincipal* aPrincipal,
const PeerIdentity* aSinkIdentity) const PeerIdentity* aSinkIdentity)
{ {
@ -2022,17 +2019,14 @@ MediaPipelineTransmit::PipelineListener::NewData(const MediaSegment& aMedia,
if (aMedia.GetType() == MediaSegment::AUDIO) { if (aMedia.GetType() == MediaSegment::AUDIO) {
MOZ_RELEASE_ASSERT(aRate > 0); MOZ_RELEASE_ASSERT(aRate > 0);
AudioSegment* audio = const AudioSegment* audio = static_cast<const AudioSegment*>(&aMedia);
const_cast<AudioSegment*>(static_cast<const AudioSegment*>(&aMedia)); for (AudioSegment::ConstChunkIterator iter(*audio); !iter.IsEnded();
for (AudioSegment::ChunkIterator iter(*audio); !iter.IsEnded();
iter.Next()) { iter.Next()) {
mAudioProcessing->QueueAudioChunk(aRate, *iter, mEnabled); mAudioProcessing->QueueAudioChunk(aRate, *iter, mEnabled);
} }
} else { } else {
VideoSegment* video = const VideoSegment* video = static_cast<const VideoSegment*>(&aMedia);
const_cast<VideoSegment*>(static_cast<const VideoSegment*>(&aMedia)); for (VideoSegment::ConstChunkIterator iter(*video); !iter.IsEnded();
VideoSegment::ChunkIterator iter(*video);
for (VideoSegment::ChunkIterator iter(*video); !iter.IsEnded();
iter.Next()) { iter.Next()) {
mConverter->QueueVideoChunk(*iter, !mEnabled); mConverter->QueueVideoChunk(*iter, !mEnabled);
} }
@ -2070,7 +2064,7 @@ public:
void TrackAdded(TrackTicks aTime); void TrackAdded(TrackTicks aTime);
private: private:
RefPtr<GenericReceiveListener> mListener; const RefPtr<GenericReceiveListener> mListener;
}; };
class GenericReceiveListener : public MediaStreamListener class GenericReceiveListener : public MediaStreamListener
@ -2170,7 +2164,7 @@ public:
mListener->SetPrincipalHandle_msg(mPrincipalHandle); mListener->SetPrincipalHandle_msg(mPrincipalHandle);
} }
RefPtr<GenericReceiveListener> mListener; const RefPtr<GenericReceiveListener> mListener;
PrincipalHandle mPrincipalHandle; PrincipalHandle mPrincipalHandle;
}; };

View File

@ -155,7 +155,7 @@ public:
private: private:
static const double constexpr EXPIRY_TIME_MILLISECONDS = 10 * 1000; static const double constexpr EXPIRY_TIME_MILLISECONDS = 10 * 1000;
uint32_t mCsrc; const uint32_t mCsrc;
DOMHighResTimeStamp mTimestamp; DOMHighResTimeStamp mTimestamp;
}; };
@ -203,7 +203,7 @@ public:
// Creates a cycle, which we break with Detach // Creates a cycle, which we break with Detach
RefPtr<MediaPipeline> mPipeline; RefPtr<MediaPipeline> mPipeline;
nsCOMPtr<nsIEventTarget> mStsThread; const nsCOMPtr<nsIEventTarget> mStsThread;
}; };
protected: protected:
@ -250,10 +250,12 @@ protected:
virtual void OnRtpPacketReceived() {}; virtual void OnRtpPacketReceived() {};
void IncrementRtcpPacketsReceived(); void IncrementRtcpPacketsReceived();
virtual nsresult SendPacket(TransportFlow* aFlow, const void* aData, int aLen); virtual nsresult SendPacket(const TransportFlow* aFlow,
const void* aData,
int aLen);
// Process slots on transports // Process slots on transports
void StateChange(TransportFlow* flow, TransportLayer::State); void StateChange(TransportFlow* aFlow, TransportLayer::State);
void RtpPacketReceived(TransportLayer* aLayer, void RtpPacketReceived(TransportLayer* aLayer,
const unsigned char* aData, const unsigned char* aData,
size_t aLen); size_t aLen);
@ -264,7 +266,7 @@ protected:
const unsigned char* aData, const unsigned char* aData,
size_t aLen); size_t aLen);
DirectionType mDirection; const DirectionType mDirection;
size_t mLevel; size_t mLevel;
RefPtr<MediaSessionConduit> mConduit; // Our conduit. Written on the main RefPtr<MediaSessionConduit> mConduit; // Our conduit. Written on the main
// thread. Read on STS thread. // thread. Read on STS thread.
@ -275,8 +277,8 @@ protected:
// Pointers to the threads we need. Initialized at creation // Pointers to the threads we need. Initialized at creation
// and used all over the place. // and used all over the place.
nsCOMPtr<nsIEventTarget> mMainThread; const nsCOMPtr<nsIEventTarget> mMainThread;
nsCOMPtr<nsIEventTarget> mStsThread; const nsCOMPtr<nsIEventTarget> mStsThread;
// Created in c'tor. Referenced by the conduit. // Created in c'tor. Referenced by the conduit.
RefPtr<PipelineTransport> mTransport; RefPtr<PipelineTransport> mTransport;
@ -294,12 +296,12 @@ protected:
std::map<uint32_t, RtpCSRCStats> mCsrcStats; std::map<uint32_t, RtpCSRCStats> mCsrcStats;
// Written in c'tor. Read on STS thread. // Written in c'tor. Read on STS thread.
std::string mPc; const std::string mPc;
std::string mDescription; std::string mDescription;
// Written in c'tor, all following accesses are on the STS thread. // Written in c'tor, all following accesses are on the STS thread.
nsAutoPtr<MediaPipelineFilter> mFilter; nsAutoPtr<MediaPipelineFilter> mFilter;
nsAutoPtr<webrtc::RtpHeaderParser> mRtpParser; const nsAutoPtr<webrtc::RtpHeaderParser> mRtpParser;
nsAutoPtr<PacketDumper> mPacketDumper; nsAutoPtr<PacketDumper> mPacketDumper;
@ -307,7 +309,7 @@ private:
// Gets the current time as a DOMHighResTimeStamp // Gets the current time as a DOMHighResTimeStamp
static DOMHighResTimeStamp GetNow(); static DOMHighResTimeStamp GetNow();
bool IsRtp(const unsigned char* aData, size_t aLen); bool IsRtp(const unsigned char* aData, size_t aLen) const;
// Must be called on the STS thread. Must be called after DetachMedia(). // Must be called on the STS thread. Must be called after DetachMedia().
void DetachTransport_s(); void DetachTransport_s();
}; };
@ -325,7 +327,7 @@ public:
NS_IMETHOD Run() override { return NS_OK; } NS_IMETHOD Run() override { return NS_OK; }
private: private:
RefPtr<MediaSessionConduit> mConduit; const RefPtr<MediaSessionConduit> mConduit;
}; };
// A specialization of pipeline for reading from an input device // A specialization of pipeline for reading from an input device
@ -350,7 +352,7 @@ public:
// When the principal of the domtrack changes, it calls through to here // When the principal of the domtrack changes, it calls through to here
// so that we can determine whether to enable track transmission. // so that we can determine whether to enable track transmission.
// `track` has to be null or equal `mDomTrack` for us to apply the update. // `track` has to be null or equal `mDomTrack` for us to apply the update.
virtual void UpdateSinkIdentity_m(dom::MediaStreamTrack* aTrack, virtual void UpdateSinkIdentity_m(const dom::MediaStreamTrack* aTrack,
nsIPrincipal* aPrincipal, nsIPrincipal* aPrincipal,
const PeerIdentity* aSinkIdentity); const PeerIdentity* aSinkIdentity);
@ -376,11 +378,11 @@ protected:
void SetDescription(); void SetDescription();
private: private:
RefPtr<PipelineListener> mListener; const bool mIsVideo;
const RefPtr<PipelineListener> mListener;
const RefPtr<VideoFrameFeeder> mFeeder;
RefPtr<AudioProxyThread> mAudioProcessing; RefPtr<AudioProxyThread> mAudioProcessing;
RefPtr<VideoFrameFeeder> mFeeder;
RefPtr<VideoFrameConverter> mConverter; RefPtr<VideoFrameConverter> mConverter;
bool mIsVideo;
RefPtr<dom::MediaStreamTrack> mDomTrack; RefPtr<dom::MediaStreamTrack> mDomTrack;
bool mTransmitting; bool mTransmitting;
}; };
@ -464,7 +466,7 @@ private:
// Separate class to allow ref counting // Separate class to allow ref counting
class PipelineListener; class PipelineListener;
RefPtr<PipelineRenderer> mRenderer; const RefPtr<PipelineRenderer> mRenderer;
RefPtr<PipelineListener> mListener; RefPtr<PipelineListener> mListener;
}; };

View File

@ -1503,7 +1503,7 @@ PeerConnectionMedia::UpdateRemoteStreamPrincipals_m(nsIPrincipal* aPrincipal)
} }
void void
PeerConnectionMedia::UpdateSinkIdentity_m(MediaStreamTrack* aTrack, PeerConnectionMedia::UpdateSinkIdentity_m(const MediaStreamTrack* aTrack,
nsIPrincipal* aPrincipal, nsIPrincipal* aPrincipal,
const PeerIdentity* aSinkIdentity) const PeerIdentity* aSinkIdentity)
{ {

View File

@ -140,7 +140,7 @@ class PeerConnectionMedia : public sigslot::has_slots<> {
// black/silence. Once the peer is identified, re-enable those streams. // black/silence. Once the peer is identified, re-enable those streams.
// aTrack will be set if this update came from a principal change on aTrack. // aTrack will be set if this update came from a principal change on aTrack.
// TODO: Move to PeerConnectionImpl // TODO: Move to PeerConnectionImpl
void UpdateSinkIdentity_m(dom::MediaStreamTrack* aTrack, void UpdateSinkIdentity_m(const dom::MediaStreamTrack* aTrack,
nsIPrincipal* aPrincipal, nsIPrincipal* aPrincipal,
const PeerIdentity* aSinkIdentity); const PeerIdentity* aSinkIdentity);
// this determines if any track is peerIdentity constrained // this determines if any track is peerIdentity constrained

View File

@ -120,7 +120,7 @@ TransceiverImpl::InitVideo()
} }
nsresult nsresult
TransceiverImpl::UpdateSinkIdentity(dom::MediaStreamTrack* aTrack, TransceiverImpl::UpdateSinkIdentity(const dom::MediaStreamTrack* aTrack,
nsIPrincipal* aPrincipal, nsIPrincipal* aPrincipal,
const PeerIdentity* aSinkIdentity) const PeerIdentity* aSinkIdentity)
{ {

View File

@ -65,7 +65,7 @@ public:
nsresult UpdateSendTrack(dom::MediaStreamTrack* aSendTrack); nsresult UpdateSendTrack(dom::MediaStreamTrack* aSendTrack);
nsresult UpdateSinkIdentity(dom::MediaStreamTrack* aTrack, nsresult UpdateSinkIdentity(const dom::MediaStreamTrack* aTrack,
nsIPrincipal* aPrincipal, nsIPrincipal* aPrincipal,
const PeerIdentity* aSinkIdentity); const PeerIdentity* aSinkIdentity);