⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rmfftype.h

📁 linux下的一款播放器
💻 H
📖 第 1 页 / 共 4 页
字号:
{    UINT8* off = buf;    RMPackUINT16(object_version, off);    if (object_version == 0)    {        RMPackUINT32(timestamp, off);        RMPackUINT32(offset, off);        RMPackUINT32(num_interleave_packets, off);    }    len = off-buf;    return off;}HX_INLINE UINT8*IndexRecord::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    object_version = RMUnpackUINT16(off);    if (object_version == 0)    {        timestamp              = RMUnpackUINT32(off);        offset                 = RMUnpackUINT32(off);        num_interleave_packets = RMUnpackUINT32(off);    }    return off;}HX_INLINE UINT8*PacketHeaderBase::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT16(object_version, off);    RMPackUINT16(length, off);    len = off-buf;    return off;}HX_INLINE UINT8*PacketHeaderBase::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    object_version = RMUnpackUINT16(off);    length         = RMUnpackUINT16(off);    return off;}HX_INLINE UINT8*PacketHeader::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT16(object_version, off);    if (object_version == 0)    {        RMPackUINT16(length, off);        RMPackUINT16(stream_number, off);        RMPackUINT32(timestamp, off);        RMPackUINT16(flags, off);    }    len = off-buf;    return off;}HX_INLINE UINT8*PacketHeader::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    object_version = RMUnpackUINT16(off);    if (object_version == 0)    {        length        = RMUnpackUINT16(off);        stream_number = RMUnpackUINT16(off);        timestamp     = RMUnpackUINT32(off);        flags         = RMUnpackUINT16(off);    }    return off;}HX_INLINE UINT8*PacketHeader1::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT16(object_version, off);    if (object_version == 1)    {        RMPackUINT16(length, off);        RMPackUINT16(stream_number, off);        RMPackUINT32(timestamp, off);        RMPackUINT16(asm_rule, off);        *off++ = asm_flags;    }    len = off-buf;    return off;}HX_INLINE UINT8*PacketHeader1::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    object_version = RMUnpackUINT16(off);    if (object_version == 1)    {        length        = RMUnpackUINT16(off);        stream_number = RMUnpackUINT16(off);        timestamp     = RMUnpackUINT32(off);        asm_rule      = RMUnpackUINT16(off);        asm_flags     = *off++;    }    return off;}HX_INLINE UINT8*Profile::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT32(object_id, off);    RMPackUINT32(size, off);    RMPackUINT16(object_version, off);    if (object_version == 0)    {        RMPackUINT32(Bandwidth, off);        RMPackUINT32(CpuPower, off);    }    len = off-buf;    return off;}HX_INLINE UINT8*Profile::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    object_id      = RMUnpackUINT32(off);    size           = RMUnpackUINT32(off);    object_version = RMUnpackUINT16(off);    if (object_version == 0)    {        Bandwidth = RMUnpackUINT32(off);        CpuPower  = RMUnpackUINT32(off);    }    return off;}HX_INLINE UINT8*RMEventPacketData::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT16(sequence_number, off);    RMPackUINT32(start_time_deciseconds, off);    RMPackUINT32(stop_time_deciseconds, off);    RMPackUINT16(event_type_and_string_len, off);    RMPackUINT16(event_type_id, off);    memcpy(off, event_string, event_type_and_string_len - 2);    off += event_type_and_string_len - 2;    len = off-buf;    return off;}HX_INLINE UINT8*RMEventPacketData::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    sequence_number           = RMUnpackUINT16(off);    start_time_deciseconds    = RMUnpackUINT32(off);    stop_time_deciseconds     = RMUnpackUINT32(off);    event_type_and_string_len = RMUnpackUINT16(off);    event_type_id             = RMUnpackUINT16(off);    if (off-buf+(event_type_and_string_len - 2) > (int)len)	return 0;    event_string = (UINT8*) off;    off += event_type_and_string_len - 2;    return off;}HX_INLINE UINT8*RMImageMapRegionData::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT32(start_time, off);    RMPackUINT32(end_time, off);    RMPackUINT16(shape, off);    RMPackUINT16(num_values, off);    for (int i = 0;  i < num_values; i++)        RMPackUINT16(values[i], off);    RMPackUINT16(action, off);    RMPackUINT32(seek_time, off);    RMPackUINT16String(url, url_len, off);    RMPackUINT16String(status, status_len, off);    len = off-buf;    return off;}HX_INLINE UINT8*RMImageMapRegionData::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    start_time = RMUnpackUINT32(off);    end_time   = RMUnpackUINT32(off);    shape      = RMUnpackUINT16(off);    num_values = RMUnpackUINT16(off);    values     = new UINT16[num_values];    if (!values) return 0;    for (int i = 0;  i < num_values; i++)        values[i] = RMUnpackUINT16(off);    action    = RMUnpackUINT16(off);    seek_time = RMUnpackUINT32(off);    if (!RMUnpackUINT16String(url, url_len, off, buf, len)) return 0;    if (!RMUnpackUINT16String(status, status_len, off, buf, len)) return 0;    return off;}HX_INLINE UINT8*RMImageMapPacketData::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT16(sequence_number, off);    RMPackUINT16(num_regions, off);    RMPackUINT32(start_time, off);    RMPackUINT32(end_time, off);    RMPackUINT16(left, off);    RMPackUINT16(top, off);    RMPackUINT16(right, off);    RMPackUINT16(bottom, off);    for (int i = 0;  i < num_regions; i++)        off = regions[i].pack(off, len);    len = off-buf;    return off;}HX_INLINE UINT8*RMImageMapPacketData::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    sequence_number = RMUnpackUINT16(off);    num_regions     = RMUnpackUINT16(off);    start_time      = RMUnpackUINT32(off);    end_time        = RMUnpackUINT32(off);    left            = RMUnpackUINT16(off);    top             = RMUnpackUINT16(off);    right           = RMUnpackUINT16(off);    bottom          = RMUnpackUINT16(off);    regions = new RMImageMapRegionData[num_regions];    if (!regions) return 0;    for (int i = 0;  i < num_regions; i++)        off = regions[i].unpack(off, len);    return off;}HX_INLINE UINT8*RMBaseImageMapPacketData::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT16(sequence_number, off);    RMPackUINT16(num_regions, off);    RMPackUINT32(start_time, off);    RMPackUINT32(end_time, off);    RMPackUINT16(left, off);    RMPackUINT16(top, off);    RMPackUINT16(right, off);    RMPackUINT16(bottom, off);    len = off-buf;    return off;}HX_INLINE UINT8*RMBaseImageMapPacketData::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    sequence_number = RMUnpackUINT16(off);    num_regions     = RMUnpackUINT16(off);    start_time      = RMUnpackUINT32(off);    end_time        = RMUnpackUINT32(off);    left            = RMUnpackUINT16(off);    top             = RMUnpackUINT16(off);    right           = RMUnpackUINT16(off);    bottom          = RMUnpackUINT16(off);    return off;}HX_INLINE UINT8*StreamPair::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT16(stream1_num, off);    RMPackUINT16(stream2_num, off);    len = off-buf;    return off;}HX_INLINE UINT8*StreamPair::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    stream1_num = RMUnpackUINT16(off);    stream2_num = RMUnpackUINT16(off);    return off;}HX_INLINE UINT8*StreamPairsHeader::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT32(size, off);    RMPackUINT16(object_version, off);    RMPackUINT16(num_stream_pairs, off);    for (int i = 0;  i < num_stream_pairs; i++)        off = stream_pairs[i].pack(off, len);    RMPackByteString(stream1_property_name, stream1_property_name_len, off);    RMPackByteString(stream2_property_name, stream2_property_name_len, off);    len = off-buf;    return off;}HX_INLINE UINT8*StreamPairsHeader::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    size             = RMUnpackUINT32(off);    object_version   = RMUnpackUINT16(off);    num_stream_pairs = RMUnpackUINT16(off);    stream_pairs = new StreamPair[num_stream_pairs];    if (!stream_pairs) return 0;    for (int i = 0;  i < num_stream_pairs; i++)        off = stream_pairs[i].unpack(off, len);    if (!RMUnpackByteString(stream1_property_name, stream1_property_name_len, off, buf, len)) return 0;    if (!RMUnpackByteString(stream2_property_name, stream2_property_name_len, off, buf, len)) return 0;    return off;}HX_INLINE UINT8*PhysicalStreamInfo::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT32(size, off);    RMPackUINT16(object_version, off);    RMPackUINT16(unPhysicalStreamNumber, off);    RMPackUINT16(unLogicalStreamNumber, off);    RMPackUINT32(ulDataOffset, off);    RMPackUINT32(ulBandwidth, off);    *off++ = bInterleavedBackwardsCompatible;    *off++ = bTaggedBackwardsCompatible;    *off++ = bIncludeAsMultirate;    *off++ = bOwnsDataSection;    *off++ = bIgnoreOnWrite;    len = off-buf;    return off;}HX_INLINE UINT8*PhysicalStreamInfo::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    size                   = RMUnpackUINT32(off);    object_version         = RMUnpackUINT16(off);    unPhysicalStreamNumber = RMUnpackUINT16(off);    unLogicalStreamNumber  = RMUnpackUINT16(off);    ulDataOffset           = RMUnpackUINT32(off);    ulBandwidth            = RMUnpackUINT32(off);    bInterleavedBackwardsCompatible = *off++;    bTaggedBackwardsCompatible      = *off++;    bIncludeAsMultirate             = *off++;    bOwnsDataSection                = *off++;    bIgnoreOnWrite                  = *off++;    return off;}HX_INLINE UINT8*PhysicalStreamInfoHeader::pack(UINT8* buf, UINT32 &len){    UINT8* off = buf;    RMPackUINT32(size, off);    RMPackUINT16(object_version, off);    RMPackUINT16(num_physical_streams, off);    for (int i = 0;  i < num_physical_streams; i++)        off = physical_streams[i].pack(off, len);    len = off-buf;    return off;}HX_INLINE UINT8*PhysicalStreamInfoHeader::unpack(UINT8* buf, UINT32 len){    if (!buf || !len)	return 0;    UINT8* off = buf;    size                 = RMUnpackUINT32(off);    object_version       = RMUnpackUINT16(off);    num_physical_streams = RMUnpackUINT16(off);    physical_streams = new PhysicalStreamInfo[num_physical_streams];    if (!physical_streams) return 0;    for (int i = 0;  i < num_physical_streams; i++)        off = physical_streams[i].unpack(off, len);    return off;}HX_INLINE u_int32get_rm_object_id(Byte* buffer, int buffer_len){    RMGenericHeader	gen_header;    if (gen_header.unpack(buffer, buffer_len) == 0)    {	return 0;    }    return gen_header.object_id;}#endif //_DEFINE_INLINE#if (defined( _WIN32 ) || defined( _WINDOWS )) && defined(_M_IX86)#pragma pack()//	Restore warnings#pragma warning( default : 4200 )#endif#ifdef _MACINTOSH#pragma options align=reset#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -