Copy as Markdown

Other Tools

/* THIS FILE IS AUTOGENERATED FROM MediaDebugInfo.webidl BY Codegen.py - DO NOT EDIT */
#ifndef DOM_MEDIADEBUGINFOBINDING_H_
#define DOM_MEDIADEBUGINFOBINDING_H_
#include "js/CallAndConstruct.h"
#include "js/RootingAPI.h"
#include "js/TypeDecls.h"
#include "mozilla/dom/BindingDeclarations.h"
#include "mozilla/dom/Nullable.h"
namespace mozilla {
namespace dom {
struct AudioSinkDebugInfo;
struct AudioSinkDebugInfoAtoms;
struct AudioSinkWrapperDebugInfo;
struct AudioSinkWrapperDebugInfoAtoms;
struct BufferRange;
struct BufferRangeAtoms;
struct DecodedStreamDataDebugInfo;
struct DecodedStreamDataDebugInfoAtoms;
struct DecodedStreamDebugInfo;
struct DecodedStreamDebugInfoAtoms;
struct EMEDebugInfo;
struct EMEDebugInfoAtoms;
struct HTMLMediaElementDebugInfoAtoms;
struct MediaCacheStreamDebugInfo;
struct MediaCacheStreamDebugInfoAtoms;
struct MediaDecoderDebugInfo;
struct MediaDecoderDebugInfoAtoms;
struct MediaDecoderStateMachineDebugInfo;
struct MediaDecoderStateMachineDebugInfoAtoms;
struct MediaDecoderStateMachineDecodingStateDebugInfo;
struct MediaDecoderStateMachineDecodingStateDebugInfoAtoms;
struct MediaFormatReaderDebugInfo;
struct MediaFormatReaderDebugInfoAtoms;
struct MediaFrameStats;
struct MediaFrameStatsAtoms;
struct MediaResourceDebugInfo;
struct MediaResourceDebugInfoAtoms;
struct MediaSinkDebugInfo;
struct MediaSinkDebugInfoAtoms;
struct MediaSourceDecoderDebugInfoAtoms;
struct MediaSourceDemuxerDebugInfo;
struct MediaSourceDemuxerDebugInfoAtoms;
struct MediaStateDebugInfo;
struct MediaStateDebugInfoAtoms;
struct NativePropertyHooks;
class ProtoAndIfaceCache;
struct TrackBuffersManagerDebugInfo;
struct TrackBuffersManagerDebugInfoAtoms;
struct VideoSinkDebugInfo;
struct VideoSinkDebugInfoAtoms;
} // namespace dom
} // namespace mozilla
namespace mozilla::dom {
struct AudioSinkDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR bool mAudioEnded;
MOZ_INIT_OUTSIDE_CTOR bool mHasErrored;
MOZ_INIT_OUTSIDE_CTOR bool mIsPlaying;
MOZ_INIT_OUTSIDE_CTOR bool mIsStarted;
MOZ_INIT_OUTSIDE_CTOR int64_t mLastGoodPosition;
MOZ_INIT_OUTSIDE_CTOR uint32_t mOutputRate;
MOZ_INIT_OUTSIDE_CTOR bool mPlaybackComplete;
MOZ_INIT_OUTSIDE_CTOR int64_t mStartTime;
MOZ_INIT_OUTSIDE_CTOR int64_t mWritten;
AudioSinkDebugInfo();
explicit inline AudioSinkDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
AudioSinkDebugInfo(AudioSinkDebugInfo&& aOther) = default;
explicit inline AudioSinkDebugInfo(const AudioSinkDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
AudioSinkDebugInfo&
operator=(const AudioSinkDebugInfo& aOther);
bool
operator==(const AudioSinkDebugInfo& aOther) const;
private:
static bool
InitIds(JSContext* cx, AudioSinkDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastAudioSinkDebugInfo : public AudioSinkDebugInfo
{
inline FastAudioSinkDebugInfo()
: AudioSinkDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct BufferRange : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR double mEnd;
MOZ_INIT_OUTSIDE_CTOR double mStart;
BufferRange();
explicit inline BufferRange(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
BufferRange(BufferRange&& aOther) = default;
explicit inline BufferRange(const BufferRange& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
BufferRange&
operator=(const BufferRange& aOther);
bool
operator==(const BufferRange& aOther) const;
private:
static bool
InitIds(JSContext* cx, BufferRangeAtoms* atomsCache);
};
namespace binding_detail {
struct FastBufferRange : public BufferRange
{
inline FastBufferRange()
: BufferRange(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct DecodedStreamDataDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR int64_t mAudioFramesWritten;
MOZ_INIT_OUTSIDE_CTOR bool mHaveSentFinishAudio;
MOZ_INIT_OUTSIDE_CTOR bool mHaveSentFinishVideo;
MOZ_INIT_OUTSIDE_CTOR nsString mInstance;
MOZ_INIT_OUTSIDE_CTOR int64_t mLastVideoEndTime;
MOZ_INIT_OUTSIDE_CTOR int64_t mLastVideoStartTime;
MOZ_INIT_OUTSIDE_CTOR int64_t mNextAudioTime;
MOZ_INIT_OUTSIDE_CTOR int64_t mStreamAudioWritten;
MOZ_INIT_OUTSIDE_CTOR int64_t mStreamVideoWritten;
DecodedStreamDataDebugInfo();
explicit inline DecodedStreamDataDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
DecodedStreamDataDebugInfo(DecodedStreamDataDebugInfo&& aOther) = default;
explicit inline DecodedStreamDataDebugInfo(const DecodedStreamDataDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
DecodedStreamDataDebugInfo&
operator=(const DecodedStreamDataDebugInfo& aOther);
bool
operator==(const DecodedStreamDataDebugInfo& aOther) const;
private:
static bool
InitIds(JSContext* cx, DecodedStreamDataDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastDecodedStreamDataDebugInfo : public DecodedStreamDataDebugInfo
{
inline FastDecodedStreamDataDebugInfo()
: DecodedStreamDataDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct EMEDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR nsString mKeySystem;
MOZ_INIT_OUTSIDE_CTOR nsString mSessionsInfo;
EMEDebugInfo();
explicit inline EMEDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
EMEDebugInfo(EMEDebugInfo&& aOther) = default;
explicit inline EMEDebugInfo(const EMEDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
EMEDebugInfo&
operator=(const EMEDebugInfo& aOther);
bool
operator==(const EMEDebugInfo& aOther) const;
private:
static bool
InitIds(JSContext* cx, EMEDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastEMEDebugInfo : public EMEDebugInfo
{
inline FastEMEDebugInfo()
: EMEDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaCacheStreamDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR bool mCacheSuspended;
MOZ_INIT_OUTSIDE_CTOR bool mChannelEnded;
MOZ_INIT_OUTSIDE_CTOR int64_t mChannelOffset;
MOZ_INIT_OUTSIDE_CTOR int32_t mLoadID;
MOZ_INIT_OUTSIDE_CTOR int64_t mStreamLength;
MediaCacheStreamDebugInfo();
explicit inline MediaCacheStreamDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaCacheStreamDebugInfo(MediaCacheStreamDebugInfo&& aOther) = default;
explicit inline MediaCacheStreamDebugInfo(const MediaCacheStreamDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaCacheStreamDebugInfo&
operator=(const MediaCacheStreamDebugInfo& aOther);
bool
operator==(const MediaCacheStreamDebugInfo& aOther) const;
private:
static bool
InitIds(JSContext* cx, MediaCacheStreamDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaCacheStreamDebugInfo : public MediaCacheStreamDebugInfo
{
inline FastMediaCacheStreamDebugInfo()
: MediaCacheStreamDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaDecoderStateMachineDecodingStateDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR bool mIsPrerolling;
MediaDecoderStateMachineDecodingStateDebugInfo();
explicit inline MediaDecoderStateMachineDecodingStateDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaDecoderStateMachineDecodingStateDebugInfo(MediaDecoderStateMachineDecodingStateDebugInfo&& aOther) = default;
explicit inline MediaDecoderStateMachineDecodingStateDebugInfo(const MediaDecoderStateMachineDecodingStateDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaDecoderStateMachineDecodingStateDebugInfo&
operator=(const MediaDecoderStateMachineDecodingStateDebugInfo& aOther);
bool
operator==(const MediaDecoderStateMachineDecodingStateDebugInfo& aOther) const;
private:
static bool
InitIds(JSContext* cx, MediaDecoderStateMachineDecodingStateDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaDecoderStateMachineDecodingStateDebugInfo : public MediaDecoderStateMachineDecodingStateDebugInfo
{
inline FastMediaDecoderStateMachineDecodingStateDebugInfo()
: MediaDecoderStateMachineDecodingStateDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaFrameStats : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR int64_t mDroppedCompositorFrames;
MOZ_INIT_OUTSIDE_CTOR int64_t mDroppedDecodedFrames;
MOZ_INIT_OUTSIDE_CTOR int64_t mDroppedSinkFrames;
MediaFrameStats();
explicit inline MediaFrameStats(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaFrameStats(MediaFrameStats&& aOther) = default;
explicit inline MediaFrameStats(const MediaFrameStats& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaFrameStats&
operator=(const MediaFrameStats& aOther);
bool
operator==(const MediaFrameStats& aOther) const;
private:
static bool
InitIds(JSContext* cx, MediaFrameStatsAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaFrameStats : public MediaFrameStats
{
inline FastMediaFrameStats()
: MediaFrameStats(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaStateDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR int32_t mDemuxEOS;
MOZ_INIT_OUTSIDE_CTOR int32_t mDemuxQueueSize;
MOZ_INIT_OUTSIDE_CTOR int32_t mDrainState;
MOZ_INIT_OUTSIDE_CTOR bool mHasDecoder;
MOZ_INIT_OUTSIDE_CTOR bool mHasDemuxRequest;
MOZ_INIT_OUTSIDE_CTOR bool mHasPromise;
MOZ_INIT_OUTSIDE_CTOR int64_t mLastStreamSourceID;
MOZ_INIT_OUTSIDE_CTOR bool mNeedInput;
MOZ_INIT_OUTSIDE_CTOR int64_t mNumSamplesInput;
MOZ_INIT_OUTSIDE_CTOR int64_t mNumSamplesOutput;
MOZ_INIT_OUTSIDE_CTOR int32_t mPending;
MOZ_INIT_OUTSIDE_CTOR int32_t mQueueSize;
MOZ_INIT_OUTSIDE_CTOR double mTimeTreshold;
MOZ_INIT_OUTSIDE_CTOR bool mTimeTresholdHasSeeked;
MOZ_INIT_OUTSIDE_CTOR bool mWaitingForData;
MOZ_INIT_OUTSIDE_CTOR bool mWaitingForKey;
MOZ_INIT_OUTSIDE_CTOR bool mWaitingPromise;
MediaStateDebugInfo();
explicit inline MediaStateDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaStateDebugInfo(MediaStateDebugInfo&& aOther) = default;
explicit inline MediaStateDebugInfo(const MediaStateDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaStateDebugInfo&
operator=(const MediaStateDebugInfo& aOther);
bool
operator==(const MediaStateDebugInfo& aOther) const;
private:
static bool
InitIds(JSContext* cx, MediaStateDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaStateDebugInfo : public MediaStateDebugInfo
{
inline FastMediaStateDebugInfo()
: MediaStateDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct VideoSinkDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR bool mEndPromiseHolderIsEmpty;
MOZ_INIT_OUTSIDE_CTOR bool mFinished;
MOZ_INIT_OUTSIDE_CTOR bool mHasVideo;
MOZ_INIT_OUTSIDE_CTOR bool mIsPlaying;
MOZ_INIT_OUTSIDE_CTOR bool mIsStarted;
MOZ_INIT_OUTSIDE_CTOR int32_t mSize;
MOZ_INIT_OUTSIDE_CTOR int64_t mVideoFrameEndTime;
MOZ_INIT_OUTSIDE_CTOR bool mVideoSinkEndRequestExists;
VideoSinkDebugInfo();
explicit inline VideoSinkDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
VideoSinkDebugInfo(VideoSinkDebugInfo&& aOther) = default;
explicit inline VideoSinkDebugInfo(const VideoSinkDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
VideoSinkDebugInfo&
operator=(const VideoSinkDebugInfo& aOther);
bool
operator==(const VideoSinkDebugInfo& aOther) const;
private:
static bool
InitIds(JSContext* cx, VideoSinkDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastVideoSinkDebugInfo : public VideoSinkDebugInfo
{
inline FastVideoSinkDebugInfo()
: VideoSinkDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct AudioSinkWrapperDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR bool mAudioEnded;
MOZ_INIT_OUTSIDE_CTOR AudioSinkDebugInfo mAudioSink;
MOZ_INIT_OUTSIDE_CTOR bool mIsPlaying;
MOZ_INIT_OUTSIDE_CTOR bool mIsStarted;
AudioSinkWrapperDebugInfo();
explicit inline AudioSinkWrapperDebugInfo(const FastDictionaryInitializer& )
: mAudioSink(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
AudioSinkWrapperDebugInfo(AudioSinkWrapperDebugInfo&& aOther) = default;
explicit inline AudioSinkWrapperDebugInfo(const AudioSinkWrapperDebugInfo& aOther)
: mAudioSink(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
AudioSinkWrapperDebugInfo&
operator=(const AudioSinkWrapperDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, AudioSinkWrapperDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastAudioSinkWrapperDebugInfo : public AudioSinkWrapperDebugInfo
{
inline FastAudioSinkWrapperDebugInfo()
: AudioSinkWrapperDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct DecodedStreamDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR bool mAudioQueueFinished;
MOZ_INIT_OUTSIDE_CTOR int32_t mAudioQueueSize;
MOZ_INIT_OUTSIDE_CTOR DecodedStreamDataDebugInfo mData;
MOZ_INIT_OUTSIDE_CTOR nsString mInstance;
MOZ_INIT_OUTSIDE_CTOR int64_t mLastAudio;
MOZ_INIT_OUTSIDE_CTOR int64_t mLastOutputTime;
MOZ_INIT_OUTSIDE_CTOR int32_t mPlaying;
MOZ_INIT_OUTSIDE_CTOR int64_t mStartTime;
DecodedStreamDebugInfo();
explicit inline DecodedStreamDebugInfo(const FastDictionaryInitializer& )
: mData(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
DecodedStreamDebugInfo(DecodedStreamDebugInfo&& aOther) = default;
explicit inline DecodedStreamDebugInfo(const DecodedStreamDebugInfo& aOther)
: mData(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
DecodedStreamDebugInfo&
operator=(const DecodedStreamDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, DecodedStreamDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastDecodedStreamDebugInfo : public DecodedStreamDebugInfo
{
inline FastDecodedStreamDebugInfo()
: DecodedStreamDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaFormatReaderDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR int32_t mAudioChannels;
MOZ_INIT_OUTSIDE_CTOR nsString mAudioDecoderName;
MOZ_INIT_OUTSIDE_CTOR int64_t mAudioFramesDecoded;
MOZ_INIT_OUTSIDE_CTOR double mAudioRate;
MOZ_INIT_OUTSIDE_CTOR MediaStateDebugInfo mAudioState;
MOZ_INIT_OUTSIDE_CTOR nsString mAudioType;
MOZ_INIT_OUTSIDE_CTOR MediaFrameStats mFrameStats;
MOZ_INIT_OUTSIDE_CTOR double mTotalReadMetadataTimeMs;
MOZ_INIT_OUTSIDE_CTOR double mTotalWaitingForVideoDataTimeMs;
MOZ_INIT_OUTSIDE_CTOR nsString mVideoDecoderName;
MOZ_INIT_OUTSIDE_CTOR bool mVideoHardwareAccelerated;
MOZ_INIT_OUTSIDE_CTOR int32_t mVideoHeight;
MOZ_INIT_OUTSIDE_CTOR int64_t mVideoNumSamplesOutputTotal;
MOZ_INIT_OUTSIDE_CTOR int64_t mVideoNumSamplesSkippedTotal;
MOZ_INIT_OUTSIDE_CTOR double mVideoRate;
MOZ_INIT_OUTSIDE_CTOR MediaStateDebugInfo mVideoState;
MOZ_INIT_OUTSIDE_CTOR nsString mVideoType;
MOZ_INIT_OUTSIDE_CTOR int32_t mVideoWidth;
MediaFormatReaderDebugInfo();
explicit inline MediaFormatReaderDebugInfo(const FastDictionaryInitializer& )
: mAudioState(FastDictionaryInitializer()),
mFrameStats(FastDictionaryInitializer()),
mVideoState(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaFormatReaderDebugInfo(MediaFormatReaderDebugInfo&& aOther) = default;
explicit inline MediaFormatReaderDebugInfo(const MediaFormatReaderDebugInfo& aOther)
: mAudioState(FastDictionaryInitializer()),
mFrameStats(FastDictionaryInitializer()),
mVideoState(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaFormatReaderDebugInfo&
operator=(const MediaFormatReaderDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, MediaFormatReaderDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaFormatReaderDebugInfo : public MediaFormatReaderDebugInfo
{
inline FastMediaFormatReaderDebugInfo()
: MediaFormatReaderDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaResourceDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR MediaCacheStreamDebugInfo mCacheStream;
MediaResourceDebugInfo();
explicit inline MediaResourceDebugInfo(const FastDictionaryInitializer& )
: mCacheStream(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaResourceDebugInfo(MediaResourceDebugInfo&& aOther) = default;
explicit inline MediaResourceDebugInfo(const MediaResourceDebugInfo& aOther)
: mCacheStream(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaResourceDebugInfo&
operator=(const MediaResourceDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, MediaResourceDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaResourceDebugInfo : public MediaResourceDebugInfo
{
inline FastMediaResourceDebugInfo()
: MediaResourceDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct TrackBuffersManagerDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR int32_t mBufferSize;
MOZ_INIT_OUTSIDE_CTOR int32_t mEvictable;
MOZ_INIT_OUTSIDE_CTOR int32_t mNextGetSampleIndex;
MOZ_INIT_OUTSIDE_CTOR int32_t mNextInsertionIndex;
MOZ_INIT_OUTSIDE_CTOR double mNextSampleTime;
MOZ_INIT_OUTSIDE_CTOR int32_t mNumSamples;
MOZ_INIT_OUTSIDE_CTOR Sequence<BufferRange> mRanges;
MOZ_INIT_OUTSIDE_CTOR nsString mType;
TrackBuffersManagerDebugInfo();
explicit inline TrackBuffersManagerDebugInfo(const FastDictionaryInitializer& )
{
// Do nothing here; this is used by our "Fast" subclass
}
TrackBuffersManagerDebugInfo(TrackBuffersManagerDebugInfo&& aOther) = default;
explicit inline TrackBuffersManagerDebugInfo(const TrackBuffersManagerDebugInfo& aOther)
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
TrackBuffersManagerDebugInfo&
operator=(const TrackBuffersManagerDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, TrackBuffersManagerDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastTrackBuffersManagerDebugInfo : public TrackBuffersManagerDebugInfo
{
inline FastTrackBuffersManagerDebugInfo()
: TrackBuffersManagerDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaSinkDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR AudioSinkWrapperDebugInfo mAudioSinkWrapper;
MOZ_INIT_OUTSIDE_CTOR DecodedStreamDebugInfo mDecodedStream;
MOZ_INIT_OUTSIDE_CTOR VideoSinkDebugInfo mVideoSink;
MediaSinkDebugInfo();
explicit inline MediaSinkDebugInfo(const FastDictionaryInitializer& )
: mAudioSinkWrapper(FastDictionaryInitializer()),
mDecodedStream(FastDictionaryInitializer()),
mVideoSink(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaSinkDebugInfo(MediaSinkDebugInfo&& aOther) = default;
explicit inline MediaSinkDebugInfo(const MediaSinkDebugInfo& aOther)
: mAudioSinkWrapper(FastDictionaryInitializer()),
mDecodedStream(FastDictionaryInitializer()),
mVideoSink(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaSinkDebugInfo&
operator=(const MediaSinkDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, MediaSinkDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaSinkDebugInfo : public MediaSinkDebugInfo
{
inline FastMediaSinkDebugInfo()
: MediaSinkDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaSourceDemuxerDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR TrackBuffersManagerDebugInfo mAudioTrack;
MOZ_INIT_OUTSIDE_CTOR TrackBuffersManagerDebugInfo mVideoTrack;
MediaSourceDemuxerDebugInfo();
explicit inline MediaSourceDemuxerDebugInfo(const FastDictionaryInitializer& )
: mAudioTrack(FastDictionaryInitializer()),
mVideoTrack(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaSourceDemuxerDebugInfo(MediaSourceDemuxerDebugInfo&& aOther) = default;
explicit inline MediaSourceDemuxerDebugInfo(const MediaSourceDemuxerDebugInfo& aOther)
: mAudioTrack(FastDictionaryInitializer()),
mVideoTrack(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaSourceDemuxerDebugInfo&
operator=(const MediaSourceDemuxerDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, MediaSourceDemuxerDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaSourceDemuxerDebugInfo : public MediaSourceDemuxerDebugInfo
{
inline FastMediaSourceDemuxerDebugInfo()
: MediaSourceDemuxerDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaDecoderStateMachineDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR bool mAudioCompleted;
MOZ_INIT_OUTSIDE_CTOR nsString mAudioRequestStatus;
MOZ_INIT_OUTSIDE_CTOR int64_t mClock;
MOZ_INIT_OUTSIDE_CTOR int64_t mDecodedAudioEndTime;
MOZ_INIT_OUTSIDE_CTOR int64_t mDecodedVideoEndTime;
MOZ_INIT_OUTSIDE_CTOR int64_t mDuration;
MOZ_INIT_OUTSIDE_CTOR bool mIsPlaying;
MOZ_INIT_OUTSIDE_CTOR MediaSinkDebugInfo mMediaSink;
MOZ_INIT_OUTSIDE_CTOR int64_t mMediaTime;
MOZ_INIT_OUTSIDE_CTOR int32_t mPlayState;
MOZ_INIT_OUTSIDE_CTOR bool mSentFirstFrameLoadedEvent;
MOZ_INIT_OUTSIDE_CTOR nsString mState;
MOZ_INIT_OUTSIDE_CTOR MediaDecoderStateMachineDecodingStateDebugInfo mStateObj;
MOZ_INIT_OUTSIDE_CTOR double mTotalBufferingTimeMs;
MOZ_INIT_OUTSIDE_CTOR bool mVideoCompleted;
MOZ_INIT_OUTSIDE_CTOR nsString mVideoRequestStatus;
MediaDecoderStateMachineDebugInfo();
explicit inline MediaDecoderStateMachineDebugInfo(const FastDictionaryInitializer& )
: mMediaSink(FastDictionaryInitializer()),
mStateObj(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaDecoderStateMachineDebugInfo(MediaDecoderStateMachineDebugInfo&& aOther) = default;
explicit inline MediaDecoderStateMachineDebugInfo(const MediaDecoderStateMachineDebugInfo& aOther)
: mMediaSink(FastDictionaryInitializer()),
mStateObj(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaDecoderStateMachineDebugInfo&
operator=(const MediaDecoderStateMachineDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, MediaDecoderStateMachineDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaDecoderStateMachineDebugInfo : public MediaDecoderStateMachineDebugInfo
{
inline FastMediaDecoderStateMachineDebugInfo()
: MediaDecoderStateMachineDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaSourceDecoderDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR MediaSourceDemuxerDebugInfo mDemuxer;
MOZ_INIT_OUTSIDE_CTOR MediaFormatReaderDebugInfo mReader;
MediaSourceDecoderDebugInfo();
explicit inline MediaSourceDecoderDebugInfo(const FastDictionaryInitializer& )
: mDemuxer(FastDictionaryInitializer()),
mReader(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaSourceDecoderDebugInfo(MediaSourceDecoderDebugInfo&& aOther) = default;
explicit inline MediaSourceDecoderDebugInfo(const MediaSourceDecoderDebugInfo& aOther)
: mDemuxer(FastDictionaryInitializer()),
mReader(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaSourceDecoderDebugInfo&
operator=(const MediaSourceDecoderDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, MediaSourceDecoderDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaSourceDecoderDebugInfo : public MediaSourceDecoderDebugInfo
{
inline FastMediaSourceDecoderDebugInfo()
: MediaSourceDecoderDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct MediaDecoderDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR nsString mPlayState;
MOZ_INIT_OUTSIDE_CTOR uint32_t mChannels;
MOZ_INIT_OUTSIDE_CTOR nsString mContainerType;
MOZ_INIT_OUTSIDE_CTOR bool mHasAudio;
MOZ_INIT_OUTSIDE_CTOR bool mHasVideo;
MOZ_INIT_OUTSIDE_CTOR nsString mInstance;
MOZ_INIT_OUTSIDE_CTOR uint32_t mRate;
MOZ_INIT_OUTSIDE_CTOR MediaFormatReaderDebugInfo mReader;
MOZ_INIT_OUTSIDE_CTOR MediaResourceDebugInfo mResource;
MOZ_INIT_OUTSIDE_CTOR MediaDecoderStateMachineDebugInfo mStateMachine;
MediaDecoderDebugInfo();
explicit inline MediaDecoderDebugInfo(const FastDictionaryInitializer& )
: mReader(FastDictionaryInitializer()),
mResource(FastDictionaryInitializer()),
mStateMachine(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
MediaDecoderDebugInfo(MediaDecoderDebugInfo&& aOther) = default;
explicit inline MediaDecoderDebugInfo(const MediaDecoderDebugInfo& aOther)
: mReader(FastDictionaryInitializer()),
mResource(FastDictionaryInitializer()),
mStateMachine(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
MediaDecoderDebugInfo&
operator=(const MediaDecoderDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, MediaDecoderDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastMediaDecoderDebugInfo : public MediaDecoderDebugInfo
{
inline FastMediaDecoderDebugInfo()
: MediaDecoderDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
struct HTMLMediaElementDebugInfo : public DictionaryBase
{
MOZ_INIT_OUTSIDE_CTOR EMEDebugInfo mEMEInfo;
MOZ_INIT_OUTSIDE_CTOR uint32_t mCompositorDroppedFrames;
MOZ_INIT_OUTSIDE_CTOR MediaDecoderDebugInfo mDecoder;
HTMLMediaElementDebugInfo();
explicit inline HTMLMediaElementDebugInfo(const FastDictionaryInitializer& )
: mEMEInfo(FastDictionaryInitializer()),
mDecoder(FastDictionaryInitializer())
{
// Do nothing here; this is used by our "Fast" subclass
}
HTMLMediaElementDebugInfo(HTMLMediaElementDebugInfo&& aOther) = default;
explicit inline HTMLMediaElementDebugInfo(const HTMLMediaElementDebugInfo& aOther)
: mEMEInfo(FastDictionaryInitializer()),
mDecoder(FastDictionaryInitializer())
{
*this = aOther;
}
bool
Init(const char* sourceDescription = "Value", bool passedToJSImpl = false);
bool
ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
void
TraceDictionary(JSTracer* trc);
HTMLMediaElementDebugInfo&
operator=(const HTMLMediaElementDebugInfo& aOther);
private:
static bool
InitIds(JSContext* cx, HTMLMediaElementDebugInfoAtoms* atomsCache);
};
namespace binding_detail {
struct FastHTMLMediaElementDebugInfo : public HTMLMediaElementDebugInfo
{
inline FastHTMLMediaElementDebugInfo()
: HTMLMediaElementDebugInfo(FastDictionaryInitializer())
{
// Doesn't matter what int we pass to the parent constructor
}
};
} // namespace binding_detail
} // namespace mozilla::dom
#endif // DOM_MEDIADEBUGINFOBINDING_H_