//
// Automatically generated by ipdlc.
// Edit at your own risk
//


#include "mozilla/dom/MediaIPCUtils.h"
#include "mozilla/dom/PContentParent.h"
#include "mozilla/dom/PContentChild.h"
#include "mozilla/ipc/PBackgroundParent.h"
#include "mozilla/ipc/PBackgroundChild.h"
#include "mozilla/dom/DomSecurityIPCUtils.h"
#include "mozilla/camera/PCameras.h"
#include "mozilla/camera/PCamerasParent.h"
#include "mozilla/camera/PCamerasChild.h"

#include "ipc/IPCMessageUtils.h"
#include "ipc/IPCMessageUtilsSpecializations.h"
#include "nsIFile.h"
#include "mozilla/ipc/Endpoint.h"
#include "mozilla/ipc/ProtocolMessageUtils.h"
#include "mozilla/ipc/ProtocolUtils.h"
#include "mozilla/ipc/ShmemMessageUtils.h"
#include "mozilla/ipc/TaintingIPCUtils.h"

namespace mozilla {
namespace camera {
namespace PCameras {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::camera::PCamerasParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::camera::PCamerasChild>* aChild)
{
    return mozilla::ipc::CreateEndpoints(
        mozilla::ipc::PrivateIPDLInterface(),
        aParentDestInfo, aChildDestInfo, aParent, aChild);
}
mozilla::UniquePtr<IPC::Message>
Msg_CaptureEnded(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_CaptureEnded__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_DeliverFrame(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_DeliverFrame__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_DeviceChange(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_DeviceChange__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplyNumberOfCaptureDevices(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplyNumberOfCaptureDevices__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplyNumberOfCapabilities(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplyNumberOfCapabilities__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplyAllocateCapture(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplyAllocateCapture__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplyGetCaptureCapability(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplyGetCaptureCapability__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplyGetCaptureDevice(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplyGetCaptureDevice__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplyFailure(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplyFailure__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplySuccess(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplySuccess__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Reply___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Reply___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_InvalidateDesktopCaptureDeviceCache(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_InvalidateDesktopCaptureDeviceCache__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_NumberOfCaptureDevices(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_NumberOfCaptureDevices__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_NumberOfCapabilities(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_NumberOfCapabilities__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_GetCaptureCapability(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_GetCaptureCapability__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_GetCaptureDevice(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_GetCaptureDevice__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_AllocateCapture(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_AllocateCapture__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReleaseCapture(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReleaseCapture__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_StartCapture(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_StartCapture__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_FocusOnSelectedSource(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_FocusOnSelectedSource__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_StopCapture(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_StopCapture__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReleaseFrame(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReleaseFrame__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_EnsureInitialized(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_EnsureInitialized__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}

} // namespace PCameras
} // namespace camera
} // namespace mozilla

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct VideoCaptureCapability|
//
namespace mozilla {
namespace camera {
} // namespace camera
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::camera::VideoCaptureCapability>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).width());
    // Sentinel = 'width'
    (aWriter)->WriteSentinel(108528161);
    IPC::WriteParam(aWriter, (aVar).height());
    // Sentinel = 'height'
    (aWriter)->WriteSentinel(143393402);
    IPC::WriteParam(aWriter, (aVar).maxFPS());
    // Sentinel = 'maxFPS'
    (aWriter)->WriteSentinel(136184368);
    IPC::WriteParam(aWriter, (aVar).videoType());
    // Sentinel = 'videoType'
    (aWriter)->WriteSentinel(314311610);
    IPC::WriteParam(aWriter, (aVar).interlaced());
    // Sentinel = 'interlaced'
    (aWriter)->WriteSentinel(386401308);
}

auto ParamTraits<::mozilla::camera::VideoCaptureCapability>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___width = IPC::ReadParam<int>(aReader);
    if (!maybe___width) {
        aReader->FatalError("Error deserializing 'width' (int) member of 'VideoCaptureCapability'");
        return {};

    }
    auto& _width = *maybe___width;
    // Sentinel = 'width'
    if ((!((aReader)->ReadSentinel(108528161)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'width' (int) member of 'VideoCaptureCapability'");
        return {};
    }
    auto maybe___height = IPC::ReadParam<int>(aReader);
    if (!maybe___height) {
        aReader->FatalError("Error deserializing 'height' (int) member of 'VideoCaptureCapability'");
        return {};

    }
    auto& _height = *maybe___height;
    // Sentinel = 'height'
    if ((!((aReader)->ReadSentinel(143393402)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'height' (int) member of 'VideoCaptureCapability'");
        return {};
    }
    auto maybe___maxFPS = IPC::ReadParam<int>(aReader);
    if (!maybe___maxFPS) {
        aReader->FatalError("Error deserializing 'maxFPS' (int) member of 'VideoCaptureCapability'");
        return {};

    }
    auto& _maxFPS = *maybe___maxFPS;
    // Sentinel = 'maxFPS'
    if ((!((aReader)->ReadSentinel(136184368)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'maxFPS' (int) member of 'VideoCaptureCapability'");
        return {};
    }
    auto maybe___videoType = IPC::ReadParam<::webrtc::VideoType>(aReader);
    if (!maybe___videoType) {
        aReader->FatalError("Error deserializing 'videoType' (VideoType) member of 'VideoCaptureCapability'");
        return {};

    }
    auto& _videoType = *maybe___videoType;
    // Sentinel = 'videoType'
    if ((!((aReader)->ReadSentinel(314311610)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'videoType' (VideoType) member of 'VideoCaptureCapability'");
        return {};
    }
    auto maybe___interlaced = IPC::ReadParam<bool>(aReader);
    if (!maybe___interlaced) {
        aReader->FatalError("Error deserializing 'interlaced' (bool) member of 'VideoCaptureCapability'");
        return {};

    }
    auto& _interlaced = *maybe___interlaced;
    // Sentinel = 'interlaced'
    if ((!((aReader)->ReadSentinel(386401308)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'interlaced' (bool) member of 'VideoCaptureCapability'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_width),
            std::move(_height),
            std::move(_maxFPS),
            std::move(_videoType),
            std::move(_interlaced)};
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct VideoFrameProperties|
//
namespace mozilla {
namespace camera {
auto VideoFrameProperties::StaticAssertions() const -> void
{
    static_assert(
        (offsetof(VideoFrameProperties, renderTimeMs_) - offsetof(VideoFrameProperties, ntpTimeMs_)) == 8,
        "Bad assumptions about field layout!");
    static_assert(
        (offsetof(VideoFrameProperties, rtpTimeStamp_) - offsetof(VideoFrameProperties, bufferSize_)) == 4,
        "Bad assumptions about field layout!");
}

} // namespace camera
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::camera::VideoFrameProperties>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).captureTime());
    // Sentinel = 'captureTime'
    (aWriter)->WriteSentinel(457704580);
    IPC::WriteParam(aWriter, (aVar).originalRotationRequired());
    // Sentinel = 'originalRotationRequired'
    (aWriter)->WriteSentinel(2081032679);
    IPC::WriteParam(aWriter, (aVar).rotationApplied());
    // Sentinel = 'rotationApplied'
    (aWriter)->WriteSentinel(844891696);
    IPC::WriteParam(aWriter, (aVar).yAllocatedSize());
    // Sentinel = 'yAllocatedSize'
    (aWriter)->WriteSentinel(702809502);
    IPC::WriteParam(aWriter, (aVar).uAllocatedSize());
    // Sentinel = 'uAllocatedSize'
    (aWriter)->WriteSentinel(699139482);
    IPC::WriteParam(aWriter, (aVar).vAllocatedSize());
    // Sentinel = 'vAllocatedSize'
    (aWriter)->WriteSentinel(700056987);
    IPC::WriteParam(aWriter, (aVar).width());
    // Sentinel = 'width'
    (aWriter)->WriteSentinel(108528161);
    IPC::WriteParam(aWriter, (aVar).height());
    // Sentinel = 'height'
    (aWriter)->WriteSentinel(143393402);
    IPC::WriteParam(aWriter, (aVar).yStride());
    // Sentinel = 'yStride'
    (aWriter)->WriteSentinel(196870885);
    IPC::WriteParam(aWriter, (aVar).uStride());
    // Sentinel = 'uStride'
    (aWriter)->WriteSentinel(195035873);
    IPC::WriteParam(aWriter, (aVar).vStride());
    // Sentinel = 'vStride'
    (aWriter)->WriteSentinel(195494626);
    (aWriter)->WriteBytes((&((aVar).ntpTimeMs())), 16);
    // Sentinel = 'ntpTimeMs | renderTimeMs'
    (aWriter)->WriteSentinel(1930168621);
    (aWriter)->WriteBytes((&((aVar).bufferSize())), 8);
    // Sentinel = 'bufferSize | rtpTimeStamp'
    (aWriter)->WriteSentinel(2116291004);
}

auto ParamTraits<::mozilla::camera::VideoFrameProperties>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___captureTime = IPC::ReadParam<::mozilla::TimeStamp>(aReader);
    if (!maybe___captureTime) {
        aReader->FatalError("Error deserializing 'captureTime' (TimeStamp) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _captureTime = *maybe___captureTime;
    // Sentinel = 'captureTime'
    if ((!((aReader)->ReadSentinel(457704580)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'captureTime' (TimeStamp) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___originalRotationRequired = IPC::ReadParam<::mozilla::VideoRotation>(aReader);
    if (!maybe___originalRotationRequired) {
        aReader->FatalError("Error deserializing 'originalRotationRequired' (VideoRotation) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _originalRotationRequired = *maybe___originalRotationRequired;
    // Sentinel = 'originalRotationRequired'
    if ((!((aReader)->ReadSentinel(2081032679)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'originalRotationRequired' (VideoRotation) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___rotationApplied = IPC::ReadParam<bool>(aReader);
    if (!maybe___rotationApplied) {
        aReader->FatalError("Error deserializing 'rotationApplied' (bool) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _rotationApplied = *maybe___rotationApplied;
    // Sentinel = 'rotationApplied'
    if ((!((aReader)->ReadSentinel(844891696)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'rotationApplied' (bool) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___yAllocatedSize = IPC::ReadParam<int>(aReader);
    if (!maybe___yAllocatedSize) {
        aReader->FatalError("Error deserializing 'yAllocatedSize' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _yAllocatedSize = *maybe___yAllocatedSize;
    // Sentinel = 'yAllocatedSize'
    if ((!((aReader)->ReadSentinel(702809502)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'yAllocatedSize' (int) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___uAllocatedSize = IPC::ReadParam<int>(aReader);
    if (!maybe___uAllocatedSize) {
        aReader->FatalError("Error deserializing 'uAllocatedSize' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _uAllocatedSize = *maybe___uAllocatedSize;
    // Sentinel = 'uAllocatedSize'
    if ((!((aReader)->ReadSentinel(699139482)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'uAllocatedSize' (int) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___vAllocatedSize = IPC::ReadParam<int>(aReader);
    if (!maybe___vAllocatedSize) {
        aReader->FatalError("Error deserializing 'vAllocatedSize' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _vAllocatedSize = *maybe___vAllocatedSize;
    // Sentinel = 'vAllocatedSize'
    if ((!((aReader)->ReadSentinel(700056987)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'vAllocatedSize' (int) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___width = IPC::ReadParam<int>(aReader);
    if (!maybe___width) {
        aReader->FatalError("Error deserializing 'width' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _width = *maybe___width;
    // Sentinel = 'width'
    if ((!((aReader)->ReadSentinel(108528161)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'width' (int) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___height = IPC::ReadParam<int>(aReader);
    if (!maybe___height) {
        aReader->FatalError("Error deserializing 'height' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _height = *maybe___height;
    // Sentinel = 'height'
    if ((!((aReader)->ReadSentinel(143393402)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'height' (int) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___yStride = IPC::ReadParam<int>(aReader);
    if (!maybe___yStride) {
        aReader->FatalError("Error deserializing 'yStride' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _yStride = *maybe___yStride;
    // Sentinel = 'yStride'
    if ((!((aReader)->ReadSentinel(196870885)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'yStride' (int) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___uStride = IPC::ReadParam<int>(aReader);
    if (!maybe___uStride) {
        aReader->FatalError("Error deserializing 'uStride' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _uStride = *maybe___uStride;
    // Sentinel = 'uStride'
    if ((!((aReader)->ReadSentinel(195035873)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'uStride' (int) member of 'VideoFrameProperties'");
        return {};
    }
    auto maybe___vStride = IPC::ReadParam<int>(aReader);
    if (!maybe___vStride) {
        aReader->FatalError("Error deserializing 'vStride' (int) member of 'VideoFrameProperties'");
        return {};

    }
    auto& _vStride = *maybe___vStride;
    // Sentinel = 'vStride'
    if ((!((aReader)->ReadSentinel(195494626)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'vStride' (int) member of 'VideoFrameProperties'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_captureTime),
            ::uint32_t{0},
            ::uint32_t{0},
            ::int64_t{0},
            ::int64_t{0},
            std::move(_originalRotationRequired),
            std::move(_rotationApplied),
            std::move(_yAllocatedSize),
            std::move(_uAllocatedSize),
            std::move(_vAllocatedSize),
            std::move(_width),
            std::move(_height),
            std::move(_yStride),
            std::move(_uStride),
            std::move(_vStride)};
    if ((!((aReader)->ReadBytesInto((&((result__)->ntpTimeMs())), 16)))) {
        aReader->FatalError("Error bulk reading fields from int64_t");
        return {};
    }
    // Sentinel = 'ntpTimeMs | renderTimeMs'
    if ((!((aReader)->ReadSentinel(1930168621)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from int64_t");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->bufferSize())), 8)))) {
        aReader->FatalError("Error bulk reading fields from uint32_t");
        return {};
    }
    // Sentinel = 'bufferSize | rtpTimeStamp'
    if ((!((aReader)->ReadSentinel(2116291004)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint32_t");
        return {};
    }
    return result__;
}

} // namespace IPC
