Generated file

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
{
bool mAudioEnded = false;
bool mHasErrored = false;
bool mIsPlaying = false;
bool mIsStarted = false;
int64_t mLastGoodPosition = 0LL;
uint32_t mOutputRate = 0U;
bool mPlaybackComplete = false;
int64_t mStartTime = 0LL;
int64_t mWritten = 0LL;
constexpr AudioSinkDebugInfo() = default;
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);
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
{
double mEnd = 0.0;
double mStart = 0.0;
constexpr BufferRange() = default;
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);
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
{
int64_t mAudioFramesWritten = 0LL;
bool mHaveSentFinishAudio = false;
bool mHaveSentFinishVideo = false;
MOZ_INIT_OUTSIDE_CTOR nsString mInstance;
int64_t mLastVideoEndTime = 0LL;
int64_t mLastVideoStartTime = 0LL;
int64_t mNextAudioTime = 0LL;
int64_t mStreamAudioWritten = 0LL;
int64_t mStreamVideoWritten = 0LL;
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);
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);
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
{
bool mCacheSuspended = false;
bool mChannelEnded = false;
int64_t mChannelOffset = 0LL;
int32_t mLoadID = 0;
int64_t mStreamLength = 0LL;
constexpr MediaCacheStreamDebugInfo() = default;
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);
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
{
bool mIsPrerolling = false;
constexpr MediaDecoderStateMachineDecodingStateDebugInfo() = default;
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);
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
{
uint64_t mDroppedCompositorFrames = 0ULL;
uint64_t mDroppedDecodedFrames = 0ULL;
uint64_t mDroppedSinkFrames = 0ULL;
constexpr MediaFrameStats() = default;
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);
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
{
int32_t mDemuxEOS = 0;
uint64_t mDemuxQueueSize = 0ULL;
int32_t mDrainState = 0;
bool mHasDecoder = false;
bool mHasDemuxRequest = false;
bool mHasPromise = false;
uint32_t mLastStreamSourceID = 0U;
bool mNeedInput = false;
uint64_t mNumSamplesInput = 0ULL;
uint64_t mNumSamplesOutput = 0ULL;
uint64_t mPending = 0ULL;
uint64_t mQueueSize = 0ULL;
double mTimeTreshold = 0.0;
bool mTimeTresholdHasSeeked = false;
bool mWaitingForData = false;
bool mWaitingForKey = false;
bool mWaitingPromise = false;
constexpr MediaStateDebugInfo() = default;
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);
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
{
bool mEndPromiseHolderIsEmpty = false;
bool mFinished = false;
bool mHasVideo = false;
bool mIsPlaying = false;
bool mIsStarted = false;
int32_t mSize = 0;
int64_t mVideoFrameEndTime = 0LL;
bool mVideoSinkEndRequestExists = false;
constexpr VideoSinkDebugInfo() = default;
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);
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
{
bool mAudioEnded = false;
MOZ_INIT_OUTSIDE_CTOR AudioSinkDebugInfo mAudioSink;
bool mIsPlaying = false;
bool mIsStarted = false;
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
{
bool mAudioQueueFinished = false;
int32_t mAudioQueueSize = 0;
MOZ_INIT_OUTSIDE_CTOR DecodedStreamDataDebugInfo mData;
MOZ_INIT_OUTSIDE_CTOR nsString mInstance;
int64_t mLastAudio = 0LL;
int64_t mLastOutputTime = 0LL;
int32_t mPlaying = 0;
int64_t mStartTime = 0LL;
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
{
uint32_t mAudioChannels = 0U;
MOZ_INIT_OUTSIDE_CTOR nsString mAudioDecoderName;
uint64_t mAudioFramesDecoded = 0ULL;
double mAudioRate = 0.0;
MOZ_INIT_OUTSIDE_CTOR MediaStateDebugInfo mAudioState;
MOZ_INIT_OUTSIDE_CTOR nsString mAudioType;
MOZ_INIT_OUTSIDE_CTOR MediaFrameStats mFrameStats;
double mTotalReadMetadataTimeMs = 0.0;
double mTotalWaitingForVideoDataTimeMs = 0.0;
MOZ_INIT_OUTSIDE_CTOR nsString mVideoDecoderName;
bool mVideoHardwareAccelerated = false;
int32_t mVideoHeight = 0;
uint64_t mVideoNumSamplesOutputTotal = 0ULL;
uint64_t mVideoNumSamplesSkippedTotal = 0ULL;
double mVideoRate = 0.0;
MOZ_INIT_OUTSIDE_CTOR MediaStateDebugInfo mVideoState;
MOZ_INIT_OUTSIDE_CTOR nsString mVideoType;
int32_t mVideoWidth = 0;
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
{
int32_t mBufferSize = 0;
int32_t mEvictable = 0;
int32_t mNextGetSampleIndex = 0;
int32_t mNextInsertionIndex = 0;
double mNextSampleTime = 0.0;
int32_t mNumSamples = 0;
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
{
bool mAudioCompleted = false;
MOZ_INIT_OUTSIDE_CTOR nsString mAudioRequestStatus;
int64_t mClock = 0LL;
int64_t mDecodedAudioEndTime = 0LL;
int64_t mDecodedVideoEndTime = 0LL;
int64_t mDuration = 0LL;
bool mIsPlaying = false;
MOZ_INIT_OUTSIDE_CTOR MediaSinkDebugInfo mMediaSink;
int64_t mMediaTime = 0LL;
int32_t mPlayState = 0;
bool mSentFirstFrameLoadedEvent = false;
MOZ_INIT_OUTSIDE_CTOR nsString mState;
MOZ_INIT_OUTSIDE_CTOR MediaDecoderStateMachineDecodingStateDebugInfo mStateObj;
double mTotalBufferingTimeMs = 0.0;
bool mVideoCompleted = false;
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;
uint32_t mChannels = 0U;
MOZ_INIT_OUTSIDE_CTOR nsString mContainerType;
bool mHasAudio = false;
bool mHasVideo = false;
MOZ_INIT_OUTSIDE_CTOR nsString mInstance;
uint32_t mRate = 0U;
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;
uint32_t mCompositorDroppedFrames = 0U;
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_