Sebastian Dröge
751f68740f
decklinkvideosrc: Fix PAL/NTSC widescreen autodetection when switching back to non-widescreen
...
Previously it would only switch to widescreen but never back.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2469 >
2021-08-18 09:13:45 +03:00
Seungha Yang
e8882c3a1d
decklink: Don't print error for dlopen failure
...
This is not a fatal error on systems without decklink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2441 >
2021-07-28 17:13:06 +09:00
Seungha Yang
ba83f29cec
decklinkaudiosrc: Don't assume that stream time is always valid
...
As per SDK doc, IDeckLinkInputCallback::VideoInputFrameArrived
method might not provide video frame and it can be null.
In that case, given stream_time can be invalid.
So, we should not try to convert GST_CLOCK_TIME_NONE
by using gst_clock_adjust_with_calibration()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2337 >
2021-06-21 09:58:46 +00:00
Seungha Yang
81ac09cfda
decklinkvideosrc: Fix crash when mode is not specified
...
In that case, we will get "VideoInputFrameArrived" callback
without "VideoInputFormatChanged"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2218 >
2021-05-06 01:37:33 +09:00
Sebastian Dröge
f1ec6ddd5e
decklinkvideosrc: Fix AFD/Bar VANC size check
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2193 >
2021-04-26 15:03:34 +00:00
Sebastian Dröge
56af02f9c8
decklinkvideosrc: Automatically detect widescreen vs. normal NTSC/PAL
...
Based on the AFD aspect ratio flag the source can detect (in mode=auto)
whether this NTSC/PAL mode is actually a normal or a widescreen one and
select the caps according to that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2193 >
2021-04-26 15:03:34 +00:00
Stéphane Cerveau
da9e012e8a
plugins-sys: 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/2116 >
2021-04-09 19:23:40 +00:00
Sebastian Dröge
02412620a8
decklinkvideosink: Use correct numerator for 29.97fps
...
It's not 0.2997fps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2042 >
2021-02-26 16:36:58 +02:00
Edward Hervey
6fe54f7f48
decklinksrc: Use a more accurate capture time
...
Use the hardware reference clock time when the frame was finished being captured
instead of a time much further down the road.
This improves the stability/accuracy of buffer times.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2040 >
2021-02-26 14:08:43 +01:00
Staz M
180ab8377f
decklink: Fixed decklinkvideosink auto format detection
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1994 >
2021-01-29 16:49:07 +00:00
Sebastian Dröge
4d07974b10
decklinkaudiosrc: Allow disabling audio sample alignment code by setting the alignment-threshold to 0
...
And handle setting it to GST_CLOCK_TIME_NONE as always aligning without
ever detecting a discont.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1956 >
2021-01-14 14:37:32 +02:00
Sebastian Dröge
70facfa8d3
decklinkaudiosrc: Fix duration of the first audio frame after each discont
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1886 >
2020-12-17 09:00:24 +00:00
Sebastian Dröge
c123b79900
decklink: Implement GstBaseSrc::get_caps() to return more constrained caps
...
Instead of the template caps we can return a subset of them based on the
selected properties.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1868 >
2020-12-16 14:13:40 +02:00
Jason Pereira
cba368785b
decklink: correct framerate 2KDCI 23.98
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1771 >
2020-11-05 14:28:28 +00:00
Sebastian Dröge
f71493a57c
decklink: Remove \n from debug output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
60b7bd23a8
decklink: Correctly indent everything
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
56b2130300
decklink: Add a default profile id
...
This causes no changes to the profile but keeps the existing settings.
The profile can also be changed from e.g. the card's configuration
application and in that case probably should be left alone.
The default is the new value as it keeps the profile setting as it is,
which is consistent with the previous behaviour in 1.18.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 16:23:31 +02:00
Sebastian Dröge
d1df412d70
decklink: Mark internal function as static
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 13:47:51 +00:00
Sebastian Dröge
1ea2796cfc
decklink: Remove some dead code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721 >
2020-10-30 13:47:51 +00:00
Sebastian Dröge
c6aca271a1
decklink: Update enum value bounds check in gst_decklink_get_mode()
...
The widescreen modes moved after GST_DECKLINK_MODE_2160p60 and using
them now would cause an assertion. This is a regression from
309f6187fe
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1737 >
2020-10-30 10:02:32 +02:00
Sebastian Dröge
8a923af42f
decklink: Reset skip counters when starting the sources
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378 >
2020-10-25 11:46:29 +02:00
Vivia Nikolaidou
675d8b347b
decklink*src: Post a warning message on the bus about dropped frames
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378 >
2020-10-25 11:39:09 +02:00
Georg Lippitsch
a45b0c8f1a
decklink*src: Aggregate dropped frame/packet logging
...
decklink*src currently prints a log entry for every dropped frame and
audio packet. That completely spams the logs.
This change aggregates information about dropped packets and only prints
a message once when dropping starts, and a summary when dropping ends.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/705
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378 >
2020-10-25 11:39:05 +02:00
Seungha Yang
9279326d8a
decklink: Update doc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Seungha Yang
b86e77e3a3
decklink: Update Windows headers with SDK 11.2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Seungha Yang
94a9a8f836
decklink: Update OSX headers with SDK 11.2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Tim
c6151f635f
decklink: Updated DeckLink SDK to 11.2 to support DeckLink 8K Pro
...
Updated Decklink SDK to version 11.2 in order to support newer cards like the Decklink 8K Pro.
This required to replace the duplex property by a profile property.
Profile values can be the following:
- bmdProfileOneSubDeviceFullDuplex
- bmdProfileOneSubDeviceHalfDuplex
- bmdProfileTwoSubDevicesFullDuplex
- bmdProfileTwoSubDevicesHalfDuplex
- bmdProfileFourSubDevicesHalfDuplex
Fixes #987
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665 >
2020-10-08 20:05:03 +00:00
Sebastian Dröge
97e648a738
decklink: Correctly order the different dependent mode tables
...
One was forgotten in 309f6187fe
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1617 >
2020-10-01 06:29:19 +00:00
Sebastian Dröge
309f6187fe
decklink: Re-order modes enum for backwards compatibility with 1.16
...
The PAL/NTSC widescreen modes were added after 1.16 but inserted before
the HD modes, which changed the integer values of the enums.
Move them to the very end instead to keep backwards compatibility.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1048
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1492 >
2020-08-06 12:22:04 +03:00
Matthew Waters
c94675f1d4
decklinkvideosink: write the cdp timecode data correctly
...
We were mixing up the tens part with the unit parts all over the place.
e.g. 12 seconds would be encoded as 0x21 instead of the correct 0x12
Aligns the code with the same change applied to ccconverter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1400 >
2020-07-03 06:54:46 +00:00
Mathieu Duponchelle
a048ce81d4
plugins: uddate gst_type_mark_as_plugin_api() calls
2020-06-06 00:40:42 +02:00
Sebastian Dröge
74f2f733be
plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types
2020-06-04 13:33:16 -04:00
Philippe Normand
273e32d5aa
decklink: Remove spurious gtk-doc marker
2020-03-15 10:46:54 +00:00
Heinrich Kruger
03cf2d42a5
decklink: Add support for 2K DCI video modes
...
Extend the video modes supported by the decklink plugin to include 2K
DCI video modes.
2020-03-03 08:05:56 +00:00
Heinrich Kruger
796fffa441
decklink: Update Decklink SDK to 10.11.4
...
This change is needed to support 2K DCI video modes.
Version 10.8 of the Decklink SDK supported DCI video modes for output
only. This updated version drops that restriction.
The current latest version of the Decklink SDK is 11.5, however
the gstreamer decklink plugin is not compatible with API changes
introduced in version 11 of the SDK. Therefore I have opted to upgrade
to the latest 10.x version instead.
2020-03-03 08:05:56 +00:00
Nicolas Dufresne
6d6e897762
decklink: Silence no driver / no SO messages
...
This g_once() is called everywhere, even in provider. This cause
spurious error when device monitor is used. Just silence or remove
the spurious logs.
2020-01-10 08:00:05 +00:00
Sebastian Dröge
e4389146d9
decklinkvideosink: Always configure 10 bit YUV for VANC frames
...
If 8 bit are required by the device/mode then it will be converted internally
by the SDK, but the SDK won't automatically convert from 8 to 10 bit. As
such, always use 10 bit VANC.
Some devices require configuring also a 10 bit video format when using
10 bit VANC is required but those would fail regardless and the
application would have to configure the correct video format.
With newer versions of the SDK this information can be retrieved via the
BMDDeckLinkVANCRequires10BitYUVVideoFrames flag but we don't use a new
enough SDK version yet to extract this information.
2020-01-09 12:54:04 +02:00
Philippe Normand
9f1fbd3649
decklink: Fix crash when probing without driver
...
If there is no decklink hardware/driver, the devices list is empty (NULL), so
this needs to be checked before iterating over the list.
2020-01-05 16:20:18 +00:00
Sebastian Dröge
f776e2df96
decklink: Return new references to the devices from get_devices()
...
Otherwise the caller will free the devices we store internally.
2019-12-05 21:22:18 +02:00
Sebastian Dröge
8ba4d1a480
decklink: Add simple device provider for Decklink devices
2019-12-03 09:16:22 +00:00
Aaron Boxer
6d3429af34
documentation: fixed a heap o' typos
2019-11-05 09:11:25 -05:00
Tim-Philipp Müller
f218ec2794
Remove autotools build system
2019-10-14 13:54:27 +01:00
Matthew Waters
4d528776b6
decklink: fix timestamp tracking when pausing
...
play->pause->sleep()->play would result in late frames being scheduled
2019-10-14 19:22:36 +11:00
Matthew Waters
82e23a27f7
decklinkaudiosink: Drop late buffers
...
Asking decklink to render audio data seems to be based entirely on
the sample counts which completely disregards the timestamps
we pass to decklink. As a result, we need to explicitly check
for late buffers and drop them ourselves.
2019-09-02 11:09:02 +00:00
Matthew Waters
02814a43da
decklink: fix macos werror build
...
../sys/decklink/gstdecklink.cpp:1703:7: error: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long') [-Werror,-Wformat]
persistent_id);
^~~~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:1070:87: note: expanded from macro 'GST_DEBUG'
#define GST_DEBUG(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_DEBUG, NULL, __VA_ARGS__)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/Library/Frameworks/GStreamer.framework/Versions/1.0/include/gstreamer-1.0/gst/gstinfo.h:646:31: note: expanded from macro 'GST_CAT_LEVEL_LOG'
(GObject *) (object), __VA_ARGS__); \
^~~~~~~~~~~
2019-08-30 14:16:54 +10:00
Sebastian Dröge
99af098a7b
decklinkvideosrc: Retrieve mode of the ancillary data from the frame
...
Instead of using the information we stored ourselves for the video frame
itself. Which was also the wrong one: it was the mode from the property,
not the autodetected one.
This fixes vanc extraction with mode=auto
2019-08-07 10:27:42 +00:00
Sebastian Dröge
2b3a14ff4e
decklinkvideosrc: Also set the INTERLACED buffer flag on non-TFF buffers
2019-08-07 10:27:42 +00:00
Sebastian Dröge
ab8bd0aa44
decklinkaudiosrc/decklinkvideosrc: Do nothing in BaseSrc::negotiate() and always set caps in ::create()
...
We don't support negotiation with downstream but simply set caps based
on the buffers we receive. This prevents renegotiation to other formats,
and negotiation to NTSC in mode=auto in the beginning until the first
buffer is received.
As side-effect of this, also remove various other caps handling code
that was working around the behaviour of the default
BaseSrc::negotiate().
2019-08-06 19:05:38 +00:00
Sebastian Dröge
e326260173
decklink: Make sure to return a value from all code paths
...
False warning from MSVC, or it does not understand that
g_assert_not_reached() does not return.
...\gst-plugins-bad-1.0-1.17.0.1\sys\decklink\gstdecklink.cpp(1647) : warning C4715: 'gst_decklink_configure_duplex_mode': not all control paths return a value
2019-07-25 12:29:22 +03:00
Sebastian Dröge
b4b911da4d
decklinksrc: Reset timestamp observations on format change
...
We will usually get timestamps starting from 0 again and due to the
format change the clock of the input might also be different.
2019-07-25 12:29:22 +03:00