Sebastian Rasmussen
c7e4217121
curlsmtpsink: Lock and don't send final boundary upon error
...
Previously GstCurlSmtpSink could cause the pipeline thread to end up
waiting for a stopped thread to perform work.
The scenario was that the sink could be rendering a buffer and waiting
for the curl transfer thread to have sent the data. As soon as the
transfer thread has copied all data to curl's data buffer in
gst_curl_base_sink_transfer_read_cb() then the render call would stop
waiting and return GST_FLOW_OK. While this takes place the transfer
thread may suffer from an error e.g. due gst_poll_wait() timing out.
This causes the transfer thread to record the error, claim (it is not
really true since there was an error) that the data has been sent and
that a response has been received by trying to signal the pipeline
thread (but this has already stopped waiting). Finally the transfer
thread stops itself. A short while later the pipeline thread may attempt
to push an EOS event into GstCurlSmtpSink. Since there is no check in
gst_curl_smtp_sink_event() to check if the sink has suffered from any
error it may attempt to add a final boundary and ask the, now deceased,
transfer thread to transfer the new data. Next the sink element would
have waited for the transfer to complete (using a different mechanism
than normal transfers through GstCurlBaseSink). In this case there was
an error check to avoid waiting if an error had already been seen.
Finally GstCurlSmtpSink would chain up to GstCurlBaseSink which would
then block waiting for a response (normally this would be prevented by
the transfer thread suffering the error claiming that it had been
received, but GstCurlSmtpSink clobbered this flag after the fact).
Now GstCurlSmtpSink avoids this by locking over the entire event handing
(preventing simultaneous changes to flags by the two threads) and also
by avoiding to initiate transfer of final boundary if an error has
already been seen.
Also add GST_FIXME() for remaining similar issue where the pipeline
thread may block indefinitely waiting for transfer thread to transfer
data but the transfer thread errors out and fails to notify the pipeline
thread that the transfer failed.
https://bugzilla.gnome.org/show_bug.cgi?id=767501
2016-06-11 11:25:13 +01:00
Patricia Muscalu
0fbbbd042a
curlsink: catch an unknown error
...
In this case the socket callback has not been called
by libcurl and the curlsink has not been notified about any
connection problems by libcurl.
This indicates that it's a bug in libcurl so catch it as
an unknown error.
https://bugzilla.gnome.org/show_bug.cgi?id=754432
2016-04-04 17:48:55 +01:00
Vineeth TM
8cdfb13658
bad: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
David Fernandez
55ba6f1ee8
curlbasesink: don't send empty buffers
...
Fixes problem in curlhttpsink when qtmux uses faststart.
https://bugzilla.gnome.org/show_bug.cgi?id=762013
2016-02-17 11:10:22 +00:00
Vineeth TM
7c42ba97d7
plugins-bad: Fix example pipelines
...
rename gst-launch --> gst-launch-1.0
replace old elements with new elements(ffmpegcolorspace -> videoconvert, ffenc_** -> avenc_**)
fix caps in examples
https://bugzilla.gnome.org/show_bug.cgi?id=759432
2015-12-15 10:30:49 +00:00
Tim-Philipp Müller
734d5a79c5
Fix code indentation
2015-11-06 19:29:49 +00:00
Luis de Bethencourt
9fb7add179
curlsshsink: remove redundant else statement
...
Else statement is redundant when the if block finishes with an return.
2015-07-06 15:25:16 +01:00
Patricia Muscalu
c1bad1be5d
curlsink: handle socket callback for active FTP connections as well
...
Since version 7.28.0, libcurl allows application to set
socket options for active FTP connections.
Bump libcurl requirement to version tested.
https://bugzilla.gnome.org/show_bug.cgi?id=749815
2015-05-25 19:37:53 +01:00
Branko Subasic
f00d21aec5
curlsmtpsink: add final boundary to all multipart emails
...
Corrected the final boundary mechanism so that a final boundary is
added to each mail with multipart content that is sent,
not just to the last one.
https://bugzilla.gnome.org/show_bug.cgi?id=741553
2014-12-19 13:16:43 +00:00
L. Sorin
09f0b03762
curlsshsink: use the locally defined types
...
Just a matter of coding style, makes the code a bit tidier...
https://bugzilla.gnome.org/show_bug.cgi?id=731581
2014-10-26 21:04:02 +00:00
Stefan Sauer
24fd4cd74c
curlbasesink: strip newlines from curl debug messages
...
The messages we receive in the custom log handler might end with a newline and
are not \0 terminated. Copy the messages, trim and terminate them.
2014-10-16 14:12:19 +02:00
Stefan Sauer
9b459b52f6
curlbasesink: small code cleanup
...
Use a local var and save a local var.
2014-10-16 14:12:19 +02:00
Vivia Nikolaidou
778b1814a8
curlsmtpsink: Set CURLOPT_UPLOAD to 1 to not use VRFY and other unneeded commands
...
Fixes the sink with SMTP servers that disable VRFY for spam protection.
http://sourceforge.net/p/curl/bugs/1389/
2014-10-06 21:28:45 +03:00
Lihua Liu
47abcb9a6b
curlsmtpsink: Email with multipart content-type should end with a final boundary
...
Add final boundary for each of the sending out emails from smtpsink.
https://bugzilla.gnome.org/show_bug.cgi?id=736134
2014-10-06 15:42:53 +03:00
Lihua Liu
22e09f19ed
curlsmtpsink: Email with multipart content-type should end with a final boundary
...
Add final boundary for each of the sending out emails from smtpsink.
https://bugzilla.gnome.org/show_bug.cgi?id=736134
2014-09-25 11:16:30 +03:00
Stefan Sauer
f8f2cca0e4
curl*sink: add more logging
2014-09-25 10:14:41 +02:00
Stefan Sauer
04d271dfd3
curlbasesink: add a debug function
...
If gstreamer is build with logging enabled, add a debug function and output
verbose messages to the log instead of stderr.
2014-09-25 08:05:50 +02:00
Stefan Sauer
8a8d3ac351
curlhttpsink: only add content-disposition header if a filename is set
...
The header is optional and therefore we better omit it if we don't have a filename.
2014-09-24 22:25:55 +02:00
Stefan Sauer
a80cde8cb6
curlbasesink: don't replace specific error messages with a generic one
...
Only set an error if we haven't set one already.
2014-09-24 22:25:55 +02:00
Stefan Sauer
2e51ba1219
curltlssink: swap check
...
Lets check for NULL first, as that is the default anyway.
2014-09-24 22:25:55 +02:00
Sebastian Dröge
a7e243b32e
curlsshsink: Include gst.h and other stuff before anything else
2014-07-11 21:16:26 +02:00
Sebastian Dröge
198d8dd5f1
curl: Use winsock2 instead and the GLib macro for checking if we're on Windows
2014-07-11 13:25:57 +02:00
Alexey Pavlov
365d0cfb32
ext: Include winsock.h on Windows when required
...
https://bugzilla.gnome.org/show_bug.cgi?id=733052
2014-07-11 13:21:21 +02:00
Sebastian Rasmussen
96c78695f9
curls?ftpsink: Fix memory leaks due to new error handling
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732174
2014-06-24 19:05:34 +02:00
L. Sorin
5edf0add57
curlsshsink: post error on bus in element, not transfer thread
...
Looks like this file was missed in Bug 728960:
https://bugzilla.gnome.org/show_bug.cgi?id=728960
https://bugzilla.gnome.org/show_bug.cgi?id=730459
2014-05-21 08:36:51 +02:00
L. Sorin
9c1e66302d
curlsftpsink: authenticate remote host via public key fingerprint
...
Expose one more libcurl option: CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.
This allows authenticating the server by the MD5 fingerprint of
the server's public key.
https://bugzilla.gnome.org/show_bug.cgi?id=723167
2014-05-20 08:58:08 +02:00
Sebastian Rasmussen
241c3acad5
curl*sink: report errors from curl when setting options
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:24:24 +02:00
Sebastian Rasmussen
c75c7a9a53
curl*sink: post error on bus in element, not transfer thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:23:24 +02:00
Sebastian Rasmussen
13f87a1db1
curlhttpsink: allow for unconditionally disabling proxying
...
Previously if the proxy server hostname was the empty string
curlhttpsink would never even set the libcurl option. For libcurl
however, having a proxy server hostname be the empty string means that
proxying should be disabled even if environment variables might be set.
Now with the restriction lifted, doing this is allowed.
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:21:56 +02:00
Sebastian Rasmussen
da987a3219
curl*sink: fix typos
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:20:33 +02:00
Sebastian Rasmussen
bdd2676a67
curl*sink: fix some gst-indent problems
...
https://bugzilla.gnome.org/show_bug.cgi?id=728960
2014-04-26 10:20:11 +02:00
Vincent Penquerc'h
bbda6a1ab9
curl: remove unneeded NULL check
...
We just checked for NULL and allocated if it was. And glib aborts
if it can't allocate, I'm told.
Coverity 1139841
2014-04-10 17:37:22 +01:00
Vincent Penquerc'h
feede7ddfa
curl: remove duplicate assignment
...
Coverity 1197708
2014-04-10 17:33:55 +01:00
Lihua Liu
f3464e01bb
curlsmtpsink: Include timezone information in mail header
...
https://bugzilla.gnome.org/show_bug.cgi?id=724125
2014-02-11 21:03:18 +01:00
Sebastian Dröge
d111f37f74
curl: Fix indention
2013-12-17 12:18:16 +01:00
Haridass Selvaraj
23ab7d8c49
curlftpsink: Optionally create a temporary file during FTP transfer/upload
...
https://bugzilla.gnome.org/show_bug.cgi?id=711620
2013-12-17 12:18:01 +01:00
L. Sorin
15717842e4
curl: curlsftpsink - new libcurl-based sink element for SFTP
...
Note: SFTP = SSH File Transfer Protocol
The sink acts as a client and uploads data to the SFTP server.
https://bugzilla.gnome.org/show_bug.cgi?id=709795
2013-11-01 17:20:04 +01:00
Patricia Muscalu
0d6fc0215c
curlsmtpsink: removed an incorrect assert
...
https://bugzilla.gnome.org/show_bug.cgi?id=702036
2013-06-11 21:08:28 +02:00
Patricia Muscalu
8303561bd9
curlsmtpsink: terminate transfer thread properly
...
If no EOS has been sent, the curl readfunc callback will
return ABORT. The media file in that case will not be properly
finalized.
https://bugzilla.gnome.org/show_bug.cgi?id=700886
2013-05-24 23:47:50 +01:00
Sebastian Dröge
e51cd4fe2f
gst: Add better support for static plugins
2013-04-15 15:59:22 +02:00
Patricia Muscalu
4202eeff7d
curltlssink: set correct level of SSL for the transfer
...
https://bugzilla.gnome.org/show_bug.cgi?id=692010
2013-01-22 10:55:14 +00:00
Tim-Philipp Müller
9e1b75fda3
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Sebastian Rasmussen
1c71fd351a
curlsmtpsink: add comment describing function
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686774
2012-10-24 11:29:47 +01:00
Tim-Philipp Müller
32ba17cd0f
Use gst_element_class_set_static_metadata()
...
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Руслан Ижбулатов
2c2d6b0753
curl: fix compiler warning with setsockopt() on windows
...
The optval argument is of type const char * on windows.
https://bugzilla.gnome.org/show_bug.cgi?id=685065
2012-09-29 11:41:56 +01:00
Руслан Ижбулатов
75dba03688
curl: fix build on win32
...
https://bugzilla.gnome.org/show_bug.cgi?id=684847
2012-09-28 09:57:53 +01:00
Mark Nauwelaerts
578861abea
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-09-14 17:27:49 +02:00
Patricia Muscalu
a7037cd0e3
curl: fixed some memory leaks in the plugin and the unit tests
...
https://bugzilla.gnome.org/show_bug.cgi?id=681117
https://bugzilla.gnome.org/show_bug.cgi?id=681115
2012-08-03 20:28:40 +01:00
Wim Taymans
f710f1250b
curl: fix compilation
...
Don't use deprecated thread API
2012-05-14 09:15:55 +02:00
Sebastian Dröge
fc317b8dbb
curl: Fix equality comparison with extraneous parantheses compiler warning
...
gstcurlhttpsink.c:411:27: error: equality comparison with extraneous parentheses
2012-05-13 15:24:52 +02:00
Sebastian Rasmussen
3f20bbdcf4
curl: new curlsmtpsink element
...
https://bugzilla.gnome.org/show_bug.cgi?id=653741
2012-05-12 11:59:01 +01:00
Patricia Muscalu
766dd8bb71
curl: new curlftpsink element
...
http://bugzilla.gnome.org/show_bug.cgi?id=653741
2012-05-12 11:53:25 +01:00
Patricia Muscalu
f139656bec
curl: new curlfilesink element
...
https://bugzilla.gnome.org/show_bug.cgi?id=653741
2012-05-12 11:53:01 +01:00
Patricia Muscalu
ae39cbfa57
curl: refactor curlsink, rename to curlhttpsink
...
Split into base, tls and http classes.
https://bugzilla.gnome.org/show_bug.cgi?id=653741
2012-05-12 11:48:03 +01:00
Sebastian Dröge
cda192b3b7
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 18:02:56 +02:00
Sebastian Dröge
860ccd414d
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
NEWS
RELEASE
common
configure.ac
docs/libs/gst-plugins-bad-libs-sections.txt
docs/plugins/gst-plugins-bad-plugins.args
docs/plugins/gst-plugins-bad-plugins.hierarchy
docs/plugins/gst-plugins-bad-plugins.interfaces
docs/plugins/inspect/plugin-adpcmdec.xml
docs/plugins/inspect/plugin-adpcmenc.xml
docs/plugins/inspect/plugin-assrender.xml
docs/plugins/inspect/plugin-audiovisualizers.xml
docs/plugins/inspect/plugin-autoconvert.xml
docs/plugins/inspect/plugin-bayer.xml
docs/plugins/inspect/plugin-bz2.xml
docs/plugins/inspect/plugin-camerabin2.xml
docs/plugins/inspect/plugin-celt.xml
docs/plugins/inspect/plugin-dataurisrc.xml
docs/plugins/inspect/plugin-debugutilsbad.xml
docs/plugins/inspect/plugin-dtmf.xml
docs/plugins/inspect/plugin-dtsdec.xml
docs/plugins/inspect/plugin-dvbsuboverlay.xml
docs/plugins/inspect/plugin-dvdspu.xml
docs/plugins/inspect/plugin-faac.xml
docs/plugins/inspect/plugin-faad.xml
docs/plugins/inspect/plugin-gsm.xml
docs/plugins/inspect/plugin-h264parse.xml
docs/plugins/inspect/plugin-mms.xml
docs/plugins/inspect/plugin-modplug.xml
docs/plugins/inspect/plugin-mpeg2enc.xml
docs/plugins/inspect/plugin-mpegdemux2.xml
docs/plugins/inspect/plugin-mpegtsdemux.xml
docs/plugins/inspect/plugin-mpegvideoparse.xml
docs/plugins/inspect/plugin-mplex.xml
docs/plugins/inspect/plugin-pcapparse.xml
docs/plugins/inspect/plugin-rawparse.xml
docs/plugins/inspect/plugin-rtpmux.xml
docs/plugins/inspect/plugin-rtpvp8.xml
docs/plugins/inspect/plugin-scaletempo.xml
docs/plugins/inspect/plugin-schro.xml
docs/plugins/inspect/plugin-sdp.xml
docs/plugins/inspect/plugin-segmentclip.xml
docs/plugins/inspect/plugin-shm.xml
docs/plugins/inspect/plugin-videomaxrate.xml
docs/plugins/inspect/plugin-videoparsersbad.xml
docs/plugins/inspect/plugin-vp8.xml
docs/plugins/inspect/plugin-y4mdec.xml
ext/celt/gstceltdec.c
ext/dts/gstdtsdec.c
ext/modplug/gstmodplug.cc
ext/opus/gstopusenc.c
gst-libs/gst/video/gstbasevideocodec.c
gst-libs/gst/video/gstbasevideocodec.h
gst-libs/gst/video/gstbasevideodecoder.c
gst-libs/gst/video/gstbasevideodecoder.h
gst-libs/gst/video/gstbasevideoencoder.c
gst-libs/gst/video/gstbasevideoencoder.h
gst/adpcmdec/Makefile.am
gst/audiovisualizers/gstbaseaudiovisualizer.c
gst/h264parse/gsth264parse.c
gst/mpegdemux/mpegtsparse.c
gst/mpegtsdemux/mpegtsbase.c
gst/mpegtsdemux/mpegtspacketizer.c
gst/mpegtsdemux/mpegtsparse.c
gst/mpegtsdemux/tsdemux.c
gst/mpegtsdemux/tsdemux.h
gst/mxf/mxfdemux.c
gst/rawparse/gstaudioparse.c
gst/videoparsers/gsth263parse.c
gst/videoparsers/gsth264parse.c
sys/d3dvideosink/d3dvideosink.c
sys/decklink/gstdecklinksink.cpp
sys/dvb/gstdvbsrc.c
sys/shm/gstshmsrc.c
sys/vdpau/h264/gstvdph264dec.c
sys/vdpau/mpeg/gstvdpmpegdec.c
tests/examples/opencv/gst_element_print_properties.c
win32/common/config.h
2012-03-29 17:41:53 +02:00
Sebastian Dröge
4b42d5c5c6
curl: Fix 'equality comparison with extraneous parentheses' compiler warning
2012-03-06 14:51:57 +01:00
Wim Taymans
1119f6ee41
Merge branch 'master' into 0.11
...
Conflicts:
ext/chromaprint/gstchromaprint.c
ext/mpeg2enc/Makefile.am
ext/voaacenc/gstvoaacenc.c
gst/dvbsuboverlay/gstdvbsuboverlay.c
gst/mpegtsdemux/mpegtsbase.c
gst/sdp/gstsdpdemux.c
gst/videoparsers/gsth264parse.c
sys/d3dvideosink/d3dvideosink.c
tests/examples/camerabin/gst-camera-perf.c
tests/examples/camerabin/gst-camerabin-test.c
tests/examples/camerabin2/gst-camerabin2-test.c
tests/examples/mxf/mxfdemux-structure.c
tests/examples/scaletempo/demo-main.c
2012-02-10 16:46:50 +01:00
Tim-Philipp Müller
f8f4620451
build: fix CFLAGS order and LIBS order
...
_BAD_CFLAGS should always come first, then GST_PLUGINS_BASE_CFLAGS,
then GST_BASE_CFLAGS then GST_CFLAGS. Same for libs: first plugins
base libs, then GST_BASE_LIB then GST_LIBS.
2012-02-03 00:50:33 +00:00
Vincent Penquerc'h
8147669971
plenty: fixup glib deprecations
2012-01-27 15:47:07 +00:00
Vincent Penquerc'h
7521b597f4
various: fix pad template ref leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Edward Hervey
d9a930aa25
curlsink: Fix print-related issues
2011-03-04 12:15:32 +01:00
Tim-Philipp Müller
c6d7071d93
docs: add new curl plugin and curlsink element to docs
2011-03-01 11:16:56 +00:00
Tim-Philipp Müller
eb5b3be384
curlsink: no need for a private instance structure
...
The entire instance structure is private anyway.
2011-03-01 10:03:07 +00:00
Tim-Philipp Müller
6f01abd85d
curlsink: clean up property registration code
...
Fix some typos, use same style as in all other plugins, avoiding
unnecessary temporary GParamSpec variables; use G_PARAM_SPEC_STATIC_STRINGS.
2011-03-01 09:56:51 +00:00
Patricia Muscalu
16b79f6f2d
curl: add libcurl-based sink element
...
Sink acts as a client and can connect to servers to
upload media.
https://bugzilla.gnome.org/show_bug.cgi?id=641496
2011-02-28 23:55:33 +00:00