mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-26 20:47:08 +08:00
添加H265相关接口
This commit is contained in:
parent
0bff2ad176
commit
a30a83d665
@ -32,6 +32,7 @@
|
|||||||
#include "Util/TimeTicker.h"
|
#include "Util/TimeTicker.h"
|
||||||
#include "Extension/AAC.h"
|
#include "Extension/AAC.h"
|
||||||
#include "Extension/H264.h"
|
#include "Extension/H264.h"
|
||||||
|
#include "Extension/H265.h"
|
||||||
|
|
||||||
using namespace toolkit;
|
using namespace toolkit;
|
||||||
|
|
||||||
@ -106,6 +107,24 @@ void DevChannel::inputH264(const char* pcData, int iDataLen, uint32_t dts,uint32
|
|||||||
inputFrame(std::make_shared<H264FrameNoCacheAble>((char *)pcData,iDataLen,dts,pts,prefixeSize));
|
inputFrame(std::make_shared<H264FrameNoCacheAble>((char *)pcData,iDataLen,dts,pts,prefixeSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DevChannel::inputH265(const char* pcData, int iDataLen, uint32_t dts,uint32_t pts) {
|
||||||
|
if(dts == 0){
|
||||||
|
dts = (uint32_t)_aTicker[0].elapsedTime();
|
||||||
|
}
|
||||||
|
if(pts == 0){
|
||||||
|
pts = dts;
|
||||||
|
}
|
||||||
|
int prefixeSize;
|
||||||
|
if (memcmp("\x00\x00\x00\x01", pcData, 4) == 0) {
|
||||||
|
prefixeSize = 4;
|
||||||
|
} else if (memcmp("\x00\x00\x01", pcData, 3) == 0) {
|
||||||
|
prefixeSize = 3;
|
||||||
|
} else {
|
||||||
|
prefixeSize = 0;
|
||||||
|
}
|
||||||
|
inputFrame(std::make_shared<H265FrameNoCacheAble>((char *)pcData,iDataLen,dts,pts,prefixeSize));
|
||||||
|
}
|
||||||
|
|
||||||
void DevChannel::inputAAC(const char* pcData, int iDataLen, uint32_t uiStamp,bool withAdtsHeader) {
|
void DevChannel::inputAAC(const char* pcData, int iDataLen, uint32_t uiStamp,bool withAdtsHeader) {
|
||||||
if(withAdtsHeader){
|
if(withAdtsHeader){
|
||||||
inputAAC(pcData+7,iDataLen-7,uiStamp,pcData);
|
inputAAC(pcData+7,iDataLen-7,uiStamp,pcData);
|
||||||
@ -135,6 +154,11 @@ void DevChannel::initVideo(const VideoInfo& info) {
|
|||||||
addTrack(std::make_shared<H264Track>());
|
addTrack(std::make_shared<H264Track>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DevChannel::initH265Video(const VideoInfo &info){
|
||||||
|
_video = std::make_shared<VideoInfo>(info);
|
||||||
|
addTrack(std::make_shared<H265Track>());
|
||||||
|
}
|
||||||
|
|
||||||
void DevChannel::initAudio(const AudioInfo& info) {
|
void DevChannel::initAudio(const AudioInfo& info) {
|
||||||
_audio = std::make_shared<AudioInfo>(info);
|
_audio = std::make_shared<AudioInfo>(info);
|
||||||
addTrack(std::make_shared<AACTrack>());
|
addTrack(std::make_shared<AACTrack>());
|
||||||
|
@ -88,6 +88,12 @@ public:
|
|||||||
*/
|
*/
|
||||||
void initVideo(const VideoInfo &info);
|
void initVideo(const VideoInfo &info);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化h265视频Track
|
||||||
|
* @param info
|
||||||
|
*/
|
||||||
|
void initH265Video(const VideoInfo &info);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化aac音频Track
|
* 初始化aac音频Track
|
||||||
* 相当于MultiMediaSourceMuxer::addTrack(AACTrack::Ptr );
|
* 相当于MultiMediaSourceMuxer::addTrack(AACTrack::Ptr );
|
||||||
@ -104,6 +110,15 @@ public:
|
|||||||
*/
|
*/
|
||||||
void inputH264(const char *pcData, int iDataLen, uint32_t dts,uint32_t pts = 0);
|
void inputH264(const char *pcData, int iDataLen, uint32_t dts,uint32_t pts = 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输入265帧
|
||||||
|
* @param pcData 265单帧数据指针
|
||||||
|
* @param iDataLen 数据指针长度
|
||||||
|
* @param dts 解码时间戳,单位毫秒;等于0时内部会自动生成时间戳
|
||||||
|
* @param pts 播放时间戳,单位毫秒;等于0时内部会赋值为dts
|
||||||
|
*/
|
||||||
|
void inputH265(const char *pcData, int iDataLen, uint32_t dts,uint32_t pts = 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 输入可能带adts头的aac帧
|
* 输入可能带adts头的aac帧
|
||||||
* @param pcDataWithAdts 可能带adts头的aac帧
|
* @param pcDataWithAdts 可能带adts头的aac帧
|
||||||
|
Loading…
Reference in New Issue
Block a user