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
f50eaf86
Commit
f50eaf86
authored
5 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Frame添加cacheAbel接口
parent
2d460ff8
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
31 行增加
和
19 行删除
+31
-19
src/Common/Device.cpp
+3
-3
src/Extension/AAC.h
+3
-3
src/Extension/Frame.h
+14
-2
src/Extension/H264.h
+5
-5
src/Extension/H265.h
+3
-3
src/MediaFile/MediaReader.cpp
+2
-2
src/Player/PlayerProxy.cpp
+1
-1
没有找到文件。
src/Common/Device.cpp
查看文件 @
f50eaf86
...
...
@@ -103,7 +103,7 @@ void DevChannel::inputH264(const char* pcData, int iDataLen, uint32_t dts,uint32
}
else
{
prefixeSize
=
0
;
}
inputFrame
(
std
::
make_shared
<
H264FrameNoC
opy
Able
>
((
char
*
)
pcData
,
iDataLen
,
dts
,
pts
,
prefixeSize
));
inputFrame
(
std
::
make_shared
<
H264FrameNoC
ache
Able
>
((
char
*
)
pcData
,
iDataLen
,
dts
,
pts
,
prefixeSize
));
}
void
DevChannel
::
inputAAC
(
const
char
*
pcData
,
int
iDataLen
,
uint32_t
uiStamp
,
bool
withAdtsHeader
)
{
...
...
@@ -119,12 +119,12 @@ void DevChannel::inputAAC(const char *pcDataWithoutAdts,int iDataLen, uint32_t u
uiStamp
=
(
uint32_t
)
_aTicker
[
1
].
elapsedTime
();
}
if
(
pcAdtsHeader
+
7
==
pcDataWithoutAdts
){
inputFrame
(
std
::
make_shared
<
AACFrameNoC
opy
Able
>
((
char
*
)
pcDataWithoutAdts
-
7
,
iDataLen
+
7
,
uiStamp
,
7
));
inputFrame
(
std
::
make_shared
<
AACFrameNoC
ache
Able
>
((
char
*
)
pcDataWithoutAdts
-
7
,
iDataLen
+
7
,
uiStamp
,
7
));
}
else
{
char
*
dataWithAdts
=
new
char
[
iDataLen
+
7
];
memcpy
(
dataWithAdts
,
pcAdtsHeader
,
7
);
memcpy
(
dataWithAdts
+
7
,
pcDataWithoutAdts
,
iDataLen
);
inputFrame
(
std
::
make_shared
<
AACFrameNoC
opy
Able
>
(
dataWithAdts
,
iDataLen
+
7
,
uiStamp
,
7
));
inputFrame
(
std
::
make_shared
<
AACFrameNoC
ache
Able
>
(
dataWithAdts
,
iDataLen
+
7
,
uiStamp
,
7
));
delete
[]
dataWithAdts
;
}
}
...
...
This diff is collapsed.
Click to expand it.
src/Extension/AAC.h
查看文件 @
f50eaf86
...
...
@@ -105,11 +105,11 @@ public:
uint32_t
iPrefixSize
=
7
;
}
;
class
AACFrameNoC
opyAble
:
public
FrameNoCopy
Able
{
class
AACFrameNoC
acheAble
:
public
FrameNoCache
Able
{
public
:
typedef
std
::
shared_ptr
<
AACFrameNoC
opy
Able
>
Ptr
;
typedef
std
::
shared_ptr
<
AACFrameNoC
ache
Able
>
Ptr
;
AACFrameNoC
opy
Able
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
int
prefixeSize
=
7
){
AACFrameNoC
ache
Able
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
int
prefixeSize
=
7
){
_ptr
=
ptr
;
_size
=
size
;
_dts
=
dts
;
...
...
This diff is collapsed.
Click to expand it.
src/Extension/Frame.h
查看文件 @
f50eaf86
...
...
@@ -116,6 +116,11 @@ public:
* @return
*/
virtual
bool
keyFrame
()
const
=
0
;
/**
* 是否可以缓存
*/
virtual
bool
cacheAble
()
const
{
return
true
;
}
};
/**
...
...
@@ -281,9 +286,9 @@ private:
map
<
void
*
,
FrameWriterInterface
::
Ptr
>
_delegateMap
;
};
class
FrameNoC
opy
Able
:
public
Frame
{
class
FrameNoC
ache
Able
:
public
Frame
{
public
:
typedef
std
::
shared_ptr
<
FrameNoC
opy
Able
>
Ptr
;
typedef
std
::
shared_ptr
<
FrameNoC
ache
Able
>
Ptr
;
char
*
data
()
const
override
{
return
_ptr
;
}
...
...
@@ -306,6 +311,13 @@ public:
return
_prefixSize
;
}
/**
* 该帧不可缓存
* @return
*/
bool
cacheAble
()
const
override
{
return
false
;
}
protected
:
char
*
_ptr
;
uint32_t
_size
;
...
...
This diff is collapsed.
Click to expand it.
src/Extension/H264.h
查看文件 @
f50eaf86
...
...
@@ -92,11 +92,11 @@ public:
};
class
H264FrameNoC
opyAble
:
public
FrameNoCopy
Able
{
class
H264FrameNoC
acheAble
:
public
FrameNoCache
Able
{
public
:
typedef
std
::
shared_ptr
<
H264FrameNoC
opy
Able
>
Ptr
;
typedef
std
::
shared_ptr
<
H264FrameNoC
ache
Able
>
Ptr
;
H264FrameNoC
opy
Able
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
uint32_t
pts
,
int
prefixeSize
=
4
){
H264FrameNoC
ache
Able
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
uint32_t
pts
,
int
prefixeSize
=
4
){
_ptr
=
ptr
;
_size
=
size
;
_dts
=
dts
;
...
...
@@ -117,13 +117,13 @@ public:
}
};
class
H264FrameSubFrame
:
public
H264FrameNoC
opy
Able
{
class
H264FrameSubFrame
:
public
H264FrameNoC
ache
Able
{
public
:
typedef
std
::
shared_ptr
<
H264FrameSubFrame
>
Ptr
;
H264FrameSubFrame
(
const
Frame
::
Ptr
&
strongRef
,
char
*
ptr
,
uint32_t
size
,
int
prefixeSize
)
:
H264FrameNoC
opy
Able
(
ptr
,
size
,
strongRef
->
dts
(),
strongRef
->
pts
(),
prefixeSize
){
int
prefixeSize
)
:
H264FrameNoC
ache
Able
(
ptr
,
size
,
strongRef
->
dts
(),
strongRef
->
pts
(),
prefixeSize
){
_strongRef
=
strongRef
;
}
private
:
...
...
This diff is collapsed.
Click to expand it.
src/Extension/H265.h
查看文件 @
f50eaf86
...
...
@@ -121,11 +121,11 @@ public:
};
class
H265FrameNoC
opyAble
:
public
FrameNoCopy
Able
{
class
H265FrameNoC
acheAble
:
public
FrameNoCache
Able
{
public
:
typedef
std
::
shared_ptr
<
H265FrameNoC
opy
Able
>
Ptr
;
typedef
std
::
shared_ptr
<
H265FrameNoC
ache
Able
>
Ptr
;
H265FrameNoC
opy
Able
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
uint32_t
pts
,
int
prefixeSize
=
4
)
{
H265FrameNoC
ache
Able
(
char
*
ptr
,
uint32_t
size
,
uint32_t
dts
,
uint32_t
pts
,
int
prefixeSize
=
4
)
{
_ptr
=
ptr
;
_size
=
size
;
_dts
=
dts
;
...
...
This diff is collapsed.
Click to expand it.
src/MediaFile/MediaReader.cpp
查看文件 @
f50eaf86
...
...
@@ -261,11 +261,11 @@ inline bool MediaReader::readAudioSample(int iTimeInc,bool justSeekSyncFrame) {
}
inline
void
MediaReader
::
writeH264
(
uint8_t
*
pucData
,
int
iLen
,
uint32_t
dts
,
uint32_t
pts
)
{
_mediaMuxer
->
inputFrame
(
std
::
make_shared
<
H264FrameNoC
opy
Able
>
((
char
*
)
pucData
,
iLen
,
dts
,
pts
));
_mediaMuxer
->
inputFrame
(
std
::
make_shared
<
H264FrameNoC
ache
Able
>
((
char
*
)
pucData
,
iLen
,
dts
,
pts
));
}
inline
void
MediaReader
::
writeAAC
(
uint8_t
*
pucData
,
int
iLen
,
uint32_t
uiStamp
)
{
_mediaMuxer
->
inputFrame
(
std
::
make_shared
<
AACFrameNoC
opy
Able
>
((
char
*
)
pucData
,
iLen
,
uiStamp
));
_mediaMuxer
->
inputFrame
(
std
::
make_shared
<
AACFrameNoC
ache
Able
>
((
char
*
)
pucData
,
iLen
,
uiStamp
));
}
inline
MP4SampleId
MediaReader
::
getVideoSampleId
(
int
iTimeInc
)
{
...
...
This diff is collapsed.
Click to expand it.
src/Player/PlayerProxy.cpp
查看文件 @
f50eaf86
...
...
@@ -212,7 +212,7 @@ public:
auto
iAudioIndex
=
frame
->
stamp
()
/
MUTE_ADTS_DATA_MS
;
if
(
_iAudioIndex
!=
iAudioIndex
){
_iAudioIndex
=
iAudioIndex
;
auto
aacFrame
=
std
::
make_shared
<
AACFrameNoC
opy
Able
>
((
char
*
)
MUTE_ADTS_DATA
,
auto
aacFrame
=
std
::
make_shared
<
AACFrameNoC
ache
Able
>
((
char
*
)
MUTE_ADTS_DATA
,
MUTE_ADTS_DATA_LEN
,
_iAudioIndex
*
MUTE_ADTS_DATA_MS
);
FrameRingInterfaceDelegate
::
inputFrame
(
aacFrame
);
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论