Sebastian Dröge
82edbde1fc
decklink: Update to SDK 10.8
...
OSX and Linux only, Windows needs someone on Windows to convert the .idl
files to C source code.
2016-09-26 16:39:18 +03:00
Sebastian Dröge
f9a8b843df
decklink: Print the Decklink API error return values in debug output in all places
2016-09-21 09:31:41 -04:00
Sebastian Dröge
95eb492c32
Revert "decklinkvideosink: Scale down scheduled frame times to milliseconds"
...
This reverts commit 3b7e0d7de3
.
It was a bug in the driver and is supposed to be fixed with 10.8 and newer.
2016-09-12 12:20:01 +02:00
Sebastian Dröge
fcea134ec4
decklink: Fix-up last commit that was not meant to be pushed yet
2016-09-01 14:25:58 +03:00
Sebastian Dröge
8be08ee7fd
decklink: Fix indentation
2016-09-01 14:18:33 +03:00
Sebastian Dröge
d8327b397d
decklink: Require a clock when going from PAUSED_TO_PLAYING and don't crash if there is none
...
Also when going from PLAYING_TO_PAUSED, the clock might've been unset in the
meantime, e.g. because the element was removed from its surrounding bin.
2016-09-01 14:17:48 +03:00
Sebastian Dröge
1da1a3afc9
decklinkaudiosink: Fix compiler warning on OS X
...
While gint64 and int64_t are always the same, clang does not agree with that.
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C decklink
CXX libgstdecklink_la-gstdecklinkaudiosink.lo
gstdecklinkaudiosink.cpp:675:79: error: cannot initialize a parameter of type 'int64_t *' (aka 'long long *') with an rvalue of type 'gint64 *' (aka 'long *')
ret = buf->output->attributes->GetInt (BMDDeckLinkMaximumAudioChannels, &max_channels);
^~~~~~~~~~~~~
./linux/DeckLinkAPI.h:692:87: note: passing argument to parameter 'value' here
virtual HRESULT GetInt (/* in */ BMDDeckLinkAttributeID cfgID, /* out */ int64_t *value) = 0;
^
2016-08-26 16:05:11 +03:00
Sebastian Dröge
3b7e0d7de3
decklinkvideosink: Scale down scheduled frame times to milliseconds
...
Scale down to milliseconds, otherwise at least some hardware has problems
scheduling the frames (or schedules them too slow) and we run out of available
frames.
https://bugzilla.gnome.org/show_bug.cgi?id=770282
2016-08-26 15:49:40 +03:00
Sebastian Dröge
6fdd4d8288
decklinkaudiosink: Add support for 8 and 16 channels
2016-08-26 15:49:40 +03:00
Vivia Nikolaidou
de1f42a284
decklinkvideosink: Add support for GstVideoTimeCode
...
The timecode will be fetched from the video buffer and outputted on the
decklink video sink.
https://bugzilla.gnome.org/show_bug.cgi?id=766419
2016-08-04 19:08:27 +03:00
Vivia Nikolaidou
8faa36e105
decklinkvideosrc: Add support for GstVideoTimeCode
...
The timecode will be fetched from the decklink source and attached to the
video buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=766419
2016-08-04 19:08:27 +03:00
Edward Hervey
41283361fa
decklinkvideosrc: Fix previous commit
...
The frames queue might return nothing (be empty) if we're flushing.
Move the assertion to after the flushing check
2016-05-11 16:52:44 +02:00
Tim-Philipp Müller
ddcc1c6442
decklinkvideosrc: fix use-after-free in error code path
2016-05-10 09:40:38 +01:00
Tim-Philipp Müller
8d128f8bf5
decklinkvideosrc: remove unnecessary checks for non-NULL frame
...
We can't get a NULL frame here.
CID 1359923
2016-05-10 09:38:28 +01:00
Vivia Nikolaidou
a4ae449434
decklink: Fix swapped name and nick in GEnumValues
...
https://bugzilla.gnome.org/show_bug.cgi?id=742878
2016-05-03 15:57:23 +03:00
Vivia Nikolaidou
832764d2fd
decklink: Add initial 10bit support for YUV modes
...
https://bugzilla.gnome.org/show_bug.cgi?id=742878
2016-05-03 15:57:23 +03:00
Sebastian Dröge
87503ac174
decklink: Fix indentation
2016-05-03 15:57:23 +03:00
Sebastian Dröge
da999d7af8
decklink: Initialize capture_time to NONE so it can be used if no video frame is provided but audio is
...
CID 1358390
2016-04-08 14:08:31 +03:00
Sebastian Dröge
f06647fd0c
decklinkaudiosrc: Don't accept packets without timestamps after a discont
...
We have no idea which timestamps they are supposed to have so the only thing
we can do at this point is to drop them. Packets without timestamps happen if
audio was captured but no corresponding video, which shouldn't happen under
normal circumstances.
https://bugzilla.gnome.org/show_bug.cgi?id=747633
2016-04-05 14:49:51 +03:00
Sebastian Dröge
0004920c83
decklinkaudiosrc: Don't crash when receiving video frames but no audio
...
And mark these events as disconts to reset time tracking in the audio source.
https://bugzilla.gnome.org/show_bug.cgi?id=747633
2016-04-05 14:47:00 +03:00
Tim-Philipp Müller
8abff20185
decklinkvideosrc: don't crash if we get NULL video frames in the callback
...
For some reason we seem to sometimes get NULL video_frames in the
::VideoInputFrameArrived() callback, observed on Intensity Pro cards.
https://bugzilla.gnome.org/show_bug.cgi?id=747633
2016-04-05 14:46:22 +03: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
Jan Schmidt
0d3cd82749
decklinkaudiosrc: Fix discont tracking
...
Don't reset the marker that's tracking disconts until
either the discont disappears or we resync.
2016-02-04 14:33:09 +11:00
Julien Moutte
3ea431c5b5
decklinkvideosrc: implement RGB capture support
...
Combine mode and format to generate caps and support the flags from VideoChanged callback to support RGB capture.
https://bugzilla.gnome.org/show_bug.cgi?id=760594
2016-01-22 16:11:08 +01:00
Vivia Nikolaidou
fafc8e564c
decklinkvideosink: Made "auto" mode work according to caps
...
When the mode of decklinkvideosink is set to "auto", the sink claims to
support the full set of caps that it can support for all modes. Then, every
time new caps are set, the sink will automatically find the correct mode for
these caps and set it.
Caveat: We have no way to know whether a specific mode will actually work for
your hardware. Therefore, if you try sending 4K video to a 1080 screen, it
will silently fail, we have no way to know that in advance. Manually setting
that mode at least gave the user a way to double-check what they are doing.
https://bugzilla.gnome.org/show_bug.cgi?id=759600
2015-12-18 16:08:02 +01:00
Sebastian Dröge
9764e22a5c
decklink: Add a clock epoch that is used as offset whenever restarting the clock
...
Otherwise we're going to return times starting at 0 again after shutting down
an element for a specific input/output and then using it again later.
https://bugzilla.gnome.org/show_bug.cgi?id=755426
2015-09-24 09:32:36 +02:00
Sebastian Dröge
e0fd5317df
decklink: Disable inputs/outputs in PAUSED->READY to allow going to PAUSED again from there
...
https://bugzilla.gnome.org/show_bug.cgi?id=755426
2015-09-24 09:32:27 +02:00
Sebastian Dröge
b2149e7bb4
decklinkvideosink: less-than-zero comparison of an unsigned value is never true
...
Use the correct type, GstClockTimeDiff, instead.
CID 1323742
2015-09-10 14:11:58 +03:00
Sebastian Dröge
b6498c32f3
decklinkvideosink: Handle pipelines where the running time does not start around 0 properly
...
We were converting all times to our internal running times, that is the time
the sink itself spent in PLAYING already. But forgot to do that for the
running time calculated from the buffer timestamps. As such, all buffers were
scheduled much later if the pipeline's running time did not start at 0.
This happens for example if a base time is explicitly set on the pipeline.
https://bugzilla.gnome.org/show_bug.cgi?id=754528
2015-09-09 16:59:02 +03:00
Sebastian Dröge
a6744a915b
decklinkvideosink: Consider pipeline latency, render delay and ts offset when scheduling frames
...
Without this, we will schedule all frames too late in live pipelines.
https://bugzilla.gnome.org/show_bug.cgi?id=754666
2015-09-09 16:58:45 +03:00
Sebastian Dröge
e3aaff400a
decklinkvideosink: Remove late frame-dropping workaround for basesink bug
...
This was fixed by https://bugzilla.gnome.org/show_bug.cgi?id=749258
in basesink, and is not necessary to duplicate here anymore.
2015-06-13 11:41:33 +02:00
Sebastian Dröge
62f25894a5
decklinkvideosink: Don't require the same framerate in the input as the mode's framerate
...
We only really care about the timestamps for the sink.
2015-06-12 22:35:03 +02:00
Heinrich Fink
6007829e77
decklink: Rename mode 2048p to 1556p
...
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:20:11 +03:00
Heinrich Fink
1dabd7c5b8
decklink: Use correct frame rate for mode 2160p50
...
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:14:39 +03:00
Heinrich Fink
e6d82dec32
decklink: Rename mode 3184p to 2160p
...
https://bugzilla.gnome.org/show_bug.cgi?id=749218
2015-05-11 13:14:15 +03:00
Josep Torra
cf66541850
decklinkvideosrc: fix mode autodetection
...
The autodetection mode was broken because a race condition in the input mode
setting. The mode could be reverted back when it was replaced in
the streaming thread by the old mode in the middle of mode changed callback.
2015-04-22 17:20:22 +02:00
Josep Torra
6b70b848ee
decklink: do not repeat first video format in caps template
...
The first entry in the modes array is used as default mode for autodetection.
There's no need to copy it into the caps template.
2015-04-22 17:20:21 +02:00
Sebastian Dröge
254337365a
decklinkaudiosrc: Calculate the duration more accurately from the capture time and numbers of samples
...
This should prevent any accumulating rounding errors with the duration.
2015-03-04 16:13:30 +01:00
Sebastian Dröge
912e58c64c
decklinkaudiosrc: Fix the timestamp and offset calculations even more
2015-03-04 16:07:10 +01:00
Sebastian Dröge
1f9d37c924
decklinkaudiosrc: Don't subtract the duration from the capture time
...
We already have the real capture time, not the time when we received
the end of the packet.
2015-03-04 16:04:18 +01:00
Sebastian Dröge
4521524de3
decklink: Reset the clock calibration when unsetting the master clock
...
Otherwise the old calibration will stick around for the next time we use it,
potentially giving us completely wrong times.
2015-03-02 16:45:45 +01:00
Sebastian Dröge
8e362aab14
decklink{audio,video}src: Add some more debug output
2015-03-02 13:57:24 +01:00
DanielD10
034ed48023
decklink: Incorrect frame rate for interlaced modes
...
https://bugzilla.gnome.org/show_bug.cgi?id=744386
2015-03-02 11:59:31 +01:00
Sebastian Dröge
72b440cc89
decklinkvideosrc: Fix scaling with rate of internal/external clock
2015-02-27 11:08:14 +02:00
Sebastian Dröge
9ed4054a94
decklinkvideosrc: Apply the diff between element and pipeline "base" time in all cases
...
Even if both clocks have the same rate, we need to apply this diff. Only when
it's the same clock we don't, as it's our clock then.
2015-02-10 16:01:19 +01:00
Sebastian Dröge
f83ac624e3
decklinkvideosrc: Add the diff between the pipeline base time and when we start to play
...
Add the diff between the external time when we went to playing and
the external time when the pipeline went to playing. Otherwise we
will always start outputting from 0 instead of the current running
time.
2015-02-10 15:30:44 +01:00
Sebastian Dröge
d4575e759b
decklinkvideosink: Actually include the change mentioned in the last commit
2015-02-10 14:53:55 +01:00
Sebastian Dröge
e8167dd118
decklinkvideo{src,sink}: Sample the internal clock immediately after starting the device
...
Otherwise we might stay at 0.0s for too long because we will take the first
timestamp we ever see as 0.0... which will be after we started the device.
2015-02-10 14:48:09 +01:00
Sebastian Dröge
b739cf8b7f
decklink: Fix compiler warning with gcc
...
gstdecklink.cpp: In member function 'virtual HRESULT GStreamerDecklinkInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*)':
gstdecklink.cpp:498:22: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (capture_time > m_input->clock_start_time)
^
gstdecklink.cpp:503:22: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (capture_time > m_input->clock_offset)
^
2015-02-09 21:04:17 +01:00
Sebastian Dröge
f0e85023c2
decklink{audio,video}src: Implement clock slaving if the pipeline clock is not the decklink clock
2015-02-09 17:17:37 +01:00
Sebastian Dröge
408f0870a6
decklinkaudio{src,sink}: Only start streams / scheduled playback if there is a videosrc at this point
2015-02-09 17:15:21 +01:00
Sebastian Dröge
349113d15a
decklinkaudiosrc: Don't provide a clock
...
The audio source only works together with the video source, and the video
source is already providing a clock.
2015-02-09 17:04:27 +01:00
Sebastian Dröge
4de7fdfa3a
decklinkaudiosink: Throttle reading from the ringbuffer
...
The driver has an internal buffer of unspecified and unconfigurable size, and
it will pull data from our ring buffer as fast as it can until that is full.
Unfortunately that means that we pull silence from the ringbuffer unless its
size is by conincidence larger than the driver's internal ringbuffer.
The good news is that it's not required to completely fill the buffer for
proper playback. So we now throttle reading from the ringbuffer whenever
the driver has buffered more than half of our ringbuffer size by waiting
on the clock for the amount of time until it has buffered less than that
again.
2015-02-09 16:22:39 +01:00
Sebastian Dröge
a6bcd09b6c
decklinkaudiosink: Start scheduled playback when going to PLAYING
...
The ringbuffer's acquire() is too early, and ringbuffer's start() will only be
called after the clock has advanced a bit... which it won't unless we start
scheduled playback.
2015-02-09 16:22:39 +01:00
Sebastian Dröge
22b0a4dad5
decklink{audio,video}src: Take the capture times from the pipeline clock
...
Not from the decklink clock. Both will return exactly the same time once the
decklink clock got slaved to the pipeline clock and received the first
observation, but until then it will return bogus values. But as both return
exactly the same values, we can as well use the pipeline clock directly.
2015-02-08 21:56:04 +01:00
Sebastian Dröge
e9b49018ed
decklinkvideosink: Always lock the mutex before starting the streams
2015-01-28 17:02:59 +01:00
Sebastian Dröge
837eee7085
decklinkvideosink: Fix deadlock
2015-01-28 16:59:30 +01:00
Sebastian Dröge
4eb5cd9156
decklink{audio,video}sink: Only start scheduled playback once both sources are ready and we are in PLAYING
...
Otherwise we might start the scheduled playback before the audio or video streams are
actually enabled, and then error out later because they are enabled to late.
We enable the streams when getting the caps, which might be *after* we were
set to PLAYING state.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
e2ff5587fe
decklink{audio,video}src: Only start the streams once both sources are ready and we are in PLAYING
...
Otherwise we might start the streams before the audio or video streams are
actually enabled, and then error out later because they are enabled to late.
We enable the streams when getting the caps, which might be *after* we were
set to PLAYING state.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
00176a1ddf
decklink: Make sure our clock never returns NONE, always advances and does not jump when going from PAUSED to PLAYING
...
It basically behaves the same as the audio clocks.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
b3a4772834
decklinkvideosink: Handle the clock returning GST_CLOCK_TIME_NONE properly
2015-01-28 16:13:16 +01:00
Sebastian Dröge
8a5d2c561c
decklinkvideo{sink,src}: Make elements more similar to the audio elements by enabling the video input/output only when getting the actual caps
...
This will also make it easier later to support caps changes and support
selecting the mode based on the caps if that should ever be implemented.
2015-01-28 16:13:16 +01:00
Sebastian Dröge
f3ae93e504
decklinkvideosrc: Properly report caps if mode!=auto and handle caps changes properly for mode=auto
2015-01-28 16:13:16 +01:00
Sebastian Dröge
7fb57938c1
decklinkaudiosrc: Don't release input device twice on errors in set_caps()
2015-01-28 16:13:16 +01:00
Sebastian Dröge
c6d5c4c2e1
decklinkaudiosrc: Release the audio input on errors, not the video input
2015-01-26 15:33:45 +01:00
Sebastian Dröge
e734c3cf13
decklinkvideosink: Also consider max-lateness property value before dropping late frames
2015-01-15 12:49:46 +01:00
Sebastian Dröge
5a12b2670e
decklinkvideosink: Stop scheduled playback shortly in PAUSED->PLAYING if it was running already
...
This fixes handling of flushing seeks, where we will get a PAUSED->PLAYING
state transition after the previous one without actually going to PAUSED
first.
2015-01-14 16:33:53 +01:00
Sebastian Dröge
92fa187d11
decklinkvideosink: Don't schedule too late frames in prepare()
...
Otherwise we will overflow the internal buffer of the hardware
with useless frames and run into an error. This is necessary until
this bug in basesink is fixed:
https://bugzilla.gnome.org/show_bug.cgi?id=742916
2015-01-14 16:02:57 +01:00
Sebastian Dröge
7b979703f8
decklinkvideosink: Keep track of the time when we went to PLAYING for the external clock too
...
Otherwise we're adding an offset of the time the pipeline was in PLAYING
already to the running time when converting it to our internal clock.
2015-01-14 16:00:54 +01:00
Sebastian Dröge
aed66838f3
decklinkvideosink: Enable QoS and set max-lateness to 20ms
2015-01-14 13:33:15 +01:00
Sebastian Dröge
ab9ee34aba
decklink: Use BT2020 colorspace for UltraHD resolutions
2015-01-13 19:56:45 +01:00
Sebastian Dröge
65119ae8b4
decklink: Fix indention once again
2015-01-13 19:56:45 +01:00
Sebastian Dröge
d2e309d341
decklinkvideosink: Get our own "start time" instead of the one of the pipeline
...
decklinkvideosink might be added later to the pipeline, or its state might
be handled separately from the pipeline. In which case the running time when
we (last) went into PLAYING state will be different from the pipeline's.
However we need our own start time to tell the Decklink API, which running
time should be displayed at the moment we go to PLAYING and start scheduled
rendering.
2015-01-13 17:44:17 +01:00
Sebastian Dröge
b79ece392c
decklink: Initialize refcount of our C++ classes in the constructor
...
CID 1262288
CID 1262287
CID 1262289
2015-01-12 15:58:38 +01:00
Sebastian Dröge
4531a341a8
decklinkvideosrc: Post LATENCY message when the mode changes
...
Different modes have different framerates, and thus different latencies. We
might need to reconfigure the latency of the pipeline.
2015-01-08 18:16:12 +01:00
Sebastian Dröge
beede3f27d
decklinkvideosrc: Fix compiler warning
2015-01-08 18:16:12 +01:00
Florian Langlois
9480d91ad4
decklinkvideosrc: Add automatic mode detection
...
https://bugzilla.gnome.org/show_bug.cgi?id=739284
2015-01-08 18:16:12 +01:00
Sebastian Dröge
7e7cabb422
decklink: Add a dummy value to the video connection mapping table for auto
2015-01-08 12:55:51 +01:00
Sebastian Dröge
ed0d4cc653
decklinkaudiosrc: Add property to select the audio input connection
2015-01-08 12:48:22 +01:00
Sebastian Dröge
34de6ad73b
decklink: Add XLR and RCA audio connection enums
2015-01-08 12:23:53 +01:00
Sebastian Dröge
a35d5ae9b9
decklinkvideosrc: Add auto value for the connection property
...
This will use the default/auto connection for video capturing, and can
be set via the Decklink configuration tools.
2015-01-08 12:23:09 +01:00
Sebastian Dröge
478deb4805
decklink: Fix indention once again
2015-01-08 12:13:03 +01:00
Florian Langlois
81c1ef190d
decklink: Add property for configuring the input connection of the video sources
2015-01-08 12:12:50 +01:00
Florian Langlois
e7c6eb6326
decklink: Fix latency values for sources
2015-01-07 16:42:57 +01:00
Sebastian Dröge
196d9c4829
decklink: Add support for 4K / UHD modes
2014-12-29 17:58:37 +01:00
Sebastian Dröge
0122a9d1b6
decklink: Fix indention
2014-12-29 17:58:37 +01:00
Sebastian Dröge
d632a48d6c
decklink: Fix various compiler warnings with gcc
2014-12-19 15:05:58 +01:00
Sebastian Dröge
5e7782ca39
decklink: Re-add the COM initialization code for Windows
...
Untested, and we will never deinitialize COM again.
2014-12-19 14:50:25 +01:00
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