mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 11:10:37 +00:00
qtmux: add ismlmux, for fragmented isml major brand
This commit is contained in:
parent
50464d5f93
commit
7a447b4372
4 changed files with 25 additions and 2 deletions
|
@ -96,7 +96,8 @@ typedef enum _AtomsTreeFlavor
|
|||
{
|
||||
ATOMS_TREE_FLAVOR_MOV,
|
||||
ATOMS_TREE_FLAVOR_ISOM,
|
||||
ATOMS_TREE_FLAVOR_3GP
|
||||
ATOMS_TREE_FLAVOR_3GP,
|
||||
ATOMS_TREE_FLAVOR_ISML
|
||||
} AtomsTreeFlavor;
|
||||
|
||||
typedef struct _AtomsContext
|
||||
|
|
|
@ -60,6 +60,8 @@ G_BEGIN_DECLS
|
|||
#define FOURCC_3gg7 GST_MAKE_FOURCC('3','g','g','7')
|
||||
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
|
||||
#define FOURCC_qt__ GST_MAKE_FOURCC('q','t',' ',' ')
|
||||
#define FOURCC_isml GST_MAKE_FOURCC('i','s','m','l')
|
||||
#define FOURCC_piff GST_MAKE_FOURCC('p','i','f','f')
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
|
@ -187,6 +187,18 @@ GstQTMuxFormatProp gst_qt_mux_format_list[] = {
|
|||
GST_STATIC_CAPS (MP3_CAPS "; " AAC_CAPS " ; " ALAC_CAPS)
|
||||
}
|
||||
,
|
||||
/* Microsoft Smooth Streaming fmp4/isml */
|
||||
/* TODO add WMV/WMA support */
|
||||
{
|
||||
GST_QT_MUX_FORMAT_ISML,
|
||||
"ismlmux",
|
||||
"ISML",
|
||||
"GstISMLMux",
|
||||
GST_STATIC_CAPS ("video/quicktime, variant = (string) iso"),
|
||||
GST_STATIC_CAPS (MPEG4V_CAPS "; " H264_CAPS),
|
||||
GST_STATIC_CAPS (MP3_CAPS "; " AAC_CAPS)
|
||||
}
|
||||
,
|
||||
/* 3GPP Technical Specification 26.244 V7.3.0
|
||||
* (extended in 3GPP2 File Formats for Multimedia Services) */
|
||||
{
|
||||
|
@ -225,6 +237,8 @@ gst_qt_mux_map_format_to_flavor (GstQTMuxFormat format)
|
|||
return ATOMS_TREE_FLAVOR_MOV;
|
||||
else if (format == GST_QT_MUX_FORMAT_3GP)
|
||||
return ATOMS_TREE_FLAVOR_3GP;
|
||||
else if (format == GST_QT_MUX_FORMAT_ISML)
|
||||
return ATOMS_TREE_FLAVOR_ISML;
|
||||
else
|
||||
return ATOMS_TREE_FLAVOR_ISOM;
|
||||
}
|
||||
|
@ -270,6 +284,7 @@ gst_qt_mux_map_format_to_header (GstQTMuxFormat format, GstBuffer ** _prefix,
|
|||
{
|
||||
static guint32 qt_brands[] = { 0 };
|
||||
static guint32 mp4_brands[] = { FOURCC_mp41, FOURCC_isom, FOURCC_iso2, 0 };
|
||||
static guint32 isml_brands[] = { FOURCC_iso2, 0 };
|
||||
static guint32 gpp_brands[] = { FOURCC_isom, FOURCC_iso2, 0 };
|
||||
static guint32 mjp2_brands[] = { FOURCC_isom, FOURCC_iso2, 0 };
|
||||
static guint8 mjp2_prefix[] =
|
||||
|
@ -294,6 +309,10 @@ gst_qt_mux_map_format_to_header (GstQTMuxFormat format, GstBuffer ** _prefix,
|
|||
major = FOURCC_mp42;
|
||||
comp = mp4_brands;
|
||||
break;
|
||||
case GST_QT_MUX_FORMAT_ISML:
|
||||
major = FOURCC_isml;
|
||||
comp = isml_brands;
|
||||
break;
|
||||
case GST_QT_MUX_FORMAT_3GP:
|
||||
{
|
||||
gint video, audio;
|
||||
|
|
|
@ -55,7 +55,8 @@ typedef enum _GstQTMuxFormat
|
|||
GST_QT_MUX_FORMAT_QT,
|
||||
GST_QT_MUX_FORMAT_MP4,
|
||||
GST_QT_MUX_FORMAT_3GP,
|
||||
GST_QT_MUX_FORMAT_MJ2
|
||||
GST_QT_MUX_FORMAT_MJ2,
|
||||
GST_QT_MUX_FORMAT_ISML
|
||||
} GstQTMuxFormat;
|
||||
|
||||
typedef struct _GstQTMuxFormatProp
|
||||
|
|
Loading…
Reference in a new issue