}
}
-static gboolean
-gst_matroska_demux_tracknumber_unique (GstMatroskaDemux * demux, guint64 num)
-{
- gint i;
-
- g_assert (demux->common.src->len == demux->common.num_streams);
- for (i = 0; i < demux->common.src->len; i++) {
- GstMatroskaTrackContext *context = g_ptr_array_index (demux->common.src,
- i);
-
- if (context->num == num)
- return FALSE;
- }
-
- return TRUE;
-}
-
static GstFlowReturn
gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
{
GST_ERROR_OBJECT (demux, "Invalid TrackNumber 0");
ret = GST_FLOW_ERROR;
break;
- } else if (!gst_matroska_demux_tracknumber_unique (demux, num)) {
+ } else if (!gst_matroska_read_common_tracknumber_unique (&demux->common,
+ num)) {
GST_ERROR_OBJECT (demux, "TrackNumber %" G_GUINT64_FORMAT
" is not unique", num);
ret = GST_FLOW_ERROR;
}
}
-static gboolean
-gst_matroska_parse_tracknumber_unique (GstMatroskaParse * parse, guint64 num)
-{
- gint i;
-
- g_assert (parse->common.src->len == parse->common.num_streams);
- for (i = 0; i < parse->common.src->len; i++) {
- GstMatroskaTrackContext *context = g_ptr_array_index (parse->common.src,
- i);
-
- if (context->num == num)
- return FALSE;
- }
-
- return TRUE;
-}
-
static GstFlowReturn
gst_matroska_parse_add_stream (GstMatroskaParse * parse, GstEbmlRead * ebml)
{
GST_ERROR_OBJECT (parse, "Invalid TrackNumber 0");
ret = GST_FLOW_ERROR;
break;
- } else if (!gst_matroska_parse_tracknumber_unique (parse, num)) {
+ } else if (!gst_matroska_read_common_tracknumber_unique (&parse->common,
+ num)) {
GST_ERROR_OBJECT (parse, "TrackNumber %" G_GUINT64_FORMAT
" is not unique", num);
ret = GST_FLOW_ERROR;
return gst_matroska_decode_content_encodings (context->encodings);
}
+
+gboolean
+gst_matroska_read_common_tracknumber_unique (GstMatroskaReadCommon * common,
+ guint64 num)
+{
+ gint i;
+
+ g_assert (common->src->len == common->num_streams);
+ for (i = 0; i < common->src->len; i++) {
+ GstMatroskaTrackContext *context = g_ptr_array_index (common->src, i);
+
+ if (context->num == num)
+ return FALSE;
+ }
+
+ return TRUE;
+}
GstFlowReturn gst_matroska_read_common_read_track_encodings (
GstMatroskaReadCommon * common, GstEbmlRead * ebml,
GstMatroskaTrackContext * context);
+gboolean gst_matroska_read_common_tracknumber_unique (GstMatroskaReadCommon *
+ common, guint64 num);
G_END_DECLS