Added preliminary HEVC support (no packetizer - only MPEG-TS passthrough)

This commit is contained in:
Jaroslav Kysela 2014-07-05 08:58:05 +02:00
parent 3f94def343
commit 89324208df
6 changed files with 18 additions and 3 deletions

View file

@ -45,7 +45,8 @@ extern const idclass_t esfilter_class_ca;
extern const idclass_t esfilter_class_other;
#define ESF_MASK_VIDEO \
(SCT_MASK(SCT_MPEG2VIDEO) | SCT_MASK(SCT_H264) | SCT_MASK(SCT_VP8))
(SCT_MASK(SCT_MPEG2VIDEO) | SCT_MASK(SCT_H264) | SCT_MASK(SCT_VP8) | \
SCT_MASK(SCT_HEVC))
#define ESF_MASK_AUDIO \
(SCT_MASK(SCT_MPEG2AUDIO) | SCT_MASK(SCT_AC3) | SCT_MASK(SCT_AAC) | \

View file

@ -1383,6 +1383,10 @@ psi_parse_pmt
hts_stream_type = SCT_H264;
break;
case 0x24:
hts_stream_type = SCT_HEVC;
break;
default:
break;
}

View file

@ -136,6 +136,10 @@ pass_muxer_build_pmt(const streaming_start_t *ss, uint8_t *buf0, int maxlen,
c = 0x1b;
break;
case SCT_HEVC:
c = 0x24;
break;
case SCT_AC3:
c = 0x81;
break;

View file

@ -273,6 +273,10 @@ mk_build_tracks(mk_mux_t *mkm, const streaming_start_t *ss)
codec_id = "V_VP8";
break;
case SCT_HEVC:
tvherror("mkv", "HEVC (H265) codec is not suppored for Matroska muxer (work in progress)");
continue;
case SCT_MPEG2AUDIO:
tracktype = 2;
codec_id = "A_MPEG/L2";

View file

@ -508,6 +508,7 @@ static struct strtab streamtypetab[] = {
{ "AAC", SCT_MP4A },
{ "VP8", SCT_VP8 },
{ "VORBIS", SCT_VORBIS },
{ "HEVC", SCT_HEVC },
};
/**

View file

@ -220,13 +220,14 @@ typedef enum {
SCT_MP4A,
SCT_VP8,
SCT_VORBIS,
SCT_LAST = SCT_VORBIS
SCT_HEVC,
SCT_LAST = SCT_HEVC
} streaming_component_type_t;
#define SCT_MASK(t) (1 << (t))
#define SCT_ISVIDEO(t) ((t) == SCT_MPEG2VIDEO || (t) == SCT_H264 || \
(t) == SCT_VP8)
(t) == SCT_VP8 || (t) == SCT_HEVC)
#define SCT_ISAUDIO(t) ((t) == SCT_MPEG2AUDIO || (t) == SCT_AC3 || \
(t) == SCT_AAC || (t) == SCT_MP4A || \