mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-04 13:32:29 +00:00
qtdemux: Add parsing/dumping of nmhd / metx boxes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2453>
This commit is contained in:
parent
04f6258863
commit
365a9af9c5
3 changed files with 34 additions and 0 deletions
|
@ -418,6 +418,8 @@ G_BEGIN_DECLS
|
|||
#define FOURCC_aavd GST_MAKE_FOURCC('a','a','v','d')
|
||||
#define FOURCC_adrm GST_MAKE_FOURCC('a','d','r','m')
|
||||
|
||||
#define FOURCC_metx GST_MAKE_FOURCC('m','e','t','x')
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __FOURCC_H__ */
|
||||
|
|
|
@ -348,6 +348,32 @@ qtdemux_dump_stsd_av01 (GstQTDemux * qtdemux, GstByteReader * data, guint size,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
qtdemux_dump_stsd_metx (GstQTDemux * qtdemux, GstByteReader * data, int depth)
|
||||
{
|
||||
const gchar *content_encoding;
|
||||
const gchar *namespaces;
|
||||
const gchar *schema_locations;
|
||||
|
||||
if (gst_byte_reader_get_remaining (data) < 6 + 2)
|
||||
return FALSE;
|
||||
|
||||
gst_byte_reader_skip_unchecked (data, 6);
|
||||
GST_LOG_OBJECT (qtdemux, "%*s data reference:%d", depth, "",
|
||||
GET_UINT16 (data));
|
||||
|
||||
if (!gst_byte_reader_get_string (data, &content_encoding) ||
|
||||
!gst_byte_reader_get_string (data, &namespaces) ||
|
||||
!gst_byte_reader_get_string (data, &schema_locations))
|
||||
return FALSE;
|
||||
|
||||
GST_LOG ("%*s content_encoding: %s", depth, "", content_encoding);
|
||||
GST_LOG ("%*s namespaces: %s", depth, "", namespaces);
|
||||
GST_LOG ("%*s schema_locations: %s", depth, "", schema_locations);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
qtdemux_dump_stsd (GstQTDemux * qtdemux, GstByteReader * data, int depth)
|
||||
{
|
||||
|
@ -402,6 +428,10 @@ qtdemux_dump_stsd (GstQTDemux * qtdemux, GstByteReader * data, int depth)
|
|||
if (!qtdemux_dump_stsd_av01 (qtdemux, &sub, size, depth + 1))
|
||||
return FALSE;
|
||||
break;
|
||||
case FOURCC_metx:
|
||||
if (!qtdemux_dump_stsd_metx (qtdemux, &sub, depth + 1))
|
||||
return FALSE;
|
||||
break;
|
||||
default:
|
||||
/* Unknown stsd data, dump the bytes */
|
||||
if (!qtdemux_dump_unknown (qtdemux, &sub, depth + 1))
|
||||
|
|
|
@ -54,6 +54,7 @@ static const QtNodeType qt_node_types[] = {
|
|||
{FOURCC_vmhd, "video media information", 0,
|
||||
qtdemux_dump_vmhd},
|
||||
{FOURCC_smhd, "sound media information", 0},
|
||||
{FOURCC_nmhd, "null media information", 0},
|
||||
{FOURCC_gmhd, "base media information header", QT_FLAG_CONTAINER},
|
||||
{FOURCC_gmin, "base media info", 0, qtdemux_dump_gmin},
|
||||
{FOURCC_dinf, "data information", QT_FLAG_CONTAINER},
|
||||
|
@ -230,6 +231,7 @@ static const QtNodeType qt_node_types[] = {
|
|||
{FOURCC_aavd, "AAX encrypted audio", 0},
|
||||
{FOURCC_adrm, "AAX DRM key data", 0},
|
||||
{FOURCC_vttc, "VTTCueBox 14496-30", QT_FLAG_CONTAINER},
|
||||
{FOURCC_metx, "XML MetaData Sample Entry", 0},
|
||||
{0, "unknown", 0,},
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue