summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog38
-rw-r--r--gst/mxf/mxfaes-bwf.c3
-rw-r--r--gst/mxf/mxfaes-bwf.h2
-rw-r--r--gst/mxf/mxfdemux.c49
-rw-r--r--gst/mxf/mxfmpeg.c2
-rw-r--r--gst/mxf/mxfmpeg.h2
-rw-r--r--gst/mxf/mxfparse.c44
-rw-r--r--gst/mxf/mxfparse.h44
8 files changed, 115 insertions, 69 deletions
diff --git a/ChangeLog b/ChangeLog
index 0ae29499c..43960c320 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+2008-11-22 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/mxf/mxfaes-bwf.c:
+ (mxf_metadata_wave_audio_essence_descriptor_parse):
+ * gst/mxf/mxfaes-bwf.h:
+ * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_range),
+ (gst_mxf_demux_pull_klv_packet),
+ (gst_mxf_demux_parse_footer_metadata),
+ (gst_mxf_demux_handle_klv_packet),
+ (gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_chain):
+ * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse):
+ * gst/mxf/mxfmpeg.h:
+ * gst/mxf/mxfparse.c: (mxf_timestamp_parse), (mxf_fraction_parse),
+ (mxf_utf16_to_utf8), (mxf_product_version_parse),
+ (mxf_partition_pack_parse), (mxf_primer_pack_parse),
+ (mxf_local_tag_parse), (mxf_metadata_preface_parse),
+ (mxf_metadata_identification_parse),
+ (mxf_metadata_content_storage_parse),
+ (mxf_metadata_essence_container_data_parse),
+ (mxf_metadata_generic_package_parse), (mxf_metadata_track_parse),
+ (mxf_metadata_sequence_parse),
+ (mxf_metadata_structural_component_parse),
+ (mxf_metadata_generic_descriptor_parse),
+ (mxf_metadata_file_descriptor_parse),
+ (mxf_metadata_generic_sound_essence_descriptor_parse),
+ (mxf_metadata_generic_picture_essence_descriptor_parse),
+ (mxf_metadata_cdci_picture_essence_descriptor_parse),
+ (mxf_metadata_multiple_descriptor_parse),
+ (mxf_metadata_locator_parse):
+ * gst/mxf/mxfparse.h:
+ Use guint instead of guint64 or gsize for all buffer sizes and
+ use correct format strings for them. Only local tag set sizes
+ are still guint16 as they can't be larger.
+
+ Only allow KLV packets of sizes below 1<<32 as GStreamer only uses
+ guint for buffer sizes. The MXF standard allows packet sizes up
+ to 1<<64.
+
2008-11-22 Wim Taymans <wim.taymans@collabora.co.uk>
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
diff --git a/gst/mxf/mxfaes-bwf.c b/gst/mxf/mxfaes-bwf.c
index ef97fafca..0877204ff 100644
--- a/gst/mxf/mxfaes-bwf.c
+++ b/gst/mxf/mxfaes-bwf.c
@@ -43,7 +43,7 @@ GST_DEBUG_CATEGORY_EXTERN (mxf_debug);
gboolean
mxf_metadata_wave_audio_essence_descriptor_parse (const MXFUL * key,
MXFMetadataWaveAudioEssenceDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -256,6 +256,7 @@ static const MXFUL mxf_sound_essence_compression_uncompressed =
{ {0x06, 0x0E, 0x2B, 0x34, 0x04, 0x01, 0x01, 0x01, 0x04, 0x02, 0x02, 0x01,
0x7F, 0x00, 0x00, 0x00}
};
+
static const MXFUL mxf_sound_essence_compression_aiff =
{ {0x06, 0x0E, 0x2B, 0x34, 0x04, 0x01, 0x01, 0x07, 0x04, 0x02, 0x02, 0x01,
0x7E, 0x00, 0x00, 0x00}
diff --git a/gst/mxf/mxfaes-bwf.h b/gst/mxf/mxfaes-bwf.h
index 6f3a5cd4c..9f0a08aee 100644
--- a/gst/mxf/mxfaes-bwf.h
+++ b/gst/mxf/mxfaes-bwf.h
@@ -55,7 +55,7 @@ typedef struct {
guint16 peak_envelope_data_length;
} MXFMetadataWaveAudioEssenceDescriptor;
-gboolean mxf_metadata_wave_audio_essence_descriptor_parse (const MXFUL *key, MXFMetadataWaveAudioEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_wave_audio_essence_descriptor_parse (const MXFUL *key, MXFMetadataWaveAudioEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_wave_audio_essence_descriptor_reset (MXFMetadataWaveAudioEssenceDescriptor *descriptor);
gboolean mxf_is_aes_bwf_essence_track (const MXFMetadataTrack *track);
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c
index ce3c5abe9..365207378 100644
--- a/gst/mxf/mxfdemux.c
+++ b/gst/mxf/mxfdemux.c
@@ -376,7 +376,7 @@ gst_mxf_demux_pull_range (GstMXFDemux * demux, guint64 offset,
ret = gst_pad_pull_range (demux->sinkpad, offset, size, buffer);
if (G_UNLIKELY (ret != GST_FLOW_OK)) {
GST_WARNING_OBJECT (demux,
- "failed when pulling %d bytes from offset %" G_GUINT64_FORMAT ": %s",
+ "failed when pulling %u bytes from offset %" G_GUINT64_FORMAT ": %s",
size, offset, gst_flow_get_name (ret));
*buffer = NULL;
return ret;
@@ -384,7 +384,7 @@ gst_mxf_demux_pull_range (GstMXFDemux * demux, guint64 offset,
if (G_UNLIKELY (*buffer && GST_BUFFER_SIZE (*buffer) != size)) {
GST_WARNING_OBJECT (demux,
- "partial pull got %d when expecting %d from offset %" G_GUINT64_FORMAT,
+ "partial pull got %u when expecting %u from offset %" G_GUINT64_FORMAT,
GST_BUFFER_SIZE (*buffer), size, offset);
gst_buffer_unref (*buffer);
ret = GST_FLOW_UNEXPECTED;
@@ -1127,9 +1127,8 @@ gst_mxf_demux_handle_header_metadata_resolve_references (GstMXFDemux * demux)
MXFMetadataEssenceContainerData, i);
for (j = 0; j < demux->content_storage.n_essence_container_data; j++) {
- if (mxf_ul_is_equal (&demux->
- content_storage.essence_container_data_uids[j],
- &data->instance_uid)) {
+ if (mxf_ul_is_equal (&demux->content_storage.
+ essence_container_data_uids[j], &data->instance_uid)) {
demux->content_storage.essence_container_data[j] = data;
break;
}
@@ -1414,8 +1413,8 @@ gst_mxf_demux_handle_header_metadata_resolve_references (GstMXFDemux * demux)
continue;
type =
- mxf_metadata_track_identifier_parse (&component->
- data_definition);
+ mxf_metadata_track_identifier_parse
+ (&component->data_definition);
break;
}
} else {
@@ -1977,12 +1976,12 @@ gst_mxf_demux_handle_index_table_segment (GstMXFDemux * demux,
static GstFlowReturn
gst_mxf_demux_pull_klv_packet (GstMXFDemux * demux, guint64 offset, MXFUL * key,
- GstBuffer ** outbuf, guint64 * read)
+ GstBuffer ** outbuf, guint * read)
{
GstBuffer *buffer = NULL;
const guint8 *data;
guint64 data_offset = 0;
- guint64 length;
+ guint length;
gchar key_str[48];
GstFlowReturn ret = GST_FLOW_OK;
@@ -2015,10 +2014,14 @@ gst_mxf_demux_pull_klv_packet (GstMXFDemux * demux, guint64 offset, MXFUL * key,
gst_buffer_unref (buffer);
- /* Must be at most 8 according to SMPTE-379M 5.3.4 */
+ /* Must be at most 8 according to SMPTE-379M 5.3.4 and
+ * GStreamer buffers can only have a 4 bytes length */
if (slen > 8) {
- GST_ERROR_OBJECT (demux, "Invalid KLV packet length: %" G_GUINT64_FORMAT,
- slen);
+ GST_ERROR_OBJECT (demux, "Invalid KLV packet length: %u", slen);
+ ret = GST_FLOW_ERROR;
+ goto beach;
+ } else if (slen > 4) {
+ GST_ERROR_OBJECT (demux, "Unsupported KLV packet length: %u", slen);
ret = GST_FLOW_ERROR;
goto beach;
}
@@ -2064,7 +2067,7 @@ gst_mxf_demux_parse_footer_metadata (GstMXFDemux * demux)
guint64 offset, old_offset = demux->offset;
MXFUL key;
GstBuffer *buffer = NULL;
- guint64 read = 0;
+ guint read = 0;
GstFlowReturn ret = GST_FLOW_OK;
memcpy (&partition, &demux->partition, sizeof (MXFPartitionPack));
@@ -2253,11 +2256,11 @@ gst_mxf_demux_handle_klv_packet (GstMXFDemux * demux, const MXFUL * key,
ret = gst_mxf_demux_handle_index_table_segment (demux, key, buffer);
} else if (mxf_is_fill (key)) {
GST_DEBUG_OBJECT (demux,
- "Skipping filler packet of size %" G_GUINT64_FORMAT " at offset %"
+ "Skipping filler packet of size %u at offset %"
G_GUINT64_FORMAT, GST_BUFFER_SIZE (buffer), demux->offset);
} else {
GST_DEBUG_OBJECT (demux,
- "Skipping unknown packet of size %" G_GUINT64_FORMAT " at offset %"
+ "Skipping unknown packet of size %u at offset %"
G_GUINT64_FORMAT ", key: %s", GST_BUFFER_SIZE (buffer), demux->offset,
mxf_ul_to_string (key, key_str));
}
@@ -2272,7 +2275,7 @@ gst_mxf_demux_pull_and_handle_klv_packet (GstMXFDemux * demux)
GstBuffer *buffer = NULL;
MXFUL key;
GstFlowReturn ret = GST_FLOW_OK;
- guint64 read = 0;
+ guint read = 0;
ret =
gst_mxf_demux_pull_klv_packet (demux, demux->offset, &key, &buffer,
@@ -2402,14 +2405,14 @@ gst_mxf_demux_chain (GstPad * pad, GstBuffer * inbuf)
GstMXFDemux *demux = NULL;
MXFUL key;
const guint8 *data = NULL;
- guint64 length = 0;
+ guint length = 0;
guint64 offset = 0;
GstBuffer *buffer = NULL;
gchar key_str[48];
demux = GST_MXF_DEMUX (gst_pad_get_parent (pad));
- GST_LOG_OBJECT (demux, "received buffer of %d bytes at offset %"
+ GST_LOG_OBJECT (demux, "received buffer of %u bytes at offset %"
G_GUINT64_FORMAT, GST_BUFFER_SIZE (inbuf), GST_BUFFER_OFFSET (inbuf));
if (G_UNLIKELY (GST_BUFFER_OFFSET (inbuf) == 0)) {
@@ -2497,10 +2500,14 @@ gst_mxf_demux_chain (GstPad * pad, GstBuffer * inbuf)
offset = 16 + 1 + slen;
- /* Must be at most 8 according to SMPTE-379M 5.3.4 */
+ /* Must be at most 8 according to SMPTE-379M 5.3.4 and
+ * GStreamer buffers can only have a 4 bytes length */
if (slen > 8) {
- GST_ERROR_OBJECT (demux,
- "Invalid KLV packet length: %" G_GUINT64_FORMAT, slen);
+ GST_ERROR_OBJECT (demux, "Invalid KLV packet length: %u", slen);
+ ret = GST_FLOW_ERROR;
+ break;
+ } else if (slen > 4) {
+ GST_ERROR_OBJECT (demux, "Unsupported KLV packet length: %u", slen);
ret = GST_FLOW_ERROR;
break;
}
diff --git a/gst/mxf/mxfmpeg.c b/gst/mxf/mxfmpeg.c
index e46d53881..6a3631287 100644
--- a/gst/mxf/mxfmpeg.c
+++ b/gst/mxf/mxfmpeg.c
@@ -91,7 +91,7 @@ static const guint8 _profile_and_level_ul[] = {
gboolean
mxf_metadata_mpeg_video_descriptor_parse (const MXFUL * key,
MXFMetadataMPEGVideoDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
diff --git a/gst/mxf/mxfmpeg.h b/gst/mxf/mxfmpeg.h
index e251cb067..53e396855 100644
--- a/gst/mxf/mxfmpeg.h
+++ b/gst/mxf/mxfmpeg.h
@@ -49,7 +49,7 @@ typedef struct {
guint8 profile_and_level;
} MXFMetadataMPEGVideoDescriptor;
-gboolean mxf_metadata_mpeg_video_descriptor_parse (const MXFUL *key, MXFMetadataMPEGVideoDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_mpeg_video_descriptor_parse (const MXFUL *key, MXFMetadataMPEGVideoDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_mpeg_video_descriptor_reset (MXFMetadataMPEGVideoDescriptor *descriptor);
gboolean mxf_is_mpeg_video_essence_track (const MXFMetadataTrack *track);
diff --git a/gst/mxf/mxfparse.c b/gst/mxf/mxfparse.c
index 49f5d6855..d846ca2d5 100644
--- a/gst/mxf/mxfparse.c
+++ b/gst/mxf/mxfparse.c
@@ -281,7 +281,7 @@ gst_mxf_ul_equal (const MXFUL * a, const MXFUL * b)
}
gboolean
-mxf_timestamp_parse (MXFTimestamp * timestamp, const guint8 * data, gsize size)
+mxf_timestamp_parse (MXFTimestamp * timestamp, const guint8 * data, guint size)
{
g_return_val_if_fail (data != NULL, FALSE);
g_return_val_if_fail (timestamp != NULL, FALSE);
@@ -332,7 +332,7 @@ mxf_timestamp_compare (const MXFTimestamp * a, const MXFTimestamp * b)
}
gboolean
-mxf_fraction_parse (MXFFraction * fraction, const guint8 * data, guint16 size)
+mxf_fraction_parse (MXFFraction * fraction, const guint8 * data, guint size)
{
g_return_val_if_fail (fraction != NULL, FALSE);
g_return_val_if_fail (data != NULL, FALSE);
@@ -349,7 +349,7 @@ mxf_fraction_parse (MXFFraction * fraction, const guint8 * data, guint16 size)
}
gchar *
-mxf_utf16_to_utf8 (const guint8 * data, guint16 size)
+mxf_utf16_to_utf8 (const guint8 * data, guint size)
{
gchar *ret;
GError *error = NULL;
@@ -369,7 +369,7 @@ mxf_utf16_to_utf8 (const guint8 * data, guint16 size)
gboolean
mxf_product_version_parse (MXFProductVersion * product_version,
- const guint8 * data, gsize size)
+ const guint8 * data, guint size)
{
g_return_val_if_fail (product_version != NULL, FALSE);
g_return_val_if_fail (data != NULL, FALSE);
@@ -391,7 +391,7 @@ mxf_product_version_parse (MXFProductVersion * product_version,
/* SMPTE 377M 6.1, Table 2 */
gboolean
mxf_partition_pack_parse (const MXFUL * key, MXFPartitionPack * pack,
- const guint8 * data, gsize size)
+ const guint8 * data, guint size)
{
gint i;
gchar str[48];
@@ -536,7 +536,7 @@ _mxf_mapping_ul_free (MXFUL * ul)
gboolean
mxf_primer_pack_parse (const MXFUL * key, MXFPrimerPack * pack,
- const guint8 * data, gsize size)
+ const guint8 * data, guint size)
{
gint i;
guint32 n;
@@ -604,7 +604,7 @@ mxf_primer_pack_reset (MXFPrimerPack * pack)
/* structural metadata parsing */
gboolean
-mxf_local_tag_parse (const guint8 * data, gsize size, guint16 * tag,
+mxf_local_tag_parse (const guint8 * data, guint size, guint16 * tag,
guint16 * tag_size, const guint8 ** tag_data)
{
g_return_val_if_fail (data != NULL, FALSE);
@@ -677,7 +677,7 @@ gst_metadata_add_custom_tag (const MXFPrimerPack * primer,
gboolean
mxf_metadata_preface_parse (const MXFUL * key,
MXFMetadataPreface * preface, const MXFPrimerPack * primer,
- const guint8 * data, gsize size)
+ const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -884,7 +884,7 @@ mxf_metadata_preface_reset (MXFMetadataPreface * preface)
gboolean
mxf_metadata_identification_parse (const MXFUL * key,
MXFMetadataIdentification * identification,
- const MXFPrimerPack * primer, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1031,7 +1031,7 @@ void mxf_metadata_identification_reset
gboolean
mxf_metadata_content_storage_parse (const MXFUL * key,
MXFMetadataContentStorage * content_storage,
- const MXFPrimerPack * primer, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1159,7 +1159,7 @@ void mxf_metadata_content_storage_reset
gboolean
mxf_metadata_essence_container_data_parse (const MXFUL * key,
MXFMetadataEssenceContainerData * essence_container_data,
- const MXFPrimerPack * primer, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1250,7 +1250,7 @@ void mxf_metadata_essence_container_data_reset
gboolean
mxf_metadata_generic_package_parse (const MXFUL * key,
MXFMetadataGenericPackage * generic_package,
- const MXFPrimerPack * primer, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1401,7 +1401,7 @@ void mxf_metadata_generic_package_reset
gboolean
mxf_metadata_track_parse (const MXFUL * key,
MXFMetadataTrack * track, const MXFPrimerPack * primer,
- const guint8 * data, gsize size)
+ const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1556,7 +1556,7 @@ mxf_metadata_track_identifier_parse (const MXFUL * track_identifier)
gboolean
mxf_metadata_sequence_parse (const MXFUL * key,
MXFMetadataSequence * sequence, const MXFPrimerPack * primer,
- const guint8 * data, gsize size)
+ const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1672,7 +1672,7 @@ mxf_metadata_sequence_reset (MXFMetadataSequence * sequence)
gboolean
mxf_metadata_structural_component_parse (const MXFUL * key,
MXFMetadataStructuralComponent * component,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1832,7 +1832,7 @@ void mxf_metadata_structural_component_reset
gboolean
mxf_metadata_generic_descriptor_parse (const MXFUL * key,
MXFMetadataGenericDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -1936,7 +1936,7 @@ void mxf_metadata_generic_descriptor_reset
gboolean
mxf_metadata_file_descriptor_parse (const MXFUL * key,
MXFMetadataFileDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -2035,7 +2035,7 @@ mxf_metadata_file_descriptor_reset (MXFMetadataFileDescriptor * descriptor)
gboolean
mxf_metadata_generic_sound_essence_descriptor_parse (const MXFUL * key,
MXFMetadataGenericSoundEssenceDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -2152,7 +2152,7 @@ void mxf_metadata_generic_sound_essence_descriptor_reset
gboolean
mxf_metadata_generic_picture_essence_descriptor_parse (const MXFUL * key,
MXFMetadataGenericPictureEssenceDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -2392,7 +2392,7 @@ void mxf_metadata_generic_picture_essence_descriptor_reset
gboolean
mxf_metadata_cdci_picture_essence_descriptor_parse (const MXFUL * key,
MXFMetadataCDCIPictureEssenceDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -2523,7 +2523,7 @@ void mxf_metadata_cdci_picture_essence_descriptor_reset
gboolean
mxf_metadata_multiple_descriptor_parse (const MXFUL * key,
MXFMetadataMultipleDescriptor * descriptor,
- const MXFPrimerPack * primer, guint16 type, const guint8 * data, gsize size)
+ const MXFPrimerPack * primer, guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
@@ -2611,7 +2611,7 @@ void mxf_metadata_multiple_descriptor_reset
gboolean
mxf_metadata_locator_parse (const MXFUL * key,
MXFMetadataLocator * locator, const MXFPrimerPack * primer,
- guint16 type, const guint8 * data, gsize size)
+ guint16 type, const guint8 * data, guint size)
{
guint16 tag, tag_size;
const guint8 *tag_data;
diff --git a/gst/mxf/mxfparse.h b/gst/mxf/mxfparse.h
index 5b4acd3ef..a39915d3e 100644
--- a/gst/mxf/mxfparse.h
+++ b/gst/mxf/mxfparse.h
@@ -53,24 +53,24 @@ gboolean mxf_is_generic_container_essence_container_label (const MXFUL *key);
gboolean mxf_is_fill (const MXFUL *key);
-gchar * mxf_utf16_to_utf8 (const guint8 * data, guint16 size);
+gchar * mxf_utf16_to_utf8 (const guint8 * data, guint size);
gboolean mxf_product_version_parse (MXFProductVersion * product_version,
- const guint8 * data, gsize size);
+ const guint8 * data, guint size);
-gboolean mxf_fraction_parse (MXFFraction *fraction, const guint8 *data, guint16 size);
+gboolean mxf_fraction_parse (MXFFraction *fraction, const guint8 *data, guint size);
-gboolean mxf_timestamp_parse (MXFTimestamp * timestamp, const guint8 * data, gsize size);
+gboolean mxf_timestamp_parse (MXFTimestamp * timestamp, const guint8 * data, guint size);
gboolean mxf_timestamp_is_unknown (const MXFTimestamp *a);
gint mxf_timestamp_compare (const MXFTimestamp *a, const MXFTimestamp *b);
-gboolean mxf_partition_pack_parse (const MXFUL *key, MXFPartitionPack *pack, const guint8 *data, gsize size);
+gboolean mxf_partition_pack_parse (const MXFUL *key, MXFPartitionPack *pack, const guint8 *data, guint size);
void mxf_partition_pack_reset (MXFPartitionPack *pack);
-gboolean mxf_primer_pack_parse (const MXFUL *key, MXFPrimerPack *pack, const guint8 *data, gsize size);
+gboolean mxf_primer_pack_parse (const MXFUL *key, MXFPrimerPack *pack, const guint8 *data, guint size);
void mxf_primer_pack_reset (MXFPrimerPack *pack);
-gboolean mxf_local_tag_parse (const guint8 * data, gsize size, guint16 * tag,
+gboolean mxf_local_tag_parse (const guint8 * data, guint size, guint16 * tag,
guint16 * tag_size, const guint8 ** tag_data);
void gst_mxf_local_tag_free (MXFLocalTag *tag);
@@ -78,51 +78,51 @@ gboolean gst_metadata_add_custom_tag (const MXFPrimerPack *primer,
guint16 tag, const guint8 *tag_data, guint16 tag_size,
GHashTable **hash_table);
-gboolean mxf_metadata_preface_parse (const MXFUL *key, MXFMetadataPreface *preface, const MXFPrimerPack *primer, const guint8 *data, gsize size);
+gboolean mxf_metadata_preface_parse (const MXFUL *key, MXFMetadataPreface *preface, const MXFPrimerPack *primer, const guint8 *data, guint size);
void mxf_metadata_preface_reset (MXFMetadataPreface *preface);
-gboolean mxf_metadata_identification_parse (const MXFUL *key, MXFMetadataIdentification *identification, const MXFPrimerPack *primer, const guint8 *data, gsize size);
+gboolean mxf_metadata_identification_parse (const MXFUL *key, MXFMetadataIdentification *identification, const MXFPrimerPack *primer, const guint8 *data, guint size);
void mxf_metadata_identification_reset (MXFMetadataIdentification *identification);
-gboolean mxf_metadata_content_storage_parse (const MXFUL *key, MXFMetadataContentStorage *content_storage, const MXFPrimerPack *primer, const guint8 *data, gsize size);
+gboolean mxf_metadata_content_storage_parse (const MXFUL *key, MXFMetadataContentStorage *content_storage, const MXFPrimerPack *primer, const guint8 *data, guint size);
void mxf_metadata_content_storage_reset (MXFMetadataContentStorage *content_storage);
-gboolean mxf_metadata_essence_container_data_parse (const MXFUL *key, MXFMetadataEssenceContainerData *essence_container_data, const MXFPrimerPack *primer, const guint8 *data, gsize size);
+gboolean mxf_metadata_essence_container_data_parse (const MXFUL *key, MXFMetadataEssenceContainerData *essence_container_data, const MXFPrimerPack *primer, const guint8 *data, guint size);
void mxf_metadata_essence_container_data_reset (MXFMetadataEssenceContainerData *essence_container_data);
-gboolean mxf_metadata_generic_package_parse (const MXFUL *key, MXFMetadataGenericPackage *generic_package, const MXFPrimerPack *primer, const guint8 *data, gsize size);
+gboolean mxf_metadata_generic_package_parse (const MXFUL *key, MXFMetadataGenericPackage *generic_package, const MXFPrimerPack *primer, const guint8 *data, guint size);
void mxf_metadata_generic_package_reset (MXFMetadataGenericPackage *generic_package);
-gboolean mxf_metadata_track_parse (const MXFUL *key, MXFMetadataTrack *track, const MXFPrimerPack *primer, const guint8 *data, gsize size);
+gboolean mxf_metadata_track_parse (const MXFUL *key, MXFMetadataTrack *track, const MXFPrimerPack *primer, const guint8 *data, guint size);
void mxf_metadata_track_reset (MXFMetadataTrack *track);
MXFMetadataTrackType mxf_metadata_track_identifier_parse (const MXFUL *track_identifier);
-gboolean mxf_metadata_sequence_parse (const MXFUL *key, MXFMetadataSequence *sequence, const MXFPrimerPack *primer, const guint8 *data, gsize size);
+gboolean mxf_metadata_sequence_parse (const MXFUL *key, MXFMetadataSequence *sequence, const MXFPrimerPack *primer, const guint8 *data, guint size);
void mxf_metadata_sequence_reset (MXFMetadataSequence *sequence);
-gboolean mxf_metadata_structural_component_parse (const MXFUL *key, MXFMetadataStructuralComponent *component, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_structural_component_parse (const MXFUL *key, MXFMetadataStructuralComponent *component, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_structural_component_reset (MXFMetadataStructuralComponent *component);
-gboolean mxf_metadata_generic_descriptor_parse (const MXFUL *key, MXFMetadataGenericDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_generic_descriptor_parse (const MXFUL *key, MXFMetadataGenericDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_generic_descriptor_reset (MXFMetadataGenericDescriptor *descriptor);
-gboolean mxf_metadata_file_descriptor_parse (const MXFUL *key, MXFMetadataFileDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_file_descriptor_parse (const MXFUL *key, MXFMetadataFileDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_file_descriptor_reset (MXFMetadataFileDescriptor *descriptor);
-gboolean mxf_metadata_generic_sound_essence_descriptor_parse (const MXFUL *key, MXFMetadataGenericSoundEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_generic_sound_essence_descriptor_parse (const MXFUL *key, MXFMetadataGenericSoundEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_generic_sound_essence_descriptor_reset (MXFMetadataGenericSoundEssenceDescriptor *descriptor);
-gboolean mxf_metadata_generic_picture_essence_descriptor_parse (const MXFUL *key, MXFMetadataGenericPictureEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_generic_picture_essence_descriptor_parse (const MXFUL *key, MXFMetadataGenericPictureEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_generic_picture_essence_descriptor_reset (MXFMetadataGenericPictureEssenceDescriptor *descriptor);
-gboolean mxf_metadata_cdci_picture_essence_descriptor_parse (const MXFUL *key, MXFMetadataCDCIPictureEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_cdci_picture_essence_descriptor_parse (const MXFUL *key, MXFMetadataCDCIPictureEssenceDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_cdci_picture_essence_descriptor_reset (MXFMetadataCDCIPictureEssenceDescriptor *descriptor);
-gboolean mxf_metadata_multiple_descriptor_parse (const MXFUL *key, MXFMetadataMultipleDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_multiple_descriptor_parse (const MXFUL *key, MXFMetadataMultipleDescriptor *descriptor, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_multiple_descriptor_reset (MXFMetadataMultipleDescriptor *descriptor);
-gboolean mxf_metadata_locator_parse (const MXFUL *key, MXFMetadataLocator *locator, const MXFPrimerPack *primer, guint16 type, const guint8 *data, gsize size);
+gboolean mxf_metadata_locator_parse (const MXFUL *key, MXFMetadataLocator *locator, const MXFPrimerPack *primer, guint16 type, const guint8 *data, guint size);
void mxf_metadata_locator_reset (MXFMetadataLocator *locator);
#endif /* __MXF_PARSE_H__ */