mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-28 16:01:20 +02:00
-add h265 to record and stream
This commit is contained in:
@@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#define ES_TYPE_MPEG12 0x02
|
#define ES_TYPE_MPEG12 0x02
|
||||||
#define ES_TYPE_AVC 0x1b
|
#define ES_TYPE_AVC 0x1b
|
||||||
|
#define ES_TYPE_HEVC 0x24
|
||||||
#define ES_TYPE_MPA 0x03
|
#define ES_TYPE_MPA 0x03
|
||||||
#define ES_TYPE_EAC3 0x7a
|
#define ES_TYPE_EAC3 0x7a
|
||||||
#define ES_TYPE_AC3 0x81
|
#define ES_TYPE_AC3 0x81
|
||||||
@@ -131,6 +132,10 @@ void CGenPsi::addPid(uint16_t pid, uint16_t pidtype, short isAC3, const char *da
|
|||||||
pcrpid=vpid=pid;
|
pcrpid=vpid=pid;
|
||||||
vtype = ES_TYPE_AVC;
|
vtype = ES_TYPE_AVC;
|
||||||
break;
|
break;
|
||||||
|
case EN_TYPE_HEVC:
|
||||||
|
pcrpid=vpid=pid;
|
||||||
|
vtype = ES_TYPE_HEVC;
|
||||||
|
break;
|
||||||
case EN_TYPE_PCR:
|
case EN_TYPE_PCR:
|
||||||
pcrpid=pid;
|
pcrpid=pid;
|
||||||
break;
|
break;
|
||||||
|
@@ -30,6 +30,7 @@
|
|||||||
#define EN_TYPE_AVC 0x04
|
#define EN_TYPE_AVC 0x04
|
||||||
#define EN_TYPE_DVBSUB 0x06
|
#define EN_TYPE_DVBSUB 0x06
|
||||||
#define EN_TYPE_AUDIO_EAC3 0x07
|
#define EN_TYPE_AUDIO_EAC3 0x07
|
||||||
|
#define EN_TYPE_HEVC 0x08
|
||||||
|
|
||||||
class CGenPsi
|
class CGenPsi
|
||||||
{
|
{
|
||||||
|
@@ -164,7 +164,7 @@ record_error_msg_t CRecordInstance::Start(CZapitChannel * channel)
|
|||||||
CGenPsi psi;
|
CGenPsi psi;
|
||||||
numpids = 0;
|
numpids = 0;
|
||||||
if (allpids.PIDs.vpid != 0){
|
if (allpids.PIDs.vpid != 0){
|
||||||
psi.addPid(allpids.PIDs.vpid, recMovieInfo->VideoType ? EN_TYPE_AVC : EN_TYPE_VIDEO, 0);
|
psi.addPid(allpids.PIDs.vpid, recMovieInfo->VideoType == 1 ? EN_TYPE_AVC : recMovieInfo->VideoType == 2 ? EN_TYPE_HEVC : EN_TYPE_VIDEO, 0);
|
||||||
if (allpids.PIDs.pcrpid && (allpids.PIDs.pcrpid != allpids.PIDs.vpid)) {
|
if (allpids.PIDs.pcrpid && (allpids.PIDs.pcrpid != allpids.PIDs.vpid)) {
|
||||||
psi.addPid(allpids.PIDs.pcrpid, EN_TYPE_PCR, 0);
|
psi.addPid(allpids.PIDs.pcrpid, EN_TYPE_PCR, 0);
|
||||||
apids[numpids++]=allpids.PIDs.pcrpid;
|
apids[numpids++]=allpids.PIDs.pcrpid;
|
||||||
|
@@ -437,7 +437,7 @@ void CStreamManager::AddPids(int fd, CZapitChannel *channel, stream_pids_t &pids
|
|||||||
for (stream_pids_t::iterator it = pids.begin(); it != pids.end(); ++it) {
|
for (stream_pids_t::iterator it = pids.begin(); it != pids.end(); ++it) {
|
||||||
if (*it == channel->getVideoPid()) {
|
if (*it == channel->getVideoPid()) {
|
||||||
printf("CStreamManager::Parse: genpsi vpid %x (%d)\n", *it, channel->type);
|
printf("CStreamManager::Parse: genpsi vpid %x (%d)\n", *it, channel->type);
|
||||||
psi.addPid(*it, channel->type ? EN_TYPE_AVC : EN_TYPE_VIDEO, 0);
|
psi.addPid(*it, channel->type == 1 ? EN_TYPE_AVC : channel->type == 2 ? EN_TYPE_HEVC : EN_TYPE_VIDEO, 0);
|
||||||
} else {
|
} else {
|
||||||
for (int i = 0; i < channel->getAudioChannelCount(); i++) {
|
for (int i = 0; i < channel->getAudioChannelCount(); i++) {
|
||||||
if (*it == channel->getAudioChannel(i)->pid) {
|
if (*it == channel->getAudioChannel(i)->pid) {
|
||||||
|
@@ -52,7 +52,7 @@ typedef SIservice * SIservicePtr;
|
|||||||
#define TIME_EIT_SCHEDULED_PAUSE 60 * 60
|
#define TIME_EIT_SCHEDULED_PAUSE 60 * 60
|
||||||
|
|
||||||
/* force EIT thread to change filter after, seconds */
|
/* force EIT thread to change filter after, seconds */
|
||||||
#define TIME_EIT_SKIPPING 180 // 90 <- Canal diditaal 19.2e -> ~100 seconds for 0x5x
|
#define TIME_EIT_SKIPPING 240 // 90 <- Canal diditaal 19.2e -> ~100 seconds for 0x5x
|
||||||
/* a little more time for freesat epg */
|
/* a little more time for freesat epg */
|
||||||
#define TIME_FSEIT_SKIPPING 240
|
#define TIME_FSEIT_SKIPPING 240
|
||||||
/* Timeout in ms for reading from dmx in EIT threads. Dont make this too long
|
/* Timeout in ms for reading from dmx in EIT threads. Dont make this too long
|
||||||
|
@@ -265,9 +265,10 @@ bool CPmt::ParseEsInfo(ElementaryStreamInfo *esinfo, CZapitChannel * const chann
|
|||||||
switch (stream_type) {
|
switch (stream_type) {
|
||||||
case 0x01:
|
case 0x01:
|
||||||
case 0x02:
|
case 0x02:
|
||||||
|
case 0x24:
|
||||||
case 0x1b: // AVC Video Stream (MPEG4 H264)
|
case 0x1b: // AVC Video Stream (MPEG4 H264)
|
||||||
channel->setVideoPid(esinfo->getPid());
|
channel->setVideoPid(esinfo->getPid());
|
||||||
channel->type = (stream_type == 0x1b); //FIXME
|
channel->type = (stream_type == 0x1b) ? 1 : (stream_type == 0x24) ? 2 : 0; //FIXME
|
||||||
printf("[pmt] vpid %04x stream %d type %d\n", esinfo->getPid(), stream_type, channel->type);
|
printf("[pmt] vpid %04x stream %d type %d\n", esinfo->getPid(), stream_type, channel->type);
|
||||||
break;
|
break;
|
||||||
case 0x03:
|
case 0x03:
|
||||||
|
Reference in New Issue
Block a user