Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2016-09-09 14:14:12 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
0015b303a6b30687d1f1310a457362f67ab1d3ec
0015b303
1 parent
4c6c2c28
librtmp: refine comment for NALU process.
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
6 行增加
和
5 行删除
trunk/research/librtmp/srs_h264_raw_publish.c
trunk/src/libs/srs_librtmp.cpp
trunk/research/librtmp/srs_h264_raw_publish.c
查看文件 @
0015b30
...
...
@@ -181,11 +181,11 @@ int main(int argc, char** argv)
// 5bits, 7.3.1 NAL unit syntax,
// H.264-AVC-ISO_IEC_14496-10.pdf, page 44.
// 7: SPS, 8: PPS, 5: I Frame, 1: P Frame, 9: AUD
// 7: SPS, 8: PPS, 5: I Frame, 1: P Frame, 9: AUD
, 6: SEI
u_int8_t
nut
=
(
char
)
data
[
nb_start_code
]
&
0x1f
;
srs_human_trace
(
"sent packet: type=%s, time=%d, size=%d, fps=%.2f, b[%d]=%#x(%s)"
,
srs_human_flv_tag_type2string
(
SRS_RTMP_TYPE_VIDEO
),
dts
,
size
,
fps
,
nb_start_code
,
(
char
)
data
[
nb_start_code
],
(
nut
==
7
?
"SPS"
:
(
nut
==
8
?
"PPS"
:
(
nut
==
5
?
"I"
:
(
nut
==
1
?
"P"
:
(
nut
==
9
?
"AUD"
:
"Unknown"
))))));
(
nut
==
7
?
"SPS"
:
(
nut
==
8
?
"PPS"
:
(
nut
==
5
?
"I"
:
(
nut
==
1
?
"P"
:
(
nut
==
9
?
"AUD"
:
(
nut
==
6
?
"SEI"
:
"Unknown"
)
))))));
// @remark, when use encode device, it not need to sleep.
if
(
count
==
10
)
{
...
...
trunk/src/libs/srs_librtmp.cpp
查看文件 @
0015b30
...
...
@@ -1297,9 +1297,10 @@ int srs_write_h264_ipb_frame(Context* context,
// 5bits, 7.3.1 NAL unit syntax,
// H.264-AVC-ISO_IEC_14496-10.pdf, page 44.
// 5: I Frame, 1: P/B Frame
// @remark for rtmp, we only need to send the I/P/B frames to server,
// the aud is used for server to remux stream to annexb.
// TODO: FIXME: we must group NALUs between AUD to a frame.
// @remark we already group sps/pps to sequence header frame;
// for I/P NALU, we send them in isolate frame, each NALU in a frame;
// for other NALU, for example, AUD/SEI, we just ignore them, because
// AUD used in annexb to split frame, while SEI generally we can ignore it.
SrsAvcNaluType
nut
=
(
SrsAvcNaluType
)(
frame
[
0
]
&
0x1f
);
if
(
nut
!=
SrsAvcNaluTypeIDR
&&
nut
!=
SrsAvcNaluTypeNonIDR
)
{
return
ret
;
...
...
请
注册
或
登录
后发表评论