Commit graph

213 commits

Author SHA1 Message Date
Sebastian Dröge
f9d16c5913 decklink: Remove in-same-pipeline detection code for audio/video elements of the same device
This causes deadlocks sometimes for some reason.
2014-12-19 14:40:40 +01:00
Sebastian Dröge
9c2e09cf39 decklinkvideosink: Implement clock slaving 2014-12-19 14:40:40 +01:00
Sebastian Dröge
b9e17c5605 decklinkvideosink: Add some more debug output for when frames are scheduled 2014-12-19 14:40:40 +01:00
Sebastian Dröge
ec90bbb6f3 decklink: Add property for configuring the buffer size of the sources 2014-12-19 14:40:40 +01:00
Sebastian Dröge
112fdd266a decklinkaudiosrc: Implement timestamp jitter and discont handling 2014-12-19 14:40:40 +01:00
Sebastian Dröge
7c0fb92f1b decklink: Our capture time is the end timestamp of the buffer, subtract the duration 2014-12-19 14:40:40 +01:00
Sebastian Dröge
4ef676f109 decklink: Allow for a maximum of 5 packets to be queued up
In case downstream is a bit slow with consuming packets at times.
2014-12-19 14:40:40 +01:00
Sebastian Dröge
aac0027ed2 decklink: Implement latency query in sources and remember selected mode 2014-12-19 14:40:40 +01:00
Sebastian Dröge
23d6eaaa10 decklink: Remove obsolete files 2014-12-19 14:40:39 +01:00
Sebastian Dröge
6d931a0c0e decklink: Add initial version of audio and video sources 2014-12-19 14:40:39 +01:00
Sebastian Dröge
57d46fe9e1 decklink: Initial version of the audio/video sink rewrite 2014-12-19 14:40:39 +01:00
Sebastian Dröge
2d25f2e0b8 decklink: Fix make distcheck
And properly dist all headers and source files.
2014-12-04 15:43:20 +01:00
Sebastian Dröge
d0892984bc decklink: Fix compiler warnings with gcc in the dispatcher 2014-12-03 16:01:32 +01:00
Sebastian Dröge
9aa8bf1705 decklink: Update Windows SDK headers to 10.3.1
No idea where the DecklinkAPIDispatch.cpp comes from on Windows,
but this should still work. Will just become a problem once we
use other parts of the API.
2014-12-03 15:16:18 +01:00
Sebastian Dröge
9a8a944d2f decklink: Update OS X SDK headers to 10.3.1 2014-12-03 14:42:43 +01:00
Sebastian Dröge
5d74b4ba42 decklink: Update Linux SDK headers to 10.3.1 2014-12-03 14:39:13 +01:00
Sebastian Dröge
55721c62e6 decklinksink: Drop too late frames and start scheduled playback at the correct time 2014-11-28 17:32:29 +01:00
Sebastian Dröge
c180012d02 decklinksrc: For the source, unsetting the callback already deletes it 2014-11-28 15:06:42 +01:00
Sebastian Dröge
820894a871 decklinksink: Wait for the pipeline clock instead of the decklink clock
Otherwise we're going to starve other elements if the decklink clock
is slower than the pipeline clock, or starts much later.

Of course this will still cause problems if the decklink clock and ours are
completely out of sync, or running at a very different rate. But this at least
works better now.
2014-11-28 14:58:41 +01:00
Sebastian Dröge
d191fb4476 decklinksink: Schedule video frames according to their timestamps, not according to a frame counter 2014-11-28 14:58:41 +01:00
Sebastian Dröge
b4695f60e5 decklinksink: Add some FIXME comments about synchronization 2014-11-28 14:58:41 +01:00
Sebastian Dröge
50c4ea54f6 decklinksrc: Sample the pipeline clock for the timestamps instead of coming up with our own
If we just count the frames and calculate timestamps from that, all frames
will arrive late in the sink as we have a live source here. Instead take
the pipeline clock at capture time as reference.
2014-11-28 14:56:19 +01:00
Sebastian Dröge
ee8766b342 decklinksrc: Handle callback/delegate object the same way as in the sink
Potentially fixes crashes.
2014-11-28 14:51:53 +01:00
Sebastian Dröge
2a0123d79a decklinksink: Don't crash when going to READY another time
We have to handle the callback object a bit different:
a) it needs a virtual destructor
b) we need to set the callback to NULL when we're done with the output
c) create a new one every time

https://bugzilla.gnome.org/show_bug.cgi?id=740616
2014-11-28 14:51:52 +01:00
Sebastian Dröge
11485e32ab decklink: Add support for 2k modes 2014-11-24 14:11:04 +01:00
Sebastian Dröge
104f39dfe8 decklink: HD1080i50 is 50 frames per second 2014-11-24 13:56:56 +01:00
Sebastian Dröge
bdfac8a6d4 decklink: Fix indention 2014-11-14 10:41:59 +01:00
Sebastian Dröge
e47dbaed07 decklinksink: Check the correct variable for failure
If we can't get an output, we would otherwise just use it later and crash.
2014-11-11 12:00:30 +01:00
Sebastian Dröge
a680867761 decklinksink: Initialize pixel format to bmdFormat8BitYUV
https://bugzilla.gnome.org/show_bug.cgi?id=725871
2014-08-01 18:02:10 +02:00
Sebastian Dröge
fd793e9498 decklinksink: Catch errors during data flow and error out properly
Otherwise we will just deadlock the thread if e.g. scheduling a video
frame fails for whatever reason.
2014-08-01 16:59:42 +02:00
Sebastian Dröge
a8f94fe1e1 decklink: 59.94fps is 60000/1001, not 30000/1001
And also change 30/1 to 60/1 for one 60fps mode.
2014-08-01 12:39:47 +02:00
Nicolas Dufresne
4e9036690c decklink: Don't fail if HW does not have all interfaces
This patch completes 1c1cc73a3b. These
changes where accidentally pushed as a separate patch with wrong commit
message.

https://bugzilla.gnome.org/show_bug.cgi?id=7273
2014-04-27 09:34:39 -04:00
Tim-Philipp Müller
d5a0ace347 Revert "y4mdec: check for VIDEO meta instead of CROP meta"
This reverts commit 68309bd215.

Commit message and files changed do not match.
2014-04-27 13:11:03 +01:00
Nicolas Dufresne
1c1cc73a3b decklink: Fix support for HW without output
Devices suitable for decklinksrc may not have any output, hence querying
the input returns NULL. Add support for all cases where
input/output/config may be missing.

https://bugzilla.gnome.org/show_bug.cgi?id=727306
2014-04-23 12:42:44 -04:00
Nicolas Dufresne
68309bd215 y4mdec: check for VIDEO meta instead of CROP meta
This element only need stride support, but checks for CROP_META, which
is a bit too much, even though this works as CROP imply having VIDEO
meta.

https://bugzilla.gnome.org/show_bug.cgi?id=726255
2014-04-23 12:42:44 -04:00
Vincent Penquerc'h
c78edf5afc decklink: initialize priv to NULL
While the code that creates the object sets priv to some existing
pointer after new, this ensures any future new not doing this will
hit the various priv!=NULL asserts in the code.

Coverity 1139935
2014-04-09 11:43:23 +01:00
Sebastian Dröge
46b62c72d8 decklinksink: Give preference to the order of the filter caps when querying caps 2013-12-17 10:23:15 +01:00
Sebastian Dröge
007807d149 decklinksink: Only intersect with the filter caps if there actually is a filter 2013-12-17 10:21:26 +01:00
Todd Agulnick
44b9429516 decklinksrc: Process EOS even when there are no incoming video frames.
https://bugzilla.gnome.org/show_bug.cgi?id=680700
2013-12-15 10:15:31 +01:00
Sebastian Dröge
234f3c73dc decklinksrc: Set GST_ELEMENT_FLAG_SOURCE on the source
As it does not inherit from basesrc, this flag is not automatically set
and e.g. gst_bin_iterate_sources() and other code does not consider this
element a source.

https://bugzilla.gnome.org/show_bug.cgi?id=680700
2013-12-14 18:43:03 +01:00
Tim-Philipp Müller
fb9fbc8fba decklinksrc: send caps event before segment 2013-09-05 19:10:31 +01:00
Sebastian Dröge
60c2c123be decklink: Add support for group-id in the stream-start event 2013-07-23 10:33:31 +02:00
Youri Westerman
136aa4614e decklink: actually enable decklinksink
https://bugzilla.gnome.org/show_bug.cgi?id=704505
2013-07-22 14:29:35 +01:00
Youri Westerman
f9898e42f6 decklink: add "device-number" to select from multiple devices
https://bugzilla.gnome.org/show_bug.cgi?id=704505
2013-07-22 14:19:25 +01:00
Sebastian Dröge
e51cd4fe2f gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
Tim-Philipp Müller
d84ef611f0 decklinksink: fix some compiler warnings 2013-03-20 10:49:04 +00:00
Mark Nauwelaerts
52908193b0 decklinksink: obtain class from object 2013-03-18 21:19:15 +01:00
Tim-Philipp Müller
a2f446fabc decklinksrc: set discont flag on first audio buffer too 2013-03-16 23:32:12 +00:00
Tim-Philipp Müller
929b0bc3e2 decklinksrc: aggregate audio and video flow returns
And pause task in some more cases where we should
pause the task.
2013-03-16 23:30:24 +00:00
Tim-Philipp Müller
5dfc7c4bce decklinksrc: add send_event handler so application can inject EOS event
This is needed to shut down a recording pipeline cleanly.

https://bugzilla.gnome.org/show_bug.cgi?id=680700
2013-03-16 23:17:24 +00:00
Tim-Philipp Müller
5eb8188e55 decklinksrc: pause streaming thread and send EOS event on error
Instead of just posting an EOS message and continuing,
actually pause the thread.
2013-03-16 21:34:57 +00:00
Tim-Philipp Müller
74ca4aeefd decklinksink: port to 1.0
Compiles, not tested yet.
2013-02-28 18:54:15 +00:00
Tim-Philipp Müller
c16224a220 decklinksrc: add layout=interleaved to audio caps 2013-02-28 18:53:54 +00:00
Tim-Philipp Müller
126df5a0c2 decklinksrc: port to 1.0
Compiles, not tested yet. A great number of superfluous custom
pad functions may have been harmed in the making of this port.
2013-02-27 23:34:34 +00:00
Youness Alaoui
57160c2be7 decklink: remove useless and uninitialized list causing a crash in the device probe 2012-12-26 13:11:50 -05: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
David Schleef
65a1f79bcb decklink: change device instance lifecycle
The decklink driver eventually crashes after repeated creation/deletion
of device, input, output, and configuration objects.  Change to create
these at the outset and keep them around forever.
2012-09-23 21:27:36 +01:00
David Schleef
dd66252f23 decklinksrc: Fix memory leaks
Buffers now hold on to a reference for the input, so the input
object doesn't get freed (and carry the buffers with it) before
all the buffers are freed.
2012-09-23 21:27:34 +01:00
Mark Nauwelaerts
5431286b2a replace _get_caps_reffed with _get_caps 2012-09-14 17:55:05 +02: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
David Schleef
85471f5ffa decklinksink: Fix memory leak 2012-09-09 02:07:24 +01:00
David Schleef
71dcbbd52a decklinksink: Better handling of audio output
Conflicts:

	sys/decklink/gstdecklinksink.cpp
2012-07-03 09:11:52 +02:00
David Schleef
2a51113351 decklinksrc: Send newsegment events 2012-07-03 09:09:27 +02:00
David Schleef
8199f37f27 decklinksink: Mark element as sink element 2012-07-03 09:09:22 +02:00
David Schleef
70cef922a4 decklink: use GOnce in type registration 2012-07-03 09:09:18 +02:00
Edward Hervey
a6be944da9 decklink: Fix unitialized variable 2012-04-25 10:31:00 +02:00
Sebastian Dröge
cda192b3b7 gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 18:02:56 +02:00
Sebastian Dröge
1318a97e0a gst: Update versioning 2012-04-04 14:44:34 +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
Wim Taymans
a9ec4d62a8 update for buffer changes 2012-03-28 12:53:09 +02:00
David Schleef
d2e1cb6ece decklink: Add decklink dispatch code for OS/X 2012-03-22 02:29:19 -07:00
David Schleef
aca69cbf63 decklinksink: Add device property
Also add property probe for device property, similar to decklinksrc.
2012-03-17 15:07:49 -07:00
blake tregre
18475dd0c2 decklinksrc: make sure we can accept caps before returning true
caps are determined by the plugin's properties, so we should check the
incoming caps to see if they agree.  Fixes: #667722.
2012-03-17 14:24:51 -07:00
blake tregre
409e8dcc90 decklinksrc: disable pull mode
decklink device doesn't support any pull mode related functionality.
it's more like a live source, you see. Fixes: #667720.
2012-03-17 14:24:51 -07:00
blake tregre
86eeca91de decklinksrc: push new new segment event to all pads
Take care to push the event to all pads, but favor the video src pad.
Fixes: #667716.
2012-03-17 14:24:51 -07:00
David Schleef
c13e4eacc2 decklinksrc: Implement latency query
Implement latency query.  Fix memleak releasing resources.
2012-03-17 14:24:51 -07:00
David Schleef
83e2ca791c decklink: reindent 2012-03-17 14:24:51 -07:00
blake tregre
e37ce96b2c decklinksrc: handle flow return properly and provide better message
* sys/decklink/gstdecklinksrc.cpp:
2012-03-17 14:24:51 -07:00
David Schleef
7cd0ac046a decklink: Add property probing
Renames the subdevice property to just device, and has it
return the number of devices in the system in response to
a probe. This is useful both for using multiple capture
cards, and for detecting whether it's worth adding the
element to a pipeline.

Also cleans up the property descriptions.
2012-03-17 14:24:42 -07:00
Wim Taymans
a9f5def9d1 Merge branch 'master' into 0.11
Conflicts:
	ext/opus/gstopusparse.c
	gst/colorspace/colorspace.c
2012-02-20 16:07:50 +01:00
Sebastian Dröge
87163ea091 decklink: Add $(GST_PLUGINS_BASE_CFLAGS) and $(GST_PLUGINS_BASE_LIBS) to fix the build 2012-02-20 12:42:47 +01:00
David Schleef
8f8d7bf781 decklink: Add 10-bit support 2012-02-18 17:04:44 -08: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
Wim Taymans
de1f89bf07 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:37:13 +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
Wim Taymans
8546951222 chain up in set_clock 2011-11-10 12:11:21 +01:00
Wim Taymans
ad06ac2b4b Merge branch 'master' into 0.11
Conflicts:
	ext/resindvd/rsnwrappedbuffer.c
2011-08-25 12:49:26 +02:00
David Schleef
1c73e77e32 decklink: fix compilation on Linux 2011-08-21 19:06:54 -07:00
David Schleef
e246d92bd5 decklink: Add subdevice property 2011-08-21 19:06:54 -07:00
Joshua M. Doe
cfd68a8e7a decklink: add support for Windows
Builds with MSVC, not tested in MinGW or anything else. Added
COM handling code, borrowed from dshowvideosink. Moved Linux
specific files to ./linux and added Windows specific files to
./win (generated from IDL files in VS9). Added macros to handle
BSTR and defined bool as BOOL.  Fixes #655362.

Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 19:06:05 -07:00
Joshua M. Doe
8f08c610ec decklink: improve frame handling
Send NEWSEGMENT on start. Send warning instead of error on
dropped frames.

Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 19:05:00 -07:00
Joshua M. Doe
a18180898f decklink: fix debugging in capture.cpp by making category extern
Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 19:02:51 -07:00
Joshua M. Doe
c830cf3e66 decklink: use mutexes from glib instead of pthread
Signed-off-by: David Schleef <ds@schleef.org>
2011-08-21 18:59:49 -07:00
Edward Hervey
8132a5d46e decklink: Add gstdecklink.h to list of headers 2011-08-04 11:29:58 +02:00
David Schleef
2b5e8db968 decklink: Add audio-input property 2011-08-03 13:39:33 -07:00
David Schleef
5056c34761 decklink: HD modes are square pixels 2011-07-07 11:29:37 -07:00
David Schleef
ab1e013bb8 decklink: properly set up analog input 2011-07-04 16:49:00 -07:00
David Schleef
ae49fa1f78 decklink: Add more modes 2011-07-04 16:48:59 -07:00
David Schleef
571e95cf10 decklink: update DeckLink API wrappers 2011-06-20 12:49:16 -07:00
David Schleef
16a49a3617 decklink: Add connection type 2011-06-20 12:49:16 -07:00
Rafael Diniz
bb4844b29e decklinksink: Add audio support
Signed-off-by: David Schleef <ds@schleef.org>
2011-06-20 12:49:16 -07:00
David Schleef
1faf410ca3 decklink: Add various features
Better mode support, input source property, audio support.
2011-06-20 12:49:16 -07:00
David Schleef
69c930565f decklink: remove unused code 2011-06-20 12:49:16 -07:00
David Schleef
1e1c16150b decklink: reindent 2011-06-20 12:49:16 -07:00
Debarshi Ray
335293bf50 Remove unused but set variables
This is needed to satisfy the new -Wunused-but-set-variable added in
GCC 4.6: http://gcc.gnu.org/gcc-4.6/changes.html
2011-06-04 20:26:02 +01:00
Brian Gitonga Marete
1962b31046 decklink: Change counters to 64 bit unsigned integers. 2011-05-18 12:07:13 -07:00
Sebastian Dröge
efc356a2b5 decklink: Remove unused/unneeded CFLAGS/LIBS and move $(LIBM) to LIBADD 2011-04-18 11:46:23 +02:00
Sebastian Dröge
8ef0268b9c decklink: Dist all headers and put them in noinst_HEADERS 2011-04-17 19:16:45 +02:00
David Schleef
a5cb7912f1 decklink: Fix win32 build 2011-03-24 16:16:38 -07:00
David Schleef
8961f6a900 decklink: Add decklink plugin
Source and sink elements for BlackMagic DeckLink SDI cards.
2011-03-23 21:33:49 -07:00