gstreamer/gst
Thiago Santos 5994b30257 qtdemux: fix leak by flushing previous sample info from trak
In fragmented streaming, multiple moov/moof will be parsed and their
previously stored samples array might leak when new values are parsed.
The parse_trak and callees won't free the previously stored values
before parsing the new ones.

In step-by-step, this is what happens:

1) initial moov is parsed, traks as well, streams are created. The
   trak doesn't contain samples because they are in the moof's trun
   boxes. n_samples is set to 0 while parsing the trak and the samples
   array is still NULL.
2) moofs are parsed, and their trun boxes will increase n_samples and
   create/extend the samples array
3) At some point a new moov might be sent (bitrate switching, for example)
   and parsing the trak will overwrite n_samples with the values from
   this trak. If the n_samples is set to 0 qtdemux will assume that
   the samples array is NULL and will leak it when a new one is
   created for the subsequent moofs.

This patch makes qtdemux properly free previous sample data before
creating new ones and adds an assert to catch future occurrences of
this issue when the code changes.
2015-07-08 11:53:44 -03:00
..
alpha Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
apetag Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
audiofx Revert "doc: Workaround gtkdoc issue" 2015-05-18 20:13:01 +02:00
audioparsers docs: remove outdated doc strings 2015-07-07 17:12:02 +02:00
auparse Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
autodetect Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
avi avidemux: fix event leak 2015-07-08 12:57:43 +01:00
cutter Revert "doc: Workaround gtkdoc issue" 2015-05-18 20:13:01 +02:00
debugutils Rename property enums from ARG_ to PROP_ 2015-04-27 11:22:11 +01:00
deinterlace deinterlace: update example pipeline 2015-06-25 10:47:40 +01:00
dtmf Rename property enums from ARG_ to PROP_ 2015-04-27 11:22:11 +01:00
effectv Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
equalizer Revert "doc: Workaround gtkdoc issue" 2015-05-18 20:13:01 +02:00
flv flvdemux: Handle seek flags properly 2015-07-06 10:30:42 -04:00
flx Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
goom goom: Initialised variables to remove compiler warnings 2015-07-07 13:18:49 +03:00
goom2k1 goom2k1: clean dereferences of private structure 2015-06-07 19:20:49 +01:00
icydemux Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
id3demux Rename property enums from ARG_ to PROP_ 2015-04-27 11:22:11 +01:00
imagefreeze Revert "imagefreeze: Remove impossible error condition" 2015-07-07 15:57:19 +01:00
interleave interleave: error when channel-positions-from-input=False 2015-06-05 08:48:25 -03:00
isomp4 qtdemux: fix leak by flushing previous sample info from trak 2015-07-08 11:53:44 -03:00
law mulawdec: Let baseclass estimate bitrate 2015-05-30 17:41:44 -04:00
level Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
matroska docs: fix "Symbol name not found at the start of the comment block" 2015-07-07 17:12:02 +02:00
monoscope Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
multifile splitmuxsrc: sticky events are sent automatically from the pad 2015-06-25 17:13:43 -03:00
multipart Rename property enums from ARG_ to PROP_ 2015-04-27 11:22:11 +01:00
replaygain Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
rtp rtph263depay: Make sure payload is large enough 2015-07-08 11:36:55 +01:00
rtpmanager rtpjitterbuffer: Calculate receive time if we don't have any 2015-07-08 17:02:05 +03:00
rtsp rtspsrc: Add new ntp-time-source property and deprecate use-pipeline-clock property 2015-06-25 17:16:49 +02:00
shapewipe Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
smpte Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
spectrum Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
udp dynudpsink: keep GCancellable fd around instead of re-creating it constantly 2015-05-27 17:08:47 +01:00
videobox Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
videocrop Rename property enums from ARG_ to PROP_ 2015-04-27 11:22:11 +01:00
videofilter Rename property enums from ARG_ to PROP_ 2015-04-27 11:22:11 +01:00
videomixer Release 1.5.1 2015-06-07 10:46:34 +02:00
wavenc Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
wavparse Remove obsolete Android build cruft 2015-04-26 17:55:07 +01:00
y4m Rename property enums from ARG_ to PROP_ 2015-04-27 11:22:11 +01:00
Makefile.am build: build plugins and examples in parallel where possible 2010-03-29 11:00:57 +01:00