tsdemux: Add HEVC / h265 support

This commit is contained in:
Sebastian Dröge 2014-01-06 13:51:01 +01:00
parent f12705b2f5
commit 84bd65b9bd
3 changed files with 16 additions and 0 deletions

View file

@ -297,6 +297,7 @@ typedef enum {
GST_MPEG_TS_STREAM_TYPE_VIDEO_JP2K = 0x21,
GST_MPEG_TS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW = 0x22,
GST_MPEG_TS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW = 0x23,
GST_MPEG_TS_STREAM_TYPE_VIDEO_HEVC = 0x24,
/* 0x24 - 0x7e : Rec. ITU-T H.222.0 | ISO/IEC 13818-1 Reserved */
GST_MPEG_TS_STREAM_TYPE_IPMP_STREAM = 0x7f
/* 0x80 - 0xff : User Private (or defined in other specs) */

View file

@ -230,5 +230,6 @@
#define DRF_ID_GA94 0x47413934
#define DRF_ID_CUEI 0x43554549
#define DRF_ID_ETV1 0x45545631
#define DRF_ID_HEVC 0x48455643
#endif /* __GST_MPEG_DESC_H__ */

View file

@ -892,6 +892,13 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
name = g_strdup_printf ("audio_%04x", bstream->pid);
caps = gst_caps_new_empty_simple ("audio/x-smpte-302m");
break;
case DRF_ID_HEVC:
template = gst_static_pad_template_get (&video_template);
name = g_strdup_printf ("video_%04x", bstream->pid);
caps = gst_caps_new_simple ("video/x-h265",
"stream-format", G_TYPE_STRING, "byte-stream",
"alignment", G_TYPE_STRING, "nal", NULL);
break;
}
if (template)
break;
@ -947,6 +954,13 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
"stream-format", G_TYPE_STRING, "byte-stream",
"alignment", G_TYPE_STRING, "nal", NULL);
break;
case GST_MPEG_TS_STREAM_TYPE_VIDEO_HEVC:
template = gst_static_pad_template_get (&video_template);
name = g_strdup_printf ("video_%04x", bstream->pid);
caps = gst_caps_new_simple ("video/x-h265",
"stream-format", G_TYPE_STRING, "byte-stream",
"alignment", G_TYPE_STRING, "nal", NULL);
break;
case ST_VIDEO_DIRAC:
if (bstream->registration_id == 0x64726163) {
GST_LOG ("dirac");