mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 09:10:36 +00:00
smpte: Fix memory leak
In gst_smpte_collected(), check upfront if input formats are same or not. This avoids allocation of in1 and in2 buffers and subsequent memory leak when input formats do not match. https://bugzilla.gnome.org/show_bug.cgi?id=754153
This commit is contained in:
parent
dd1bd2beb3
commit
cac239ab89
1 changed files with 3 additions and 3 deletions
|
@ -468,6 +468,9 @@ gst_smpte_collected (GstCollectPads * pads, GstSMPTE * smpte)
|
||||||
!gst_pad_has_current_caps (smpte->sinkpad2))
|
!gst_pad_has_current_caps (smpte->sinkpad2))
|
||||||
goto not_negotiated;
|
goto not_negotiated;
|
||||||
|
|
||||||
|
if (!gst_video_info_is_equal (&smpte->vinfo1, &smpte->vinfo2))
|
||||||
|
goto input_formats_do_not_match;
|
||||||
|
|
||||||
if (smpte->send_stream_start) {
|
if (smpte->send_stream_start) {
|
||||||
gchar s_id[32];
|
gchar s_id[32];
|
||||||
|
|
||||||
|
@ -506,9 +509,6 @@ gst_smpte_collected (GstCollectPads * pads, GstSMPTE * smpte)
|
||||||
gst_buffer_unmap (in2, &map);
|
gst_buffer_unmap (in2, &map);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gst_video_info_is_equal (&smpte->vinfo1, &smpte->vinfo2))
|
|
||||||
goto input_formats_do_not_match;
|
|
||||||
|
|
||||||
if (smpte->position < smpte->end_position) {
|
if (smpte->position < smpte->end_position) {
|
||||||
outbuf = gst_buffer_new_and_alloc (I420_SIZE (smpte->width, smpte->height));
|
outbuf = gst_buffer_new_and_alloc (I420_SIZE (smpte->width, smpte->height));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue