mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
gst/mpegaudioparse/gstmpegaudioparse.c: Plug some leaks.
Original commit message from CVS: * gst/mpegaudioparse/gstmpegaudioparse.c: Plug some leaks.
This commit is contained in:
parent
fcc7538113
commit
b4cde6fa14
2 changed files with 27 additions and 11 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2007-11-19 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
|
* gst/mpegaudioparse/gstmpegaudioparse.c:
|
||||||
|
Plug some leaks.
|
||||||
|
|
||||||
2007-11-13 Stefan Kost <ensonic@users.sf.net>
|
2007-11-13 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
* gst/asfdemux/gstasfdemux.c:
|
* gst/asfdemux/gstasfdemux.c:
|
||||||
|
|
|
@ -101,7 +101,7 @@ mp3parse_total_bytes (GstMPEGAudioParse * mp3parse, gint64 * total);
|
||||||
|
|
||||||
GST_BOILERPLATE (GstMPEGAudioParse, gst_mp3parse, GstElement, GST_TYPE_ELEMENT);
|
GST_BOILERPLATE (GstMPEGAudioParse, gst_mp3parse, GstElement, GST_TYPE_ELEMENT);
|
||||||
|
|
||||||
static guint mp3types_bitrates[2][3][16] = {
|
static const guint mp3types_bitrates[2][3][16] = {
|
||||||
{
|
{
|
||||||
{0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,},
|
{0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,},
|
||||||
{0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,},
|
{0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,},
|
||||||
|
@ -114,7 +114,7 @@ static guint mp3types_bitrates[2][3][16] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static guint mp3types_freqs[3][3] = { {44100, 48000, 32000},
|
static const guint mp3types_freqs[3][3] = { {44100, 48000, 32000},
|
||||||
{22050, 24000, 16000},
|
{22050, 24000, 16000},
|
||||||
{11025, 12000, 8000}
|
{11025, 12000, 8000}
|
||||||
};
|
};
|
||||||
|
@ -268,16 +268,24 @@ gst_mp3parse_reset (GstMPEGAudioParse * mp3parse)
|
||||||
|
|
||||||
if (mp3parse->seek_table) {
|
if (mp3parse->seek_table) {
|
||||||
g_list_foreach (mp3parse->seek_table, (GFunc) g_free, NULL);
|
g_list_foreach (mp3parse->seek_table, (GFunc) g_free, NULL);
|
||||||
|
g_list_free (mp3parse->seek_table);
|
||||||
mp3parse->seek_table = NULL;
|
mp3parse->seek_table = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_mutex_lock (mp3parse->pending_accurate_seeks_lock);
|
g_mutex_lock (mp3parse->pending_accurate_seeks_lock);
|
||||||
if (mp3parse->pending_accurate_seeks) {
|
if (mp3parse->pending_accurate_seeks) {
|
||||||
g_slist_foreach (mp3parse->pending_accurate_seeks, (GFunc) g_free, NULL);
|
g_slist_foreach (mp3parse->pending_accurate_seeks, (GFunc) g_free, NULL);
|
||||||
|
g_slist_free (mp3parse->pending_accurate_seeks);
|
||||||
mp3parse->pending_accurate_seeks = NULL;
|
mp3parse->pending_accurate_seeks = NULL;
|
||||||
}
|
}
|
||||||
g_mutex_unlock (mp3parse->pending_accurate_seeks_lock);
|
g_mutex_unlock (mp3parse->pending_accurate_seeks_lock);
|
||||||
|
|
||||||
|
if (mp3parse->pending_segment) {
|
||||||
|
GstEvent **eventp = &mp3parse->pending_segment;
|
||||||
|
|
||||||
|
gst_event_replace (eventp, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
mp3parse->exact_position = FALSE;
|
mp3parse->exact_position = FALSE;
|
||||||
gst_segment_init (&mp3parse->segment, GST_FORMAT_TIME);
|
gst_segment_init (&mp3parse->segment, GST_FORMAT_TIME);
|
||||||
}
|
}
|
||||||
|
@ -417,15 +425,16 @@ gst_mp3parse_sink_event (GstPad * pad, GstEvent * event)
|
||||||
", pos = %" GST_TIME_FORMAT, GST_TIME_ARGS (seg_start),
|
", pos = %" GST_TIME_FORMAT, GST_TIME_ARGS (seg_start),
|
||||||
GST_TIME_ARGS (seg_stop), GST_TIME_ARGS (seg_pos));
|
GST_TIME_ARGS (seg_stop), GST_TIME_ARGS (seg_pos));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (format != GST_FORMAT_TIME) {
|
||||||
|
/* Unknown incoming segment format. Output a default open-ended
|
||||||
|
* TIME segment */
|
||||||
|
gst_event_unref (event);
|
||||||
|
event = gst_event_new_new_segment_full (update, rate, applied_rate,
|
||||||
|
GST_FORMAT_TIME, 0, GST_CLOCK_TIME_NONE, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (format != GST_FORMAT_TIME) {
|
|
||||||
/* Unknown incoming segment format. Output a default open-ended
|
|
||||||
* TIME segment */
|
|
||||||
gst_event_unref (event);
|
|
||||||
event = gst_event_new_new_segment_full (update, rate, applied_rate,
|
|
||||||
GST_FORMAT_TIME, 0, GST_CLOCK_TIME_NONE, 0);
|
|
||||||
}
|
|
||||||
mp3parse->resyncing = TRUE;
|
mp3parse->resyncing = TRUE;
|
||||||
mp3parse->cur_offset = -1;
|
mp3parse->cur_offset = -1;
|
||||||
mp3parse->next_ts = GST_CLOCK_TIME_NONE;
|
mp3parse->next_ts = GST_CLOCK_TIME_NONE;
|
||||||
|
@ -445,6 +454,7 @@ gst_mp3parse_sink_event (GstPad * pad, GstEvent * event)
|
||||||
* the caps are fixed and the next linked element can receive the segment. */
|
* the caps are fixed and the next linked element can receive the segment. */
|
||||||
eventp = &mp3parse->pending_segment;
|
eventp = &mp3parse->pending_segment;
|
||||||
gst_event_replace (eventp, event);
|
gst_event_replace (eventp, event);
|
||||||
|
gst_event_unref (event);
|
||||||
res = TRUE;
|
res = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -618,9 +628,10 @@ gst_mp3parse_emit_frame (GstMPEGAudioParse * mp3parse, guint size)
|
||||||
GST_BUFFER_OFFSET (outbuf));
|
GST_BUFFER_OFFSET (outbuf));
|
||||||
mp3parse->segment.last_stop = GST_BUFFER_TIMESTAMP (outbuf);
|
mp3parse->segment.last_stop = GST_BUFFER_TIMESTAMP (outbuf);
|
||||||
/* push any pending segment now */
|
/* push any pending segment now */
|
||||||
if (mp3parse->pending_segment)
|
if (mp3parse->pending_segment) {
|
||||||
gst_pad_push_event (mp3parse->srcpad, mp3parse->pending_segment);
|
gst_pad_push_event (mp3parse->srcpad, mp3parse->pending_segment);
|
||||||
mp3parse->pending_segment = NULL;
|
mp3parse->pending_segment = NULL;
|
||||||
|
}
|
||||||
ret = gst_pad_push (mp3parse->srcpad, outbuf);
|
ret = gst_pad_push (mp3parse->srcpad, outbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue