qtdemux: Add qtdemux_tree_get_child_by_index_full() helper function
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8929>
This commit is contained in:
parent
2b18846e39
commit
d98df47e53
@ -87,6 +87,30 @@ qtdemux_tree_get_child_by_index (GNode * node, guint index)
|
|||||||
return g_node_nth_child (node, index);
|
return g_node_nth_child (node, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GNode *
|
||||||
|
qtdemux_tree_get_child_by_index_full (GNode * node, guint index,
|
||||||
|
GstByteReader * parser)
|
||||||
|
{
|
||||||
|
GNode *child;
|
||||||
|
guint8 *buffer;
|
||||||
|
guint32 child_len;
|
||||||
|
|
||||||
|
child = g_node_nth_child (node, index);
|
||||||
|
if (child) {
|
||||||
|
buffer = (guint8 *) child->data;
|
||||||
|
|
||||||
|
if (parser) {
|
||||||
|
child_len = QT_UINT32 (buffer);
|
||||||
|
if (G_UNLIKELY (child_len < (4 + 4)))
|
||||||
|
return NULL;
|
||||||
|
/* FIXME: must verify if atom length < parent atom length */
|
||||||
|
gst_byte_reader_init (parser, buffer + (4 + 4), child_len - (4 + 4));
|
||||||
|
}
|
||||||
|
return child;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
GNode *
|
GNode *
|
||||||
qtdemux_tree_get_sibling_by_type_full (GNode * node, guint32 fourcc,
|
qtdemux_tree_get_sibling_by_type_full (GNode * node, guint32 fourcc,
|
||||||
GstByteReader * parser)
|
GstByteReader * parser)
|
||||||
|
@ -41,6 +41,8 @@ GNode *qtdemux_tree_get_sibling_by_type (GNode * node, guint32 fourcc);
|
|||||||
GNode *qtdemux_tree_get_sibling_by_type_full (GNode * node,
|
GNode *qtdemux_tree_get_sibling_by_type_full (GNode * node,
|
||||||
guint32 fourcc, GstByteReader * parser);
|
guint32 fourcc, GstByteReader * parser);
|
||||||
GNode *qtdemux_tree_get_child_by_index (GNode * node, guint index);
|
GNode *qtdemux_tree_get_child_by_index (GNode * node, guint index);
|
||||||
|
GNode *qtdemux_tree_get_child_by_index_full (GNode * node, guint index,
|
||||||
|
GstByteReader * parser);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user