diff options
Diffstat (limited to 'gst/mxf/mxfmpeg.c')
-rw-r--r-- | gst/mxf/mxfmpeg.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/gst/mxf/mxfmpeg.c b/gst/mxf/mxfmpeg.c index 534b9fc8..868aeb80 100644 --- a/gst/mxf/mxfmpeg.c +++ b/gst/mxf/mxfmpeg.c @@ -900,8 +900,11 @@ mxf_mpeg_audio_get_descriptor (GstPadTemplate * tmpl, GstCaps * caps, if (strcmp (gst_structure_get_name (s), "audio/mpeg") == 0) { gint mpegversion; - if (!gst_structure_get_int (s, "mpegversion", &mpegversion)) + if (!gst_structure_get_int (s, "mpegversion", &mpegversion)) { + GST_ERROR ("Invalid caps %" GST_PTR_FORMAT, caps); + gst_mini_object_unref (GST_MINI_OBJECT_CAST (ret)); return NULL; + } if (mpegversion == 1) { gint layer = 0; @@ -943,13 +946,18 @@ mxf_mpeg_audio_get_descriptor (GstPadTemplate * tmpl, GstCaps * caps, if (!gst_structure_get_int (s, "rate", &rate)) { GST_ERROR ("Invalid rate"); + gst_mini_object_unref (GST_MINI_OBJECT_CAST (ret)); return NULL; } md->rate = rate; memcpy (&ret->parent.essence_container, &mpeg_essence_container_ul, 16); - mxf_metadata_generic_sound_essence_descriptor_from_caps (ret, caps); + if (!mxf_metadata_generic_sound_essence_descriptor_from_caps (ret, caps)) { + gst_mini_object_unref (GST_MINI_OBJECT_CAST (ret)); + return NULL; + } + *handler = mxf_mpeg_audio_write_func; return (MXFMetadataFileDescriptor *) ret; @@ -1157,8 +1165,11 @@ mxf_mpeg_video_get_descriptor (GstPadTemplate * tmpl, GstCaps * caps, if (strcmp (gst_structure_get_name (s), "video/mpeg") == 0) { gint mpegversion; - if (!gst_structure_get_int (s, "mpegversion", &mpegversion)) + if (!gst_structure_get_int (s, "mpegversion", &mpegversion)) { + GST_ERROR ("Invalid caps %" GST_PTR_FORMAT, caps); + gst_mini_object_unref (GST_MINI_OBJECT_CAST (ret)); return NULL; + } if (mpegversion == 1) { MXFMPEGEssenceType type = MXF_MPEG_ESSENCE_TYPE_VIDEO_MPEG2; @@ -1201,8 +1212,12 @@ mxf_mpeg_video_get_descriptor (GstPadTemplate * tmpl, GstCaps * caps, } - mxf_metadata_generic_picture_essence_descriptor_from_caps (&ret-> - parent.parent, caps); + if (!mxf_metadata_generic_picture_essence_descriptor_from_caps (&ret-> + parent.parent, caps)) { + gst_mini_object_unref (GST_MINI_OBJECT_CAST (ret)); + return NULL; + } + *handler = mxf_mpeg_video_write_func; return (MXFMetadataFileDescriptor *) ret; |