diff --git a/dom/media/ChannelMediaDecoder.cpp b/dom/media/ChannelMediaDecoder.cpp index 9a8a4aff8990..6d2e2831fed0 100644 --- a/dom/media/ChannelMediaDecoder.cpp +++ b/dom/media/ChannelMediaDecoder.cpp @@ -201,6 +201,7 @@ MediaDecoderStateMachine* ChannelMediaDecoder::CreateStateMachine() init.mCrashHelper = GetOwner()->CreateGMPCrashHelper(); init.mFrameStats = mFrameStats; init.mResource = mResource; + init.mMediaDecoderOwnerID = mOwner; mReader = DecoderTraits::CreateReader(ContainerType(), init); return new MediaDecoderStateMachine(this, mReader); } diff --git a/dom/media/MediaFormatReader.cpp b/dom/media/MediaFormatReader.cpp index 40875d0e59e1..ed0eb82396bb 100644 --- a/dom/media/MediaFormatReader.cpp +++ b/dom/media/MediaFormatReader.cpp @@ -1114,6 +1114,7 @@ MediaFormatReader::MediaFormatReader(MediaFormatReaderInit& aInit, TimeIntervals(), "MediaFormatReader::mBuffered (Canonical)") , mFrameStats(aInit.mFrameStats) + , mMediaDecoderOwnerID(aInit.mMediaDecoderOwnerID) { MOZ_ASSERT(aDemuxer); MOZ_COUNT_CTOR(MediaFormatReader); diff --git a/dom/media/MediaFormatReader.h b/dom/media/MediaFormatReader.h index 510c231607ba..1e3f635958c5 100644 --- a/dom/media/MediaFormatReader.h +++ b/dom/media/MediaFormatReader.h @@ -73,6 +73,8 @@ struct MetadataHolder UniquePtr mTags; }; +typedef void* MediaDecoderOwnerID; + struct MOZ_STACK_CLASS MediaFormatReaderInit { MediaResource* mResource = nullptr; @@ -80,6 +82,8 @@ struct MOZ_STACK_CLASS MediaFormatReaderInit FrameStatistics* mFrameStats = nullptr; already_AddRefed mKnowsCompositor; already_AddRefed mCrashHelper; + // Used in bug 1393399 for temporary telemetry. + MediaDecoderOwnerID mMediaDecoderOwnerID = nullptr; }; class MediaFormatReader final @@ -762,6 +766,9 @@ private: MediaEventProducer mOnDecodeWarning; RefPtr mFrameStats; + + // Used in bug 1393399 for telemetry. + const MediaDecoderOwnerID mMediaDecoderOwnerID; }; } // namespace mozilla diff --git a/dom/media/hls/HLSDecoder.cpp b/dom/media/hls/HLSDecoder.cpp index 6d5bc5ca973c..0fc67db0e262 100644 --- a/dom/media/hls/HLSDecoder.cpp +++ b/dom/media/hls/HLSDecoder.cpp @@ -93,6 +93,7 @@ HLSDecoder::CreateStateMachine() init.mKnowsCompositor = GetCompositor(); init.mCrashHelper = GetOwner()->CreateGMPCrashHelper(); init.mFrameStats = mFrameStats; + init.mMediaDecoderOwnerID = mOwner; mReader = new MediaFormatReader(init, new HLSDemuxer(mHLSResourceWrapper->GetPlayerId())); diff --git a/dom/media/mediasource/MediaSourceDecoder.cpp b/dom/media/mediasource/MediaSourceDecoder.cpp index af0aa4f5f39e..f6849032937f 100644 --- a/dom/media/mediasource/MediaSourceDecoder.cpp +++ b/dom/media/mediasource/MediaSourceDecoder.cpp @@ -42,6 +42,7 @@ MediaSourceDecoder::CreateStateMachine() init.mKnowsCompositor = GetCompositor(); init.mCrashHelper = GetOwner()->CreateGMPCrashHelper(); init.mFrameStats = mFrameStats; + init.mMediaDecoderOwnerID = mOwner; mReader = new MediaFormatReader(init, mDemuxer); return new MediaDecoderStateMachine(this, mReader); }