Write DVB subtitles as S_DVBSUB in matroska muxer
This commit is contained in:
parent
a8138f8537
commit
10cddffce5
1 changed files with 20 additions and 7 deletions
|
@ -166,6 +166,7 @@ mk_build_tracks(mk_mux_t *mkm, const struct streaming_start *ss)
|
|||
int i, tracktype;
|
||||
htsbuf_queue_t *q = htsbuf_queue_alloc(0), *t;
|
||||
int tracknum = 0;
|
||||
uint8_t buf4[4];
|
||||
|
||||
mkm->tracks = calloc(1, sizeof(mk_track) * ss->ss_num_components);
|
||||
mkm->ntracks = ss->ss_num_components;
|
||||
|
@ -209,6 +210,11 @@ mk_build_tracks(mk_mux_t *mkm, const struct streaming_start *ss)
|
|||
codec_id = "A_AAC";
|
||||
break;
|
||||
|
||||
case SCT_DVBSUB:
|
||||
tracktype = 0x11;
|
||||
codec_id = "S_DVBSUB";
|
||||
break;
|
||||
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
@ -228,16 +234,23 @@ mk_build_tracks(mk_mux_t *mkm, const struct streaming_start *ss)
|
|||
if(ssc->ssc_lang[0])
|
||||
ebml_append_string(t, 0x22b59c, ssc->ssc_lang);
|
||||
|
||||
if(ssc->ssc_gh) {
|
||||
switch(ssc->ssc_type) {
|
||||
case SCT_H264:
|
||||
case SCT_MPEG2VIDEO:
|
||||
case SCT_AAC:
|
||||
switch(ssc->ssc_type) {
|
||||
case SCT_H264:
|
||||
case SCT_MPEG2VIDEO:
|
||||
case SCT_AAC:
|
||||
if(ssc->ssc_gh)
|
||||
ebml_append_bin(t, 0x63a2,
|
||||
pktbuf_ptr(ssc->ssc_gh),
|
||||
pktbuf_len(ssc->ssc_gh));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case SCT_DVBSUB:
|
||||
buf4[0] = ssc->ssc_composition_id >> 8;
|
||||
buf4[1] = ssc->ssc_composition_id;
|
||||
buf4[2] = ssc->ssc_ancillary_id >> 8;
|
||||
buf4[3] = ssc->ssc_ancillary_id;
|
||||
ebml_append_bin(t, 0x63a2, buf4, 4);
|
||||
break;
|
||||
}
|
||||
|
||||
if(ssc->ssc_frameduration) {
|
||||
|
|
Loading…
Add table
Reference in a new issue