ste = atom_trak_add_video_entry (trak, context, entry->fourcc);
trak->is_video = TRUE;
- trak->is_h264 = (entry->fourcc == FOURCC_avc1);
+ trak->is_h264 = (entry->fourcc == FOURCC_avc1
+ || entry->fourcc == FOURCC_avc3);
ste->version = entry->version;
ste->width = entry->width;
#define FOURCC_qtim GST_MAKE_FOURCC('q','t','i','m')
#define FOURCC_drms GST_MAKE_FOURCC('d','r','m','s')
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#define FOURCC_h263 GST_MAKE_FOURCC('h','2','6','3')
#define FOURCC_s263 GST_MAKE_FOURCC('s','2','6','3')
#define FOURCC_avcC GST_MAKE_FOURCC('a','v','c','C')
#define FOURCC_3gr6 GST_MAKE_FOURCC('3','g','r','6')
#define FOURCC_3gg7 GST_MAKE_FOURCC('3','g','g','7')
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#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
-
#endif /* __FTYP_CC_H__ */
#define QT_UINT64(a) ((((guint64)QT_UINT32(a))<<32)|QT_UINT32(((guint8 *)a)+4))
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#define FOURCC_avcC GST_MAKE_FOURCC('a','v','c','C')
GST_DEBUG_CATEGORY_STATIC (rtpxqtdepay_debug);
switch (fourcc) {
case FOURCC_avc1:
+ case FOURCC_avc3:
{
guint32 chlen;
qtdemux_parse_container (qtdemux, node, buffer + 0x56, end);
break;
}
+ case FOURCC_avc3:
+ {
+ GST_MEMDUMP_OBJECT (qtdemux, "avc3", buffer, end - buffer);
+ qtdemux_parse_container (qtdemux, node, buffer + 0x56, end);
+ break;
+ }
case FOURCC_mjp2:
{
qtdemux_parse_container (qtdemux, node, buffer + 86, end);
switch (fourcc) {
case FOURCC_H264:
case FOURCC_avc1:
+ case FOURCC_avc3:
{
gint len = QT_UINT32 (stsd_data) - 0x66;
const guint8 *avc_data = stsd_data + 0x66;
"stream-format", G_TYPE_STRING, "avc",
"alignment", G_TYPE_STRING, "au", NULL);
break;
+ case GST_MAKE_FOURCC ('a', 'v', 'c', '3'):
+ _codec ("H.264 / AVC");
+ caps = gst_caps_new_simple ("video/x-h264",
+ "stream-format", G_TYPE_STRING, "avc3",
+ "alignment", G_TYPE_STRING, "au", NULL);
+ break;
case GST_MAKE_FOURCC ('r', 'l', 'e', ' '):
_codec ("Run-length encoding");
caps = gst_caps_new_simple ("video/x-rle",
#define FOURCC_H264 GST_MAKE_FOURCC('H','2','6','4')
#define FOURCC_strf GST_MAKE_FOURCC('s','t','r','f')
#define FOURCC_avc1 GST_MAKE_FOURCC('a','v','c','1')
+#define FOURCC_avc3 GST_MAKE_FOURCC('a','v','c','3')
#define FOURCC_avcC GST_MAKE_FOURCC('a','v','c','C')
#define FOURCC_btrt GST_MAKE_FOURCC('b','t','r','t')
#define FOURCC_VP31 GST_MAKE_FOURCC('V','P','3','1')
qtdemux_dump_mehd},
{FOURCC_ovc1, "ovc1", 0},
{FOURCC_owma, "owma", 0},
+ {FOURCC_avcC, "AV codec configuration container", 0},
+ {FOURCC_avc1, "AV codec configuration v1", 0},
+ {FOURCC_avc3, "AV codec configuration v3", 0},
{FOURCC_tfdt, "Track fragment decode time", 0, qtdemux_dump_tfdt},
{FOURCC_chap, "Chapter Reference"},
{0, "unknown", 0,},