From ab5aab60a98190ebee926716c9dd0ad256851d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 19 Jan 2016 17:08:50 +0000 Subject: [PATCH] mpegtsmux: add support for H.265/HEVC video https://bugzilla.gnome.org/show_bug.cgi?id=744367 --- gst/mpegtsmux/mpegtsmux.c | 4 ++++ gst/mpegtsmux/tsmux/tsmuxstream.c | 1 + gst/mpegtsmux/tsmux/tsmuxstream.h | 1 + 3 files changed, 6 insertions(+) diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c index 1d208a7124..cd07338891 100644 --- a/gst/mpegtsmux/mpegtsmux.c +++ b/gst/mpegtsmux/mpegtsmux.c @@ -127,6 +127,8 @@ static GstStaticPadTemplate mpegtsmux_sink_factory = "video/x-dirac;" "video/x-h264,stream-format=(string)byte-stream," "alignment=(string){au, nal}; " + "video/x-h265,stream-format=(string)byte-stream," + "alignment=(string){au, nal}; " "audio/mpeg, " "parsed = (boolean) TRUE, " "mpegversion = (int) { 1, 2 };" @@ -612,6 +614,8 @@ mpegtsmux_create_stream (MpegTsMux * mux, MpegTsPadData * ts_data) st = TSMUX_ST_PS_AUDIO_LPCM; } else if (strcmp (mt, "video/x-h264") == 0) { st = TSMUX_ST_VIDEO_H264; + } else if (strcmp (mt, "video/x-h265") == 0) { + st = TSMUX_ST_VIDEO_HEVC; } else if (strcmp (mt, "audio/mpeg") == 0) { gint mpegversion; diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.c b/gst/mpegtsmux/tsmux/tsmuxstream.c index 31fd196a94..74d0115090 100644 --- a/gst/mpegtsmux/tsmux/tsmuxstream.c +++ b/gst/mpegtsmux/tsmux/tsmuxstream.c @@ -138,6 +138,7 @@ tsmux_stream_new (guint16 pid, TsMuxStreamType stream_type) case TSMUX_ST_VIDEO_MPEG2: case TSMUX_ST_VIDEO_MPEG4: case TSMUX_ST_VIDEO_H264: + case TSMUX_ST_VIDEO_HEVC: /* FIXME: Assign sequential IDs? */ stream->id = 0xE0; stream->pi.flags |= TSMUX_PACKET_FLAG_PES_FULL_HEADER; diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.h b/gst/mpegtsmux/tsmux/tsmuxstream.h index 26fe207d17..73b2a88128 100644 --- a/gst/mpegtsmux/tsmux/tsmuxstream.h +++ b/gst/mpegtsmux/tsmux/tsmuxstream.h @@ -133,6 +133,7 @@ enum TsMuxStreamType { TSMUX_ST_AUDIO_AAC = 0x0f, TSMUX_ST_VIDEO_MPEG4 = 0x10, TSMUX_ST_VIDEO_H264 = 0x1b, + TSMUX_ST_VIDEO_HEVC = 0x24, /* private stream types */ TSMUX_ST_PS_AUDIO_AC3 = 0x81,