gstreamer/plugins/elements
Anton Bondarenko f468eb7db0 filesink: continue element cleanup even if fclose fails
Sometimes filesink cleanup during stop may fail due to fclose error.
In this case object left partial cleanup with no file opened
but still holding old file descriptor.

It's not possible to change location property in a such state,
so next start will cause old file overwrite if 'append' does not set.

According to man page and POSIX standard about fclose behavior(extract):
------------------------------------------------------------------------
The fclose() function shall cause the stream pointed to by stream
to be flushed and the associated file to be closed.
...
Whether or not the call succeeds, the stream shall be disassociated
from the file and any buffer set by the setbuf() or setvbuf()
function shall be disassociated from the stream.
...
The fclose() function shall perform the equivalent of a close()
on the file descriptor that is associated with the stream
pointed to by stream.

After the call to fclose(), any use of stream results
in undefined behavior.
------------------------------------------------------------------------

So file is in 'closed' state no matter if fclose succeed or not.
And cleanup could be continued.

https://bugzilla.gnome.org/show_bug.cgi?id=757596
2015-11-05 10:17:41 +01:00
..
.gitignore ignore more 2005-06-17 09:12:33 +00:00
gstcapsfilter.c capsfilter: remove proxying of accept-caps downstream 2015-09-26 07:13:45 -03:00
gstcapsfilter.h doc/capsfilter: Document filtering modes 2015-07-28 16:57:43 -04:00
gstconcat.c concat: dot not reset pad states too early 2015-07-21 00:22:25 -03:00
gstconcat.h concat: Add adjust-base property 2015-06-22 14:11:30 +02:00
gstdownloadbuffer.c downloadbuffer, benchmarks: fix error leaks in failure code paths 2015-09-15 18:21:58 +01:00
gstdownloadbuffer.h sparsefile: keep it private as helper API for downloadbuffer 2014-05-13 20:05:55 +01:00
gstelements.c streamiddemux: Add streamiddemux element 2015-03-12 14:42:18 +00:00
gstelements_private.c gst_writev: define UIO_MAXIOV on iOS/OSX 2015-06-11 23:06:26 +01:00
gstelements_private.h plugins: add helper function for writing buffers out with writev() 2014-11-30 14:40:46 +00:00
gstfakesink.c docs: gst-launch -> gst-launch-1.0 in example pipelines 2015-05-10 11:35:50 +01:00
gstfakesink.h Revert "Potential GstContext regression" 2013-09-24 12:47:52 +02:00
gstfakesrc.c docs: another sweep canonicalizing the plugin docs sections file 2015-07-03 12:39:57 +02:00
gstfakesrc.h fakesrc: removing unused pattern option 2014-10-02 13:45:34 +01:00
gstfdsink.c fdsink: use writev() in ::render() to write out memories without merging them 2014-11-30 14:40:46 +00:00
gstfdsink.h fdsink: implement ::render_list() using writev() 2014-11-30 14:40:46 +00:00
gstfdsrc.c Revert "doc: Workaround gtkdoc issue" 2015-05-18 13:13:55 +01:00
gstfdsrc.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstfilesink.c filesink: continue element cleanup even if fclose fails 2015-11-05 10:17:41 +01:00
gstfilesink.h doc/filesink: Add BufferMode enumeration 2015-07-28 16:57:36 -04:00
gstfilesrc.c docs: gst-launch -> gst-launch-1.0 in example pipelines 2015-05-10 11:35:50 +01:00
gstfilesrc.h Fix FSF address 2012-11-03 20:44:48 +00:00
gstfunnel.c funnel: Fix racy state change 2015-09-24 12:14:57 +02:00
gstfunnel.h funnel: add "forward-sticky-events" property 2015-06-25 10:53:55 +02:00
gstidentity.c identity: refactor and add tests using GstHarness 2015-07-07 13:05:34 +03:00
gstidentity.h identity: With sync=true, don't pre-roll 2015-04-27 12:27:40 -04:00
gstinputselector.c inputselector: Fix buffer leak in sync_streams & cache_buffers mode 2015-09-21 10:33:55 +02:00
gstinputselector.h inputselector: Only try to push the first EOS received 2015-04-24 17:19:49 -03:00
gstmultiqueue.c multiqueue: Use buffer DTS if present, else PTS 2015-10-27 08:38:42 +01:00
gstmultiqueue.h multiqueue: do not post messages holding the lock 2014-09-16 16:56:53 -03:00
gstoutputselector.c output-selector: add drain handling 2015-03-24 16:21:23 -03:00
gstoutputselector.h docs: add missing docs, fixing doc errors 2013-12-03 00:11:59 +00:00
gstqueue.c queue/queue2: Use GST_BUFFER_DTS_OR_PTS 2015-10-27 08:49:02 +01:00
gstqueue.h queue: Fix handling of serialized queries 2013-05-27 15:59:07 +02:00
gstqueue2.c queue/queue2: Use GST_BUFFER_DTS_OR_PTS 2015-10-27 08:49:02 +01:00
gstqueue2.h queue2: do not post buffering messages holding the lock 2014-09-19 20:35:29 -03:00
gstsparsefile.c sparsefile: small cleanup 2015-05-18 11:26:07 +02:00
gstsparsefile.h elements: don't depend on libgio just for g_io_error_from_errno() 2014-05-13 20:06:48 +01:00
gststreamiddemux.c docs: add StreamidDemux to documentation 2015-07-08 17:07:49 +01:00
gststreamiddemux.h docs: add StreamidDemux to documentation 2015-07-08 17:07:49 +01:00
gsttee.c tee: fix typo in allow-not-linked property description 2015-07-14 12:44:31 +01:00
gsttee.h tee: Add allow-not-linked property 2015-03-26 10:46:26 +01:00
gsttypefindelement.c typefindelement: reset segment only once streaming has stopped 2015-06-14 21:25:29 +01:00
gsttypefindelement.h docs: order and canonicalize the -sections.txt file 2015-07-03 11:52:22 +02:00
gstvalve.c valve: Don't drop non-serialized queries when the valve is dropping 2015-03-20 09:32:34 +01:00
gstvalve.h Fix FSF address 2012-11-03 20:44:48 +00:00
Makefile.am Remove obsolete Android build cruft 2015-04-26 17:49:44 +01:00