Commit graph

56 commits

Author SHA1 Message Date
Stéphane Cerveau
891be51105 gst-plugins: allow per feature registration
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2110>
2021-04-11 16:16:55 +00:00
Stéphane Cerveau
add7878e14 bad: use of g_value_dup_string
Use helper method to get string from GValue.
2019-12-30 14:13:03 +00:00
Nicolas Dufresne
ede8b1c8ce rfbsrc: Fix decide_allocation to support NULL pool
We were assuming that NULL pool meant that downstream didn't reply.
Update the pool index 0 instead of adding at the end. Otherwise we ended
up letting basesrc decide, which would pick the blocksize as a size
(4096) instead of the image size.

https://bugzilla.gnome.org/show_bug.cgi?id=795327
2018-04-25 15:07:23 -04:00
Nicolas Dufresne
81960ea853 rfbsrc: Fix fallback to GstVideoBufferPool
The replacement pool need to be added to the query, otherwise the
baseclass won't see it. We also need to properly remove the rejected
pools.

https://bugzilla.gnome.org/show_bug.cgi?id=763441
2016-04-05 21:40:58 -04:00
Nicolas Dufresne
7e293f15dd rfbsrc: Implement decide_allocation virtual
This way we can use the base class for buffer allocation, hence use
fill() instead of create() virtual. This also adds a strict check on the
select pool buffer size as we don't support strides and padding.

This is based on initial patch proposed by Sebastien Dröge, from which I
also fixed a buffer pool leak.

https://bugzilla.gnome.org/show_bug.cgi?id=763441
2016-04-05 21:21:29 -04:00
Nicolas Dufresne
d3d34b5a8c rfbsrc: Fix caps negotiation
As we currently only use the server reported "natural" format, caps
negotiation should simply be limited to telling the base class which
format to use. Fix the negotiation by moving the associated code
into negotiate() virtual function. Also, use gst_base_src_set_caps()
rather then setting it on the pad directly. Also protect against this
method being called multiple time (we can't renegotiate for now).

This change also moves some network code that was being run during the
application state change call, to be run on the streaming thread.

https://bugzilla.gnome.org/show_bug.cgi?id=739598
2016-04-05 15:36:31 -04:00
Nicolas Dufresne
52b50d0952 rfbsrc: Implement unlock() method
This prevent stalls when we try to stop the source while waiting
for the server to send more updates.
2016-04-05 13:35:38 -04:00
Nicolas Dufresne
ba93b86011 rfbsrc: Add a internal method to disconnect
This also removes the disconnected boolean hack.
2016-04-05 13:35:11 -04:00
Nicolas Dufresne
ff5dc55c8a rfbsrc: Don't ignore errors
This prevents recursion on error. This used to happen as we
don't change the state when something fails. We end up running
and failing in the same state forever.
2016-04-05 13:34:57 -04:00
Nicolas Dufresne
21b322c8f3 rfbsrc: Port to GSocketClient
Using GSocketClient we can simplify a lot the read/write operation.
This also provide an GSocketConnection (a GIOStream) which can then
be used with the GTlsClientConnection for secure connections. Note
that we use _write_all() to ensure all bytes have been read. This is
to follow the fact the none of the _send() calls check the return
value.
2016-04-05 13:34:07 -04: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
Luis de Bethencourt
925b65b02e Rename property enums from ARG_ to PROP_
Property enum items should be named PROP_ for consistency and readability.
2015-04-27 10:55:18 +01:00
Blake Tregre
a73a42b10f rfbsrc: Send stream-start event in the beginning
https://bugzilla.gnome.org/show_bug.cgi?id=726802
2014-05-02 14:20:58 +02:00
Tim-Philipp Müller
146e78ffdb rfbsrc: post error messages on errors 2013-05-11 19:42:31 +01:00
Tim-Philipp Müller
4cfa3f5af3 rfbsrc: fix rfbdecoder new/free asymetry and wrong free in error case
If rfb_decoder_new() allocates the decoder sructure, rfb_decoder_free()
should free the structure. We should not free the decoder when an
error occurs during connection - it holds lots of configuration/state
and will be freed later in finalize.
2013-05-11 00:36:06 +01:00
Aleix Conchillo Flaque
90e006513a rfbsrc: use glib gio sockets for network access
https://bugzilla.gnome.org/show_bug.cgi?id=700038
2013-05-10 20:52:29 +01:00
Aleix Conchillo Flaque
42783e676e rfbsrc: port to 1.0
https://bugzilla.gnome.org/show_bug.cgi?id=700038
2013-05-10 20:43:16 +01: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
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
Mark Nauwelaerts
578861abea replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:27:49 +02:00
Raimo Järvi
e0241278f6 rfbsrc: Fix compiling in Windows
https://bugzilla.gnome.org/show_bug.cgi?id=677724
2012-06-14 16:38:22 +01:00
Tim-Philipp Müller
9503daa56a rfbsrc: call WSAStartup/Cleanup on win32
If we link against libwinsock2, we should probably call
Startup/Cleanup as well.

https://bugzilla.gnome.org/show_bug.cgi?id=675415
2012-05-07 23:59:58 +01:00
Sebastian Dröge
cda192b3b7 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 18:02:56 +02:00
Stefan Kost
0c22e1b954 various (gst): add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2010-10-19 15:47:17 +03:00
Benjamin Otte
b7655bbd2e Add -Wredundant-decls flag
and fix warnings from it
2010-03-22 12:05:59 +01:00
Benjamin Otte
775c7584fd gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 22:46:41 +01:00
Thijs Vermeir
862cc7ddd2 Fix basic navigation events
Original commit message from CVS:
* configure.ac:
* gst/librfb/Makefile.am:
* gst/librfb/gstrfbsrc.c:
Fix basic navigation events
2008-11-06 22:54:39 +00:00
Thijs Vermeir
fd52cc22e7 gst/librfb/gstrfbsrc.c: Fix RGB mask in caps
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
Fix RGB mask in caps
2008-11-05 23:31:41 +00:00
Thijs Vermeir
798aca639b gst/librfb/: Add Hextile encoding
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
Add Hextile encoding
2008-11-05 22:25:25 +00:00
Ilja Pavkovic
18d3b8fb96 gst/librfb/gstrfbsrc.*: Add view-only property to ignore the navigation events
Original commit message from CVS:
patch by: Ilja Pavkovic <illsen@gumblfarz.de>
* gst/librfb/gstrfbsrc.c:
* gst/librfb/gstrfbsrc.h:
Add view-only property to ignore the navigation events
2008-07-08 21:20:27 +00:00
Ilja Pavkovic
2bd1de60ce gst/librfb/: Add property for shared desktop
Original commit message from CVS:
patch by: Ilja Pavkovic <illsen@gumblfarz.de>
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfbdecoder.c:
Add property for shared desktop
2008-07-08 14:28:08 +00:00
Jens Granseuer
266e4741cd Some C89 fixes, moving variable declarations to the beginning of a block. Fixes bug .
Original commit message from CVS:
Patch by: Jens Granseuer <jensgr at gmx dot net>
* gst/librfb/gstrfbsrc.c: (gst_rfb_property_set_version):
* gst/librfb/rfbdecoder.c: (rfb_decoder_message_set_encodings),
(rfb_decoder_state_set_encodings):
* gst/mpegtsparse/mpegtspacketizer.c:
(mpegts_packetizer_parse_nit), (mpegts_packetizer_parse_sdt),
(mpegts_packetizer_parse_eit):
* sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps),
(gst_fbdevsink_setcaps), (gst_fbdevsink_render):
Some C89 fixes, moving variable declarations to the beginning
of a block. Fixes bug .
2008-02-22 05:33:59 +00:00
Sebastian Dröge
bc3246f146 gst/librfb/gstrfbsrc.c: Free the rfb decoder on finalize. Fixes bug .
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c: (gst_rfb_src_dispose):
Free the rfb decoder on finalize. Fixes bug .
2008-02-12 05:19:05 +00:00
David Schleef
7181404703 ext/musicbrainz/gsttrm.c: Don't emit signiture when going to READY, because it might not be ready.
Original commit message from CVS:
* ext/musicbrainz/gsttrm.c:
Don't emit signiture when going to READY, because it might
not be ready.
* ext/nas/nassink.c:
Remove useless call that sleeps for 5 seconds.  Yup, it calls
sleep(1) 5 times.  Go NAS.
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfbdecoder.c:
Initialize our debug categories properly.
* gst/rawparse/gstrawparse.c:
Don't register element details for a non-element.  Be much more
rude when subclass doesn't set a pad template (assert!).  Don't
unref the pad template; we don't own it.
* gst/videosignal/gstvideoanalyse.c:
Initialize debug category.
* tests/check/Makefile.am:
Ignore nassink element in tests because it has unavoidable
long timeouts.
2008-01-01 01:18:19 +00:00
Thijs Vermeir
f17a78668e gst/librfb/: Disable CopyRect encoding by default
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
Disable CopyRect encoding by default
Add RRE encoding
2007-11-29 13:32:11 +00:00
Thijs Vermeir
621a4e4792 gst/librfb/gstrfbsrc.c: don't forget to handle the offset's
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
don't forget to handle the offset's
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
precalculate some many used values
2007-11-15 15:32:47 +00:00
Armando Taffarel Neto
88f5ef13bf gst/librfb/gstrfbsrc.c: Set the timestamp for the output buffers
Original commit message from CVS:
patch by: Armando Taffarel Neto <taffarel@solis.coop.br>
* gst/librfb/gstrfbsrc.c:
Set the timestamp for the output buffers
2007-11-15 08:28:29 +00:00
Thijs Vermeir
aac84ad1c7 gst/librfb/: Added copyrect encoding
Original commit message from CVS:
* gst/librfb/d3des.h:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/gstrfbsrc.h:
* gst/librfb/rfbbuffer.h:
* gst/librfb/rfbcontext.h:
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
* gst/librfb/rfbutil.h:
* gst/librfb/vncauth.h:
Added copyrect encoding
2007-10-31 14:09:25 +00:00
Thijs Vermeir
77e7c4aadd gst/librfb/gstrfbsrc.*: Added a property for incremental screen updates
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/gstrfbsrc.h:
Added a property for incremental screen updates
2007-09-27 14:52:58 +00:00
Thijs Vermeir
ccfbe1569d gst/librfb/gstrfbsrc.c: fix bug from generic/states.gdb
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
fix bug from generic/states.gdb
2007-09-26 16:44:42 +00:00
Thijs Vermeir
ada7510fd7 gst/librfb/: Added offset-x, offset-y, width and height property for selecting a region from the screen
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
Added offset-x, offset-y, width and height property
for selecting a region from the screen
2007-09-21 14:55:19 +00:00
Thijs Vermeir
ab4038ce2e gst/librfb/gstrfbsrc.c: Minimum raw encoding is working now
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
Minimum raw encoding is working now
* gst/librfb/rfbdecoder.c:
fix address while reading from stream
2007-09-21 10:27:02 +00:00
Thijs Vermeir
27230cfead gst/librfb/gstrfbsrc.c: raw encoding is working, but it looks like the ffmpegcolorspace plugin can't handle high reso...
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
raw encoding is working, but it looks like the
ffmpegcolorspace plugin can't handle high resolutions
2007-09-20 20:40:05 +00:00
Thijs Vermeir
cacf273a10 gst/librfb/gstrfbsrc.c: bpp, depth and endianness are now set from the stream.
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
bpp, depth and endianness are now set from the
stream.
2007-09-20 18:30:35 +00:00
Thijs Vermeir
d785a925c1 gst/librfb/: It is now possible to connect to a vncserver. there are still some issues with the ouput of the screen. ...
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
It is now possible to connect to a vncserver.
there are still some issues with the ouput of
the screen. Looks like some lines are confused
2007-09-19 20:55:43 +00:00
Thijs Vermeir
a458032e6e gst/librfb/gstrfbsrc.c: Add password property (write only)
Original commit message from CVS:
* gst/librfb/gstrfbsrc.c:
Add password property (write only)
* gst/librfb/rfbdecoder.c:
Read the reason on failure
Use the password property for authentication
* gst/librfb/rfbdecoder.h:
Add defines for version checking
2007-09-19 13:06:17 +00:00
Thijs Vermeir
b980126909 Added a new property for the rfb version
Original commit message from CVS:
Added a new property for the rfb version
2007-09-17 21:12:17 +00:00
Andre Moreira Magalhaes
fd89575485 Port librfb to 0.10 ().
Original commit message from CVS:
Patch by: Andre Moreira Magalhaes <andrunko@gmail.com>
* configure.ac:
* gst/librfb/Makefile.am:
* gst/librfb/gstrfbsrc.c:
* gst/librfb/rfb.c:
* gst/librfb/rfb.h:
* gst/librfb/rfbbuffer.c:
* gst/librfb/rfbbuffer.h:
* gst/librfb/rfbbytestream.c:
* gst/librfb/rfbbytestream.h:
* gst/librfb/rfbcontext.h:
* gst/librfb/rfbdecoder.c:
* gst/librfb/rfbdecoder.h:
* gst/librfb/rfbutil.h:
Port librfb to 0.10 ().
2006-11-17 03:15:40 +00:00
Stefan Kost
bb28316de6 More G_OBJECT macro fixing.
Original commit message from CVS:
* ext/hermes/gsthermescolorspace.c:
* ext/ivorbis/vorbisfile.c:
* ext/lcs/gstcolorspace.c:
* ext/wavpack/gstwavpackenc.h:
* ext/xine/xineaudiodec.c:
* ext/xine/xineaudiosink.c:
* ext/xine/xineinput.c:
* gst/chart/gstchart.c:
* gst/equalizer/gstiirequalizer.c:
* gst/games/gstpuzzle.c:
* gst/librfb/gstrfbsrc.c:
* gst/mixmatrix/mixmatrix.c:
* gst/nsf/gstnsf.h:
* gst/vbidec/gstvbidec.c:
* gst/virtualdub/gstxsharpen.c:
More G_OBJECT macro fixing.
2006-09-16 22:14:36 +00:00
Stefan Kost
bf3fd4f95d Define GstElementDetails as const and also static (when defined as global)
Original commit message from CVS:
* ext/amrwb/gstamrwbdec.c:
* ext/amrwb/gstamrwbenc.c:
* ext/amrwb/gstamrwbparse.c:
* ext/arts/gst_arts.c:
* ext/artsd/gstartsdsink.c:
* ext/audiofile/gstafparse.c:
* ext/audiofile/gstafsink.c:
* ext/audiofile/gstafsrc.c:
* ext/audioresample/gstaudioresample.c:
* ext/bz2/gstbz2dec.c:
* ext/bz2/gstbz2enc.c:
* ext/cdaudio/gstcdaudio.c:
* ext/directfb/dfbvideosink.c:
* ext/divx/gstdivxdec.c:
* ext/divx/gstdivxenc.c:
* ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
* ext/faac/gstfaac.c: (gst_faac_base_init):
* ext/faad/gstfaad.c:
* ext/gsm/gstgsmdec.c:
* ext/gsm/gstgsmenc.c:
* ext/hermes/gsthermescolorspace.c:
* ext/ivorbis/vorbisfile.c:
* ext/lcs/gstcolorspace.c:
* ext/libfame/gstlibfame.c:
* ext/libmms/gstmms.c: (gst_mms_base_init):
* ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init):
* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
* ext/nas/nassink.c: (gst_nassink_base_init):
* ext/neon/gstneonhttpsrc.c:
* ext/sdl/sdlaudiosink.c:
* ext/sdl/sdlvideosink.c:
* ext/shout/gstshout.c:
* ext/snapshot/gstsnapshot.c:
* ext/sndfile/gstsf.c:
* ext/swfdec/gstswfdec.c:
* ext/tarkin/gsttarkindec.c:
* ext/tarkin/gsttarkinenc.c:
* ext/theora/theoradec.c:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
* ext/xvid/gstxviddec.c:
* ext/xvid/gstxvidenc.c:
* gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
* gst/chart/gstchart.c:
* gst/colorspace/gstcolorspace.c:
* gst/deinterlace/gstdeinterlace.c:
* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
* gst/festival/gstfestival.c:
* gst/filter/gstbpwsinc.c:
* gst/filter/gstiir.c:
* gst/filter/gstlpwsinc.c:
* gst/freeze/gstfreeze.c:
* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
* gst/librfb/gstrfbsrc.c:
* gst/mixmatrix/mixmatrix.c:
* gst/mpeg1sys/gstmpeg1systemencode.c:
* gst/mpeg1videoparse/gstmp1videoparse.c:
* gst/mpeg2sub/gstmpeg2subt.c:
* gst/mpegaudioparse/gstmpegaudioparse.c:
* gst/multifilesink/gstmultifilesink.c:
* gst/overlay/gstoverlay.c:
* gst/passthrough/gstpassthrough.c:
* gst/playondemand/gstplayondemand.c:
* gst/qtdemux/qtdemux.c:
* gst/rtjpeg/gstrtjpegdec.c:
* gst/rtjpeg/gstrtjpegenc.c:
* gst/smooth/gstsmooth.c:
* gst/smoothwave/gstsmoothwave.c:
* gst/spectrum/gstspectrum.c:
* gst/speed/gstspeed.c:
* gst/stereo/gststereo.c:
* gst/switch/gstswitch.c:
* gst/tta/gstttadec.c: (gst_tta_dec_base_init):
* gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
* gst/vbidec/gstvbidec.c:
* gst/videocrop/gstvideocrop.c:
* gst/videodrop/gstvideodrop.c:
* gst/virtualdub/gstxsharpen.c:
* gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
* gst/y4m/gsty4mencode.c:
* sys/cdrom/gstcdplayer.c:
* sys/directdraw/gstdirectdrawsink.c:
* sys/directsound/gstdirectsoundsink.c:
* sys/glsink/glimagesink.c:
* sys/qcam/gstqcamsrc.c:
* sys/v4l2/gstv4l2src.c:
* sys/vcd/vcdsrc.c: (gst_vcdsrc_base_init):
* sys/ximagesrc/ximagesrc.c:
Define GstElementDetails as const and also static (when defined as
global)
2006-04-25 21:56:38 +00:00