gstreamer/plugins/elements
Tim-Philipp Müller bbec3d4e2f queue2: fix possible data corruption in ring buffer mode when seeking
Fix race that could cause data corruption when seeking in ring buffer
mode.

In perform_seek_to_offset(), called from the demuxer's pull_range
request, we drop the lock, tell upstream (usually a http source)
to seek to a different offset, then re-acquire the lock before we
do things to the ranges. However, between us sending the seek event
and re-acquiring the lock, the source thread might already have pushed
some data and moved along the range's writing_pos beyond the seek
offset. In that case we don't want to set the writing position back
to the requested seek position, as it would cause data to be written
to the wrong offset in the file or ring buffer.

Reproducible doing seek-emulated fast-forward/backward on 006653.
2012-09-12 12:31:04 +01:00
..
.gitignore ignore more 2005-06-17 09:12:33 +00:00
gstcapsfilter.c docs, gst: typo fixes 2011-09-07 18:03:17 +01:00
gstcapsfilter.h Add more missing docs. 2007-08-13 13:33:07 +00:00
gstelements.c funnel: Integrate into the build system and rename the types 2011-03-29 11:20:05 +02:00
gstfakesink.c fakesink: answer SEEKING query 2012-02-25 15:07:05 +00:00
gstfakesink.h fakesink: use g_object_notify_by_pspec() and remove work-around for old GLib versions if possible 2010-10-07 19:04:00 +01:00
gstfakesrc.c fakesrc: Make event/buffer verbose output consistent with identity and print buffer flags 2011-12-06 14:55:57 +01:00
gstfakesrc.h plugins/elements/gstfakesrc.*: Added format property to control the format of the newsegment events. 2008-05-07 09:34:58 +00:00
gstfdsink.c fdsink: implement GstBaseSink::query instead of messing with the pad 2012-02-25 15:18:00 +00:00
gstfdsink.h fdsink: implement SEEKING query 2012-02-25 15:08:55 +00:00
gstfdsrc.c plugins: explicitly cast initialization values to the correct type 2012-01-04 23:59:57 +00:00
gstfdsrc.h fdsrc: allow specifying the size in bytes on the uri 2010-04-09 13:21:19 +02:00
gstfilesink.c filesink: implement SEEKING query 2012-02-25 15:07:43 +00:00
gstfilesink.h build: sprintf, sscanf need stdio.h 2009-10-07 10:59:54 +03:00
gstfilesrc.c configure: explicitly check for sys/mman.h header 2012-05-15 19:05:42 +01:00
gstfilesrc.h filesrc: remove unused or questionable madvise() calls in deprecated mmap code paths 2012-05-15 18:43:59 +01:00
gstfunnel.c gstfunnel: avoid access of freed pad 2012-06-14 14:09:57 +01:00
gstfunnel.h funnel: Integrate into the build system and rename the types 2011-03-29 11:20:05 +02:00
gstidentity.c identity: Print buffer flags in the verbose output 2011-12-06 14:55:57 +01:00
gstidentity.h identity: use g_object_notify_by_pspec() and remove work-around for old GLib versions if possible 2010-10-07 19:03:42 +01:00
gstinputselector.c inputselector: avoid notify-tags holding lock 2012-06-21 10:24:46 -03:00
gstinputselector.h inputselector: Properly sync when changing streams 2012-05-31 11:49:29 +02:00
gstmultiqueue.c multiqueue: Don't use buffer after pushing it downstream 2012-04-09 16:40:47 +02:00
gstmultiqueue.h multiqueue: Add mode to synchronize deactivated/not-linked streams by the running time 2011-05-14 11:39:35 +02:00
gstoutputselector.c output-selector: Do not false warn about unlinked pad 2011-12-29 16:59:29 -03:00
gstoutputselector.h output-selector: Add pad-negotiation-mode property 2011-01-06 18:42:29 +00:00
gstqueue.c Work around deprecated thread API in glib master 2011-12-04 13:35:38 +00:00
gstqueue.h queue: use statically allocated GQueue 2011-11-03 23:08:52 +00:00
gstqueue2.c queue2: fix possible data corruption in ring buffer mode when seeking 2012-09-12 12:31:04 +01:00
gstqueue2.h queue2: Keep track of the seeking state 2012-04-10 12:44:35 +02:00
gsttee.c tee: Fix 'use of logical '&&' with constant operand' compiler warning 2012-03-06 12:27:33 +01:00
gsttee.h tee: avoid expensive typechecks, and avoid getting ref to parent. 2009-12-07 09:51:03 +01:00
gsttypefindelement.c typefinder: use GST_TYPE_FIND_NONE instead of 0 2011-08-26 14:11:15 +02:00
gsttypefindelement.h plugins/elements/gsttypefindelement.*: Cleanup properties. 2008-04-02 17:21:40 +00:00
gstvalve.c valve: Only set discont on the first buffer after drops 2011-01-28 15:38:17 -05:00
gstvalve.h valve: some minor clean-ups 2010-12-31 00:51:12 +00:00
Makefile.am android: make it ready for androgenizer 2011-04-11 01:08:07 +02:00