mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
gst/mxf/: Return FALSE when parsing a metadata tag failed.
Original commit message from CVS: * gst/mxf/mxfaes-bwf.c: (mxf_metadata_wave_audio_essence_descriptor_handle_tag), (mxf_metadata_aes3_audio_essence_descriptor_handle_tag): * gst/mxf/mxfmetadata.c: (mxf_metadata_multiple_descriptor_handle_tag): Return FALSE when parsing a metadata tag failed. Remove some useless return value assignments.
This commit is contained in:
parent
bc93b81dd5
commit
425fdc1664
3 changed files with 58 additions and 46 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2008-12-15 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
|
* gst/mxf/mxfaes-bwf.c:
|
||||||
|
(mxf_metadata_wave_audio_essence_descriptor_handle_tag),
|
||||||
|
(mxf_metadata_aes3_audio_essence_descriptor_handle_tag):
|
||||||
|
* gst/mxf/mxfmetadata.c:
|
||||||
|
(mxf_metadata_multiple_descriptor_handle_tag):
|
||||||
|
Return FALSE when parsing a metadata tag failed.
|
||||||
|
Remove some useless return value assignments.
|
||||||
|
|
||||||
2008-12-15 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
2008-12-15 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
* gst/mxf/Makefile.am:
|
* gst/mxf/Makefile.am:
|
||||||
|
|
|
@ -147,8 +147,8 @@ mxf_metadata_wave_audio_essence_descriptor_handle_tag (MXFMetadataBase *
|
||||||
default:
|
default:
|
||||||
ret =
|
ret =
|
||||||
MXF_METADATA_BASE_CLASS
|
MXF_METADATA_BASE_CLASS
|
||||||
(mxf_metadata_wave_audio_essence_descriptor_parent_class)->
|
(mxf_metadata_wave_audio_essence_descriptor_parent_class)->handle_tag
|
||||||
handle_tag (metadata, primer, tag, tag_data, tag_size);
|
(metadata, primer, tag, tag_data, tag_size);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ error:
|
||||||
("Invalid wave audio essence descriptor local tag 0x%04x of size %u", tag,
|
("Invalid wave audio essence descriptor local tag 0x%04x of size %u", tag,
|
||||||
tag_size);
|
tag_size);
|
||||||
|
|
||||||
return TRUE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -201,8 +201,8 @@ mxf_metadata_aes3_audio_essence_descriptor_finalize (GstMiniObject * object)
|
||||||
self->fixed_user_data = NULL;
|
self->fixed_user_data = NULL;
|
||||||
|
|
||||||
GST_MINI_OBJECT_CLASS
|
GST_MINI_OBJECT_CLASS
|
||||||
(mxf_metadata_aes3_audio_essence_descriptor_parent_class)->
|
(mxf_metadata_aes3_audio_essence_descriptor_parent_class)->finalize
|
||||||
finalize (object);
|
(object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -220,21 +220,18 @@ mxf_metadata_aes3_audio_essence_descriptor_handle_tag (MXFMetadataBase *
|
||||||
goto error;
|
goto error;
|
||||||
self->emphasis = GST_READ_UINT8 (tag_data);
|
self->emphasis = GST_READ_UINT8 (tag_data);
|
||||||
GST_DEBUG (" emphasis = %u", self->emphasis);
|
GST_DEBUG (" emphasis = %u", self->emphasis);
|
||||||
ret = TRUE;
|
|
||||||
break;
|
break;
|
||||||
case 0x3d0f:
|
case 0x3d0f:
|
||||||
if (tag_size != 2)
|
if (tag_size != 2)
|
||||||
goto error;
|
goto error;
|
||||||
self->block_start_offset = GST_READ_UINT16_BE (tag_data);
|
self->block_start_offset = GST_READ_UINT16_BE (tag_data);
|
||||||
GST_DEBUG (" block start offset = %u", self->block_start_offset);
|
GST_DEBUG (" block start offset = %u", self->block_start_offset);
|
||||||
ret = TRUE;
|
|
||||||
break;
|
break;
|
||||||
case 0x3d08:
|
case 0x3d08:
|
||||||
if (tag_size != 1)
|
if (tag_size != 1)
|
||||||
goto error;
|
goto error;
|
||||||
self->auxiliary_bits_mode = GST_READ_UINT8 (tag_data);
|
self->auxiliary_bits_mode = GST_READ_UINT8 (tag_data);
|
||||||
GST_DEBUG (" auxiliary bits mode = %u", self->auxiliary_bits_mode);
|
GST_DEBUG (" auxiliary bits mode = %u", self->auxiliary_bits_mode);
|
||||||
ret = TRUE;
|
|
||||||
break;
|
break;
|
||||||
case 0x3d10:{
|
case 0x3d10:{
|
||||||
guint32 len;
|
guint32 len;
|
||||||
|
@ -267,7 +264,6 @@ mxf_metadata_aes3_audio_essence_descriptor_handle_tag (MXFMetadataBase *
|
||||||
tag_size--;
|
tag_size--;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = TRUE;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x3d11:{
|
case 0x3d11:{
|
||||||
|
@ -331,7 +327,6 @@ mxf_metadata_aes3_audio_essence_descriptor_handle_tag (MXFMetadataBase *
|
||||||
tag_size -= 24;
|
tag_size -= 24;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = TRUE;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x3d12:{
|
case 0x3d12:{
|
||||||
|
@ -364,7 +359,6 @@ mxf_metadata_aes3_audio_essence_descriptor_handle_tag (MXFMetadataBase *
|
||||||
tag_size--;
|
tag_size--;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = TRUE;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x3d13:{
|
case 0x3d13:{
|
||||||
|
@ -426,7 +420,6 @@ mxf_metadata_aes3_audio_essence_descriptor_handle_tag (MXFMetadataBase *
|
||||||
tag_size -= 24;
|
tag_size -= 24;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = TRUE;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* TODO: linked timecode track / data_stream_number parsing, see
|
/* TODO: linked timecode track / data_stream_number parsing, see
|
||||||
|
@ -434,8 +427,8 @@ mxf_metadata_aes3_audio_essence_descriptor_handle_tag (MXFMetadataBase *
|
||||||
default:
|
default:
|
||||||
ret =
|
ret =
|
||||||
MXF_METADATA_BASE_CLASS
|
MXF_METADATA_BASE_CLASS
|
||||||
(mxf_metadata_aes3_audio_essence_descriptor_parent_class)->
|
(mxf_metadata_aes3_audio_essence_descriptor_parent_class)->handle_tag
|
||||||
handle_tag (metadata, primer, tag, tag_data, tag_size);
|
(metadata, primer, tag, tag_data, tag_size);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,7 +440,7 @@ error:
|
||||||
("Invalid AES3 audio essence descriptor local tag 0x%04x of size %u", tag,
|
("Invalid AES3 audio essence descriptor local tag 0x%04x of size %u", tag,
|
||||||
tag_size);
|
tag_size);
|
||||||
|
|
||||||
return TRUE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -761,8 +754,9 @@ mxf_aes_bwf_create_caps (MXFMetadataGenericPackage * package,
|
||||||
s = (MXFMetadataGenericSoundEssenceDescriptor *) track->descriptor[i];
|
s = (MXFMetadataGenericSoundEssenceDescriptor *) track->descriptor[i];
|
||||||
bwf = TRUE;
|
bwf = TRUE;
|
||||||
break;
|
break;
|
||||||
} else if (MXF_IS_METADATA_GENERIC_SOUND_ESSENCE_DESCRIPTOR (track->
|
} else
|
||||||
descriptor[i])
|
if (MXF_IS_METADATA_GENERIC_SOUND_ESSENCE_DESCRIPTOR (track->descriptor
|
||||||
|
[i])
|
||||||
&& (track->descriptor[i]->essence_container.u[14] == 0x03
|
&& (track->descriptor[i]->essence_container.u[14] == 0x03
|
||||||
|| track->descriptor[i]->essence_container.u[14] == 0x04
|
|| track->descriptor[i]->essence_container.u[14] == 0x04
|
||||||
|| track->descriptor[i]->essence_container.u[14] == 0x09)) {
|
|| track->descriptor[i]->essence_container.u[14] == 0x09)) {
|
||||||
|
|
|
@ -151,8 +151,8 @@ mxf_metadata_handle_tag (MXFMetadataBase * metadata, MXFPrimerPack * primer,
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret =
|
ret =
|
||||||
MXF_METADATA_BASE_CLASS (mxf_metadata_parent_class)->
|
MXF_METADATA_BASE_CLASS (mxf_metadata_parent_class)->handle_tag
|
||||||
handle_tag (metadata, primer, tag, tag_data, tag_size);
|
(metadata, primer, tag, tag_data, tag_size);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -444,8 +444,9 @@ mxf_metadata_preface_handle_tag (MXFMetadataBase * metadata,
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
ret =
|
ret =
|
||||||
MXF_METADATA_BASE_CLASS (mxf_metadata_preface_parent_class)->
|
MXF_METADATA_BASE_CLASS
|
||||||
handle_tag (metadata, primer, tag, tag_data, tag_size);
|
(mxf_metadata_preface_parent_class)->handle_tag (metadata, primer,
|
||||||
|
tag, tag_data, tag_size);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,8 +504,9 @@ mxf_metadata_preface_resolve (MXFMetadataBase * m, MXFMetadataBase ** metadata)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return MXF_METADATA_BASE_CLASS (mxf_metadata_preface_parent_class)->
|
return
|
||||||
resolve (m, metadata);
|
MXF_METADATA_BASE_CLASS (mxf_metadata_preface_parent_class)->resolve (m,
|
||||||
|
metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -798,8 +800,9 @@ mxf_metadata_content_storage_resolve (MXFMetadataBase * m,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return MXF_METADATA_BASE_CLASS (mxf_metadata_content_storage_parent_class)->
|
return
|
||||||
resolve (m, metadata);
|
MXF_METADATA_BASE_CLASS
|
||||||
|
(mxf_metadata_content_storage_parent_class)->resolve (m, metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1076,8 +1079,9 @@ mxf_metadata_generic_package_resolve (MXFMetadataBase * m,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return MXF_METADATA_BASE_CLASS (mxf_metadata_generic_package_parent_class)->
|
return
|
||||||
resolve (m, metadata);
|
MXF_METADATA_BASE_CLASS
|
||||||
|
(mxf_metadata_generic_package_parent_class)->resolve (m, metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1105,8 +1109,8 @@ mxf_metadata_material_package_resolve (MXFMetadataBase * m,
|
||||||
MXFMetadataBase ** metadata)
|
MXFMetadataBase ** metadata)
|
||||||
{
|
{
|
||||||
gboolean ret =
|
gboolean ret =
|
||||||
MXF_METADATA_BASE_CLASS (mxf_metadata_material_package_parent_class)->
|
MXF_METADATA_BASE_CLASS
|
||||||
resolve (m, metadata);
|
(mxf_metadata_material_package_parent_class)->resolve (m, metadata);
|
||||||
MXFMetadataGenericPackage *self = MXF_METADATA_GENERIC_PACKAGE (m);
|
MXFMetadataGenericPackage *self = MXF_METADATA_GENERIC_PACKAGE (m);
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
|
@ -1221,8 +1225,9 @@ mxf_metadata_source_package_resolve (MXFMetadataBase * m,
|
||||||
MXFMetadataGenericDescriptor *d = NULL;
|
MXFMetadataGenericDescriptor *d = NULL;
|
||||||
|
|
||||||
if (mxf_ul_is_zero (&self->descriptors_uid))
|
if (mxf_ul_is_zero (&self->descriptors_uid))
|
||||||
return MXF_METADATA_BASE_CLASS (mxf_metadata_source_package_parent_class)->
|
return
|
||||||
resolve (m, metadata);
|
MXF_METADATA_BASE_CLASS
|
||||||
|
(mxf_metadata_source_package_parent_class)->resolve (m, metadata);
|
||||||
|
|
||||||
while (*p) {
|
while (*p) {
|
||||||
current = *p;
|
current = *p;
|
||||||
|
@ -1261,8 +1266,8 @@ mxf_metadata_source_package_resolve (MXFMetadataBase * m,
|
||||||
}
|
}
|
||||||
|
|
||||||
ret =
|
ret =
|
||||||
MXF_METADATA_BASE_CLASS (mxf_metadata_source_package_parent_class)->
|
MXF_METADATA_BASE_CLASS
|
||||||
resolve (m, metadata);
|
(mxf_metadata_source_package_parent_class)->resolve (m, metadata);
|
||||||
|
|
||||||
for (i = 0; i < package->n_tracks; i++) {
|
for (i = 0; i < package->n_tracks; i++) {
|
||||||
guint n_descriptor = 0, k = 0;
|
guint n_descriptor = 0, k = 0;
|
||||||
|
@ -1721,8 +1726,9 @@ mxf_metadata_sequence_resolve (MXFMetadataBase * m, MXFMetadataBase ** metadata)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return MXF_METADATA_BASE_CLASS (mxf_metadata_sequence_parent_class)->
|
return
|
||||||
resolve (m, metadata);
|
MXF_METADATA_BASE_CLASS (mxf_metadata_sequence_parent_class)->resolve (m,
|
||||||
|
metadata);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1941,8 +1947,9 @@ mxf_metadata_source_clip_resolve (MXFMetadataBase * m,
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return MXF_METADATA_BASE_CLASS (mxf_metadata_source_clip_parent_class)->
|
return
|
||||||
resolve (m, metadata);
|
MXF_METADATA_BASE_CLASS (mxf_metadata_source_clip_parent_class)->resolve
|
||||||
|
(m, metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2173,8 +2180,9 @@ mxf_metadata_dm_segment_resolve (MXFMetadataBase * m,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return MXF_METADATA_BASE_CLASS (mxf_metadata_dm_segment_parent_class)->
|
return
|
||||||
resolve (m, metadata);
|
MXF_METADATA_BASE_CLASS (mxf_metadata_dm_segment_parent_class)->resolve
|
||||||
|
(m, metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2298,8 +2306,8 @@ mxf_metadata_generic_descriptor_resolve (MXFMetadataBase * m,
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
MXF_METADATA_BASE_CLASS (mxf_metadata_generic_descriptor_parent_class)->
|
MXF_METADATA_BASE_CLASS
|
||||||
resolve (m, metadata);
|
(mxf_metadata_generic_descriptor_parent_class)->resolve (m, metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -3064,8 +3072,8 @@ mxf_metadata_multiple_descriptor_finalize (GstMiniObject * object)
|
||||||
g_free (self->sub_descriptors);
|
g_free (self->sub_descriptors);
|
||||||
self->sub_descriptors = NULL;
|
self->sub_descriptors = NULL;
|
||||||
|
|
||||||
GST_MINI_OBJECT_CLASS (mxf_metadata_multiple_descriptor_parent_class)->
|
GST_MINI_OBJECT_CLASS
|
||||||
finalize (object);
|
(mxf_metadata_multiple_descriptor_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -3125,7 +3133,7 @@ error:
|
||||||
GST_ERROR ("Invalid multiple descriptor local tag 0x%04x of size %u", tag,
|
GST_ERROR ("Invalid multiple descriptor local tag 0x%04x of size %u", tag,
|
||||||
tag_size);
|
tag_size);
|
||||||
|
|
||||||
return TRUE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -3161,8 +3169,8 @@ mxf_metadata_multiple_descriptor_resolve (MXFMetadataBase * m,
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
MXF_METADATA_BASE_CLASS (mxf_metadata_multiple_descriptor_parent_class)->
|
MXF_METADATA_BASE_CLASS
|
||||||
resolve (m, metadata);
|
(mxf_metadata_multiple_descriptor_parent_class)->resolve (m, metadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in a new issue