mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
videoparsers: Check for NULL return value of gst_pad_get_current_caps()
https://bugzilla.gnome.org/show_bug.cgi?id=759503
This commit is contained in:
parent
720b9bef05
commit
88d7beb921
8 changed files with 79 additions and 15 deletions
|
@ -396,10 +396,19 @@ gst_dirac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstTagList *taglist;
|
GstTagList *taglist;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
|
if (G_UNLIKELY (caps == NULL)) {
|
||||||
|
if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (parse))) {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is flushing");
|
||||||
|
return GST_FLOW_FLUSHING;
|
||||||
|
} else {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is not negotiated!");
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
|
@ -439,10 +439,19 @@ gst_h263_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstTagList *taglist;
|
GstTagList *taglist;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
|
if (G_UNLIKELY (caps == NULL)) {
|
||||||
|
if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (parse))) {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is flushing");
|
||||||
|
return GST_FLOW_FLUSHING;
|
||||||
|
} else {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is not negotiated!");
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
|
@ -2197,8 +2197,6 @@ gst_h264_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstTagList *taglist;
|
GstTagList *taglist;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
if (caps == NULL) {
|
if (caps == NULL) {
|
||||||
|
@ -2210,6 +2208,8 @@ gst_h264_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
return GST_FLOW_NOT_NEGOTIATED;
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
|
@ -1765,10 +1765,19 @@ gst_h265_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstTagList *taglist;
|
GstTagList *taglist;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
|
if (G_UNLIKELY (caps == NULL)) {
|
||||||
|
if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (parse))) {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is flushing");
|
||||||
|
return GST_FLOW_FLUSHING;
|
||||||
|
} else {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is not negotiated!");
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
|
@ -722,10 +722,19 @@ gst_mpeg4vparse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstTagList *taglist;
|
GstTagList *taglist;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
|
if (G_UNLIKELY (caps == NULL)) {
|
||||||
|
if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (parse))) {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is flushing");
|
||||||
|
return GST_FLOW_FLUSHING;
|
||||||
|
} else {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is not negotiated!");
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
|
@ -948,8 +948,18 @@ gst_mpegv_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
|
if (G_UNLIKELY (caps == NULL)) {
|
||||||
|
if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (parse))) {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is flushing");
|
||||||
|
return GST_FLOW_FLUSHING;
|
||||||
|
} else {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is not negotiated!");
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
|
@ -259,10 +259,19 @@ gst_png_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstTagList *taglist;
|
GstTagList *taglist;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
|
if (G_UNLIKELY (caps == NULL)) {
|
||||||
|
if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (parse))) {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is flushing");
|
||||||
|
return GST_FLOW_FLUSHING;
|
||||||
|
} else {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is not negotiated!");
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
|
@ -1700,10 +1700,19 @@ gst_vc1_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
||||||
GstTagList *taglist;
|
GstTagList *taglist;
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
taglist = gst_tag_list_new_empty ();
|
|
||||||
|
|
||||||
/* codec tag */
|
/* codec tag */
|
||||||
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
|
||||||
|
if (G_UNLIKELY (caps == NULL)) {
|
||||||
|
if (GST_PAD_IS_FLUSHING (GST_BASE_PARSE_SRC_PAD (parse))) {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is flushing");
|
||||||
|
return GST_FLOW_FLUSHING;
|
||||||
|
} else {
|
||||||
|
GST_INFO_OBJECT (parse, "Src pad is not negotiated!");
|
||||||
|
return GST_FLOW_NOT_NEGOTIATED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taglist = gst_tag_list_new_empty ();
|
||||||
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
gst_pb_utils_add_codec_description_to_tag_list (taglist,
|
||||||
GST_TAG_VIDEO_CODEC, caps);
|
GST_TAG_VIDEO_CODEC, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
Loading…
Reference in a new issue