Merge remote-tracking branch 'origin/0.10'

Conflicts:
	gst/mpegtsdemux/tsdemux.c
This commit is contained in:
Sebastian Dröge 2012-04-02 15:31:38 +02:00
commit bc07e44546
4 changed files with 19 additions and 5 deletions

View file

@ -1,8 +1,5 @@
plugin_LTLIBRARIES = libgstmpegtsdemux.la
# FIXME 0.11: ignore GValueArray warnings for now until this is sorted
ERROR_CFLAGS=
libgstmpegtsdemux_la_SOURCES = \
gsttsdemux.c \
gstmpegdesc.c \

View file

@ -1399,9 +1399,11 @@ mpegts_base_chain (GstPad * pad, GstBuffer * buf)
based = mpegts_base_handle_psi (base, &section);
gst_buffer_unref (section.buffer);
if (G_UNLIKELY (!based))
if (G_UNLIKELY (!based)) {
gst_buffer_unref (packet.buffer);
/* bad PSI table */
goto next;
}
}
/* we need to push section packet downstream */
res = mpegts_base_push (base, &packet, &section);

View file

@ -2375,8 +2375,13 @@ MpegTSPacketizerPacketReturn
mpegts_packetizer_process_next_packet (MpegTSPacketizer2 * packetizer)
{
MpegTSPacketizerPacket packet;
MpegTSPacketizerPacketReturn ret;
return mpegts_packetizer_next_packet (packetizer, &packet);
ret = mpegts_packetizer_next_packet (packetizer, &packet);
if (packet.buffer)
gst_buffer_unref (packet.buffer);
return ret;
}
void

View file

@ -1032,6 +1032,16 @@ gst_ts_demux_stream_flush (TSDemuxStream * stream)
memset (stream->pendingbuffers, 0, TS_MAX_PENDING_BUFFERS);
stream->nbpending = 0;
if (stream->current) {
gst_buffer_list_unref (stream->current);
stream->current = NULL;
}
if (stream->currentit) {
gst_buffer_list_iterator_free (stream->currentit);
stream->currentit = NULL;
}
if (stream->currentlist) {
g_list_foreach (stream->currentlist, (GFunc) gst_buffer_unref, NULL);
g_list_free (stream->currentlist);