Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
73c8a5fa
Unverified
Commit
73c8a5fa
authored
Jul 29, 2023
by
夏楚
Committed by
GitHub
Jul 29, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
统一设置单字节对齐方式 (#2716)
__attribute__((packed)) 替换为 #pragma pack(push, 1)
parent
54194fe5
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
32 行增加
和
67 行删除
+32
-67
src/Common/macros.h
+0
-8
src/Extension/H264Rtp.cpp
+1
-5
src/Rtcp/Rtcp.h
+11
-15
src/Rtcp/RtcpFCI.cpp
+2
-2
src/Rtcp/RtcpFCI.h
+11
-11
src/Rtmp/Rtmp.h
+4
-15
src/Rtsp/Rtsp.h
+1
-5
webrtc/RtpExt.cpp
+2
-6
没有找到文件。
src/Common/macros.h
查看文件 @
73c8a5fa
...
@@ -32,14 +32,6 @@
...
@@ -32,14 +32,6 @@
#define __LITTLE_ENDIAN LITTLE_ENDIAN
#define __LITTLE_ENDIAN LITTLE_ENDIAN
#endif
#endif
#ifndef PACKED
#if !defined(_WIN32)
#define PACKED __attribute__((packed))
#else
#define PACKED
#endif //! defined(_WIN32)
#endif
#ifndef CHECK
#ifndef CHECK
#define CHECK(exp, ...) ::mediakit::Assert_ThrowCpp(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__)
#define CHECK(exp, ...) ::mediakit::Assert_ThrowCpp(!(exp), #exp, __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__)
#endif // CHECK
#endif // CHECK
...
...
src/Extension/H264Rtp.cpp
查看文件 @
73c8a5fa
...
@@ -13,9 +13,7 @@
...
@@ -13,9 +13,7 @@
namespace
mediakit
{
namespace
mediakit
{
#if defined(_WIN32)
#pragma pack(push, 1)
#pragma pack(push, 1)
#endif // defined(_WIN32)
class
FuFlags
{
class
FuFlags
{
public
:
public
:
...
@@ -30,11 +28,9 @@ public:
...
@@ -30,11 +28,9 @@ public:
unsigned
end_bit
:
1
;
unsigned
end_bit
:
1
;
unsigned
start_bit
:
1
;
unsigned
start_bit
:
1
;
#endif
#endif
}
PACKED
;
};
#if defined(_WIN32)
#pragma pack(pop)
#pragma pack(pop)
#endif // defined(_WIN32)
H264RtpDecoder
::
H264RtpDecoder
()
{
H264RtpDecoder
::
H264RtpDecoder
()
{
_frame
=
obtainFrame
();
_frame
=
obtainFrame
();
...
...
src/Rtcp/Rtcp.h
查看文件 @
73c8a5fa
...
@@ -19,9 +19,7 @@
...
@@ -19,9 +19,7 @@
namespace
mediakit
{
namespace
mediakit
{
#if defined(_WIN32)
#pragma pack(push, 1)
#pragma pack(push, 1)
#endif // defined(_WIN32)
// http://www.networksorcery.com/enp/protocol/rtcp.htm
// http://www.networksorcery.com/enp/protocol/rtcp.htm
#define RTCP_PT_MAP(XX) \
#define RTCP_PT_MAP(XX) \
...
@@ -235,7 +233,7 @@ private:
...
@@ -235,7 +233,7 @@ private:
*/
*/
void
net2Host
(
size_t
size
);
void
net2Host
(
size_t
size
);
}
PACKED
;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
...
@@ -272,7 +270,7 @@ private:
...
@@ -272,7 +270,7 @@ private:
* 网络字节序转换为主机字节序
* 网络字节序转换为主机字节序
*/
*/
void
net2Host
();
void
net2Host
();
}
PACKED
;
};
/*
/*
* 6.4.1 SR: Sender Report RTCP Packet
* 6.4.1 SR: Sender Report RTCP Packet
...
@@ -371,7 +369,7 @@ private:
...
@@ -371,7 +369,7 @@ private:
* @param size 字节长度,防止内存越界
* @param size 字节长度,防止内存越界
*/
*/
void
net2Host
(
size_t
size
);
void
net2Host
(
size_t
size
);
}
PACKED
;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
...
@@ -441,7 +439,7 @@ private:
...
@@ -441,7 +439,7 @@ private:
*/
*/
std
::
string
dumpString
()
const
;
std
::
string
dumpString
()
const
;
}
PACKED
;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
...
@@ -512,7 +510,7 @@ private:
...
@@ -512,7 +510,7 @@ private:
* 网络字节序转换为主机字节序
* 网络字节序转换为主机字节序
*/
*/
void
net2Host
();
void
net2Host
();
}
PACKED
;
};
// Source description
// Source description
class
RtcpSdes
:
public
RtcpHeader
{
class
RtcpSdes
:
public
RtcpHeader
{
...
@@ -548,7 +546,7 @@ private:
...
@@ -548,7 +546,7 @@ private:
* @param size 字节长度,防止内存越界
* @param size 字节长度,防止内存越界
*/
*/
void
net2Host
(
size_t
size
);
void
net2Host
(
size_t
size
);
}
PACKED
;
};
// https://tools.ietf.org/html/rfc4585#section-6.1
// https://tools.ietf.org/html/rfc4585#section-6.1
// 6.1. Common Packet Format for Feedback Messages
// 6.1. Common Packet Format for Feedback Messages
...
@@ -624,7 +622,7 @@ private:
...
@@ -624,7 +622,7 @@ private:
private
:
private
:
static
std
::
shared_ptr
<
RtcpFB
>
create_l
(
RtcpType
type
,
int
fmt
,
const
void
*
fci
,
size_t
fci_len
);
static
std
::
shared_ptr
<
RtcpFB
>
create_l
(
RtcpType
type
,
int
fmt
,
const
void
*
fci
,
size_t
fci_len
);
}
PACKED
;
};
// BYE
// BYE
/*
/*
...
@@ -684,7 +682,7 @@ private:
...
@@ -684,7 +682,7 @@ private:
* @param size 字节长度,防止内存越界
* @param size 字节长度,防止内存越界
*/
*/
void
net2Host
(
size_t
size
);
void
net2Host
(
size_t
size
);
}
PACKED
;
};
/*
/*
0 1 2 3
0 1 2 3
...
@@ -738,7 +736,7 @@ private:
...
@@ -738,7 +736,7 @@ private:
*/
*/
void
net2Host
(
size_t
size
);
void
net2Host
(
size_t
size
);
}
PACKED
;
};
/*
/*
...
@@ -777,7 +775,7 @@ private:
...
@@ -777,7 +775,7 @@ private:
* @param size 字节长度,防止内存越界
* @param size 字节长度,防止内存越界
*/
*/
void
net2Host
();
void
net2Host
();
}
PACKED
;
};
class
RtcpXRDLRR
:
public
RtcpHeader
{
class
RtcpXRDLRR
:
public
RtcpHeader
{
public
:
public
:
...
@@ -814,11 +812,9 @@ private:
...
@@ -814,11 +812,9 @@ private:
*/
*/
void
net2Host
(
size_t
size
);
void
net2Host
(
size_t
size
);
}
PACKED
;
};
#if defined(_WIN32)
#pragma pack(pop)
#pragma pack(pop)
#endif // defined(_WIN32)
}
// namespace mediakit
}
// namespace mediakit
#endif // ZLMEDIAKIT_RTCP_H
#endif // ZLMEDIAKIT_RTCP_H
src/Rtcp/RtcpFCI.cpp
查看文件 @
73c8a5fa
...
@@ -240,7 +240,7 @@ public:
...
@@ -240,7 +240,7 @@ public:
RunLengthChunk
(
SymbolStatus
status
,
uint16_t
run_length
);
RunLengthChunk
(
SymbolStatus
status
,
uint16_t
run_length
);
// 打印本对象
// 打印本对象
string
dumpString
()
const
;
string
dumpString
()
const
;
}
PACKED
;
};
RunLengthChunk
::
RunLengthChunk
(
SymbolStatus
status
,
uint16_t
run_length
)
{
RunLengthChunk
::
RunLengthChunk
(
SymbolStatus
status
,
uint16_t
run_length
)
{
type
=
0
;
type
=
0
;
...
@@ -291,7 +291,7 @@ public:
...
@@ -291,7 +291,7 @@ public:
StatusVecChunk
(
bool
symbol_bit
,
const
vector
<
SymbolStatus
>
&
status
);
StatusVecChunk
(
bool
symbol_bit
,
const
vector
<
SymbolStatus
>
&
status
);
// 打印本对象
// 打印本对象
string
dumpString
()
const
;
string
dumpString
()
const
;
}
PACKED
;
};
StatusVecChunk
::
StatusVecChunk
(
bool
symbol_bit
,
const
vector
<
SymbolStatus
>
&
status
)
{
StatusVecChunk
::
StatusVecChunk
(
bool
symbol_bit
,
const
vector
<
SymbolStatus
>
&
status
)
{
CHECK
(
status
.
size
()
<<
symbol_bit
<=
14
);
CHECK
(
status
.
size
()
<<
symbol_bit
<=
14
);
...
...
src/Rtcp/RtcpFCI.h
查看文件 @
73c8a5fa
...
@@ -55,7 +55,7 @@ public:
...
@@ -55,7 +55,7 @@ public:
private
:
private
:
uint32_t
data
;
uint32_t
data
;
}
PACKED
;
};
#if 0
#if 0
//PSFB fmt = 3
//PSFB fmt = 3
...
@@ -97,7 +97,7 @@ public:
...
@@ -97,7 +97,7 @@ public:
uint8_t
padding
;
uint8_t
padding
;
static
size_t
constexpr
kSize
=
8
;
static
size_t
constexpr
kSize
=
8
;
}
PACKED
;
};
#endif
#endif
// PSFB fmt = 4
// PSFB fmt = 4
...
@@ -125,7 +125,7 @@ private:
...
@@ -125,7 +125,7 @@ private:
uint32_t
ssrc
;
uint32_t
ssrc
;
uint8_t
seq_number
;
uint8_t
seq_number
;
uint8_t
reserved
[
3
];
uint8_t
reserved
[
3
];
}
PACKED
;
};
#if 0
#if 0
//PSFB fmt = 5
//PSFB fmt = 5
...
@@ -147,7 +147,7 @@ public:
...
@@ -147,7 +147,7 @@ public:
private:
private:
uint8_t data[kSize];
uint8_t data[kSize];
}
PACKED
;
};
//PSFB fmt = 6
//PSFB fmt = 6
//https://tools.ietf.org/html/rfc5104#section-4.3.2.1
//https://tools.ietf.org/html/rfc5104#section-4.3.2.1
...
@@ -160,7 +160,7 @@ private:
...
@@ -160,7 +160,7 @@ private:
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
class FCI_TSTN : public FCI_TSTR{
class FCI_TSTN : public FCI_TSTR{
}
PACKED
;
};
//PSFB fmt = 7
//PSFB fmt = 7
//https://tools.ietf.org/html/rfc5104#section-4.3.4.1
//https://tools.ietf.org/html/rfc5104#section-4.3.4.1
...
@@ -183,7 +183,7 @@ public:
...
@@ -183,7 +183,7 @@ public:
private:
private:
uint8_t data[kSize];
uint8_t data[kSize];
}
PACKED
;
};
#endif
#endif
...
@@ -233,7 +233,7 @@ private:
...
@@ -233,7 +233,7 @@ private:
// SSRC feedback (32 bits) Consists of one or more SSRC entries which
// SSRC feedback (32 bits) Consists of one or more SSRC entries which
// this feedback message applies to.
// this feedback message applies to.
uint32_t
ssrc_feedback
[
1
];
uint32_t
ssrc_feedback
[
1
];
}
PACKED
;
};
/////////////////////////////////////////// RTPFB ////////////////////////////////////////////////////
/////////////////////////////////////////// RTPFB ////////////////////////////////////////////////////
...
@@ -265,7 +265,7 @@ private:
...
@@ -265,7 +265,7 @@ private:
uint16_t
pid
;
uint16_t
pid
;
// bitmask of following lost packets (BLP): 16 bits
// bitmask of following lost packets (BLP): 16 bits
uint16_t
blp
;
uint16_t
blp
;
}
PACKED
;
};
#if 0
#if 0
//RTPFB fmt = 3
//RTPFB fmt = 3
...
@@ -300,7 +300,7 @@ private:
...
@@ -300,7 +300,7 @@ private:
// to the description in section 4.2.1.2. The value is an
// to the description in section 4.2.1.2. The value is an
// unsigned integer [0..511].
// unsigned integer [0..511].
uint32_t max_tbr;
uint32_t max_tbr;
}
PACKED
;
};
//RTPFB fmt = 4
//RTPFB fmt = 4
// https://tools.ietf.org/html/rfc5104#section-4.2.2.1
// https://tools.ietf.org/html/rfc5104#section-4.2.2.1
...
@@ -314,7 +314,7 @@ private:
...
@@ -314,7 +314,7 @@ private:
class FCI_TMMBN : public FCI_TMMBR{
class FCI_TMMBN : public FCI_TMMBR{
public:
public:
}
PACKED
;
};
#endif
#endif
enum
class
SymbolStatus
:
uint8_t
{
enum
class
SymbolStatus
:
uint8_t
{
...
@@ -374,7 +374,7 @@ private:
...
@@ -374,7 +374,7 @@ private:
uint8_t
ref_time
[
3
];
uint8_t
ref_time
[
3
];
// feedback packet count,反馈包号,本包是第几个transport-cc包,每次加1 |
// feedback packet count,反馈包号,本包是第几个transport-cc包,每次加1 |
uint8_t
fb_pkt_count
;
uint8_t
fb_pkt_count
;
}
PACKED
;
};
}
// namespace mediakit
}
// namespace mediakit
#endif // ZLMEDIAKIT_RTCPFCI_H
#endif // ZLMEDIAKIT_RTCPFCI_H
src/Rtmp/Rtmp.h
查看文件 @
73c8a5fa
...
@@ -18,13 +18,6 @@
...
@@ -18,13 +18,6 @@
#include "Network/Buffer.h"
#include "Network/Buffer.h"
#include "Extension/Track.h"
#include "Extension/Track.h"
#if !defined(_WIN32)
#define PACKED __attribute__((packed))
#else
#define PACKED
#endif //!defined(_WIN32)
#define DEFAULT_CHUNK_LEN 128
#define DEFAULT_CHUNK_LEN 128
#define HANDSHAKE_PLAINTEXT 0x03
#define HANDSHAKE_PLAINTEXT 0x03
#define RANDOM_LEN (1536 - 8)
#define RANDOM_LEN (1536 - 8)
...
@@ -65,9 +58,7 @@
...
@@ -65,9 +58,7 @@
namespace
mediakit
{
namespace
mediakit
{
#if defined(_WIN32)
#pragma pack(push, 1)
#pragma pack(push, 1)
#endif // defined(_WIN32)
class
RtmpHandshake
{
class
RtmpHandshake
{
public
:
public
:
...
@@ -81,7 +72,7 @@ public:
...
@@ -81,7 +72,7 @@ public:
void
create_complex_c0c1
();
void
create_complex_c0c1
();
}
PACKED
;
};
class
RtmpHeader
{
class
RtmpHeader
{
public
:
public
:
...
@@ -97,7 +88,7 @@ public:
...
@@ -97,7 +88,7 @@ public:
uint8_t
body_size
[
3
];
uint8_t
body_size
[
3
];
uint8_t
type_id
;
uint8_t
type_id
;
uint8_t
stream_index
[
4
];
/* Note, this is little-endian while others are BE */
uint8_t
stream_index
[
4
];
/* Note, this is little-endian while others are BE */
}
PACKED
;
};
class
FLVHeader
{
class
FLVHeader
{
public
:
public
:
...
@@ -130,7 +121,7 @@ public:
...
@@ -130,7 +121,7 @@ public:
uint32_t
length
;
uint32_t
length
;
//固定为0
//固定为0
uint32_t
previous_tag_size0
;
uint32_t
previous_tag_size0
;
}
PACKED
;
};
class
RtmpTagHeader
{
class
RtmpTagHeader
{
public
:
public
:
...
@@ -139,11 +130,9 @@ public:
...
@@ -139,11 +130,9 @@ public:
uint8_t
timestamp
[
3
]
=
{
0
};
uint8_t
timestamp
[
3
]
=
{
0
};
uint8_t
timestamp_ex
=
0
;
uint8_t
timestamp_ex
=
0
;
uint8_t
streamid
[
3
]
=
{
0
};
/* Always 0. */
uint8_t
streamid
[
3
]
=
{
0
};
/* Always 0. */
}
PACKED
;
};
#if defined(_WIN32)
#pragma pack(pop)
#pragma pack(pop)
#endif // defined(_WIN32)
class
RtmpPacket
:
public
toolkit
::
Buffer
{
class
RtmpPacket
:
public
toolkit
::
Buffer
{
public
:
public
:
...
...
src/Rtsp/Rtsp.h
查看文件 @
73c8a5fa
...
@@ -65,9 +65,7 @@ typedef enum {
...
@@ -65,9 +65,7 @@ typedef enum {
};
// namespace Rtsp
};
// namespace Rtsp
#if defined(_WIN32)
#pragma pack(push, 1)
#pragma pack(push, 1)
#endif // defined(_WIN32)
class
RtpHeader
{
class
RtpHeader
{
public
:
public
:
...
@@ -132,11 +130,9 @@ private:
...
@@ -132,11 +130,9 @@ private:
size_t
getPayloadOffset
()
const
;
size_t
getPayloadOffset
()
const
;
// 返回padding长度
// 返回padding长度
size_t
getPaddingSize
(
size_t
rtp_size
)
const
;
size_t
getPaddingSize
(
size_t
rtp_size
)
const
;
}
PACKED
;
};
#if defined(_WIN32)
#pragma pack(pop)
#pragma pack(pop)
#endif // defined(_WIN32)
// 此rtp为rtp over tcp形式,需要忽略前4个字节
// 此rtp为rtp over tcp形式,需要忽略前4个字节
class
RtpPacket
:
public
toolkit
::
BufferRaw
{
class
RtpPacket
:
public
toolkit
::
BufferRaw
{
...
...
webrtc/RtpExt.cpp
查看文件 @
73c8a5fa
...
@@ -11,9 +11,7 @@
...
@@ -11,9 +11,7 @@
#include "RtpExt.h"
#include "RtpExt.h"
#include "Sdp.h"
#include "Sdp.h"
#if defined(_WIN32)
#pragma pack(push, 1)
#pragma pack(push, 1)
#endif // defined(_WIN32)
using
namespace
std
;
using
namespace
std
;
using
namespace
toolkit
;
using
namespace
toolkit
;
...
@@ -51,7 +49,7 @@ private:
...
@@ -51,7 +49,7 @@ private:
uint8_t
id
:
4
;
uint8_t
id
:
4
;
#endif
#endif
uint8_t
data
[
1
];
uint8_t
data
[
1
];
}
PACKED
;
};
//0 1 2 3
//0 1 2 3
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
...
@@ -77,11 +75,9 @@ private:
...
@@ -77,11 +75,9 @@ private:
uint8_t
id
;
uint8_t
id
;
uint8_t
len
;
uint8_t
len
;
uint8_t
data
[
1
];
uint8_t
data
[
1
];
}
PACKED
;
};
#if defined(_WIN32)
#pragma pack(pop)
#pragma pack(pop)
#endif // defined(_WIN32)
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论