summaryrefslogtreecommitdiff
path: root/sys/decklink
Commit message (Collapse)AuthorAgeFilesLines
* decklinkvideosrc: Fix PAL/NTSC widescreen autodetection when switching back ↵Sebastian Dröge2021-08-181-6/+22
| | | | | | | | 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>
* decklink: Don't print error for dlopen failureSeungha Yang2021-07-281-1/+1
| | | | | | This is not a fatal error on systems without decklink Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2441>
* decklinkaudiosrc: Don't assume that stream time is always validSeungha Yang2021-06-211-12/+33
| | | | | | | | | | 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>
* decklinkvideosrc: Fix crash when mode is not specifiedSeungha Yang2021-05-061-2/+4
| | | | | | | In that case, we will get "VideoInputFrameArrived" callback without "VideoInputFormatChanged" Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2218>
* decklinkvideosrc: Fix AFD/Bar VANC size checkSebastian Dröge2021-04-261-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2193>
* decklinkvideosrc: Automatically detect widescreen vs. normal NTSC/PALSebastian Dröge2021-04-262-21/+52
| | | | | | | | 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>
* plugins-sys: allow per feature registrationStéphane Cerveau2021-04-0914-40/+91
| | | | | | | | | | | | | 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>
* decklinkvideosink: Use correct numerator for 29.97fpsSebastian Dröge2021-02-261-1/+1
| | | | | | It's not 0.2997fps. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2042>
* decklinksrc: Use a more accurate capture timeEdward Hervey2021-02-261-0/+35
| | | | | | | | | 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>
* decklink: Fixed decklinkvideosink auto format detectionStaz M2021-01-291-1/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1994>
* decklinkaudiosrc: Allow disabling audio sample alignment code by setting the ↵Sebastian Dröge2021-01-141-1/+5
| | | | | | | | | 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>
* decklinkaudiosrc: Fix duration of the first audio frame after each discontSebastian Dröge2020-12-171-0/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1886>
* decklink: Implement GstBaseSrc::get_caps() to return more constrained capsSebastian Dröge2020-12-162-0/+67
| | | | | | | 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>
* decklink: correct framerate 2KDCI 23.98Jason Pereira2020-11-051-1/+1
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1771>
* decklink: Remove \n from debug outputSebastian Dröge2020-10-301-3/+3
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
* decklink: Correctly indent everythingSebastian Dröge2020-10-305-53/+78
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
* decklink: Add a default profile idSebastian Dröge2020-10-306-56/+44
| | | | | | | | | | | 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>
* decklink: Mark internal function as staticSebastian Dröge2020-10-301-2/+2
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
* decklink: Remove some dead codeSebastian Dröge2020-10-301-36/+0
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1721>
* decklink: Update enum value bounds check in gst_decklink_get_mode()Sebastian Dröge2020-10-301-1/+1
| | | | | | | | The widescreen modes moved after GST_DECKLINK_MODE_2160p60 and using them now would cause an assertion. This is a regression from 309f6187fef890c7ffa49305f38e89beac3b1423. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1737>
* decklink: Reset skip counters when starting the sourcesSebastian Dröge2020-10-252-0/+8
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378>
* decklink*src: Post a warning message on the bus about dropped framesVivia Nikolaidou2020-10-252-6/+16
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/378>
* decklink*src: Aggregate dropped frame/packet loggingGeorg Lippitsch2020-10-254-16/+44
| | | | | | | | | | | | 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>
* decklink: Update docSeungha Yang2020-10-083-0/+26
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665>
* decklink: Update Windows headers with SDK 11.2Seungha Yang2020-10-082-4950/+6906
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665>
* decklink: Update OSX headers with SDK 11.2Seungha Yang2020-10-089-75/+218
| | | | Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1665>
* decklink: Updated DeckLink SDK to 11.2 to support DeckLink 8K ProTim2020-10-0814-245/+330
| | | | | | | | | | | | | | | | 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>
* decklink: Correctly order the different dependent mode tablesSebastian Dröge2020-10-011-7/+7
| | | | | | One was forgotten in 309f6187fef890c7ffa49305f38e89beac3b1423. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1617>
* decklink: Re-order modes enum for backwards compatibility with 1.16Sebastian Dröge2020-08-063-14/+14
| | | | | | | | | | | 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>
* decklinkvideosink: write the cdp timecode data correctlyMatthew Waters2020-07-031-18/+34
| | | | | | | | | | 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>
* plugins: uddate gst_type_mark_as_plugin_api() callsMathieu Duponchelle2020-06-061-8/+8
|
* plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin typesSebastian Dröge2020-06-041-0/+9
|
* decklink: Remove spurious gtk-doc markerPhilippe Normand2020-03-151-1/+1
|
* decklink: Add support for 2K DCI video modesHeinrich Kruger2020-03-032-0/+53
| | | | | Extend the video modes supported by the decklink plugin to include 2K DCI video modes.
* decklink: Update Decklink SDK to 10.11.4Heinrich Kruger2020-03-0320-207/+1563
| | | | | | | | | | | | 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.
* decklink: Silence no driver / no SO messagesNicolas Dufresne2020-01-102-2/+5
| | | | | | 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.
* decklinkvideosink: Always configure 10 bit YUV for VANC framesSebastian Dröge2020-01-091-3/+3
| | | | | | | | | | | | | | 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.
* decklink: Fix crash when probing without driverPhilippe Normand2020-01-051-0/+4
| | | | | If there is no decklink hardware/driver, the devices list is empty (NULL), so this needs to be checked before iterating over the list.
* decklink: Return new references to the devices from get_devices()Sebastian Dröge2019-12-051-4/+4
| | | | Otherwise the caller will free the devices we store internally.
* decklink: Add simple device provider for Decklink devicesSebastian Dröge2019-12-035-9/+362
|
* documentation: fixed a heap o' typosAaron Boxer2019-11-053-8/+8
|
* Remove autotools build systemTim-Philipp Müller2019-10-141-76/+0
|
* decklink: fix timestamp tracking when pausingMatthew Waters2019-10-142-4/+10
| | | | play->pause->sleep()->play would result in late frames being scheduled
* decklinkaudiosink: Drop late buffersMatthew Waters2019-09-021-7/+28
| | | | | | | 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.
* decklink: fix macos werror buildMatthew Waters2019-08-301-1/+1
| | | | | | | | | | | | ../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__); \ ^~~~~~~~~~~
* decklinkvideosrc: Retrieve mode of the ancillary data from the frameSebastian Dröge2019-08-072-6/+15
| | | | | | | | 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
* decklinkvideosrc: Also set the INTERLACED buffer flag on non-TFF buffersSebastian Dröge2019-08-071-0/+2
|
* decklinkaudiosrc/decklinkvideosrc: Do nothing in BaseSrc::negotiate() and ↵Sebastian Dröge2019-08-062-131/+64
| | | | | | | | | | | | | 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().
* decklink: Make sure to return a value from all code pathsSebastian Dröge2019-07-251-0/+3
| | | | | | | 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
* decklinksrc: Reset timestamp observations on format changeSebastian Dröge2019-07-251-0/+21
| | | | | We will usually get timestamps starting from 0 again and due to the format change the clock of the input might also be different.