[FFmpeg-devel] [PATCH 2/2] lavd: add decklink output device

Ramiro Polla ramiro.polla at gmail.com
Sat Feb 8 21:05:43 CET 2014


2014-01-13 21:08 GMT-02:00 Reimar Döffinger <Reimar.Doeffinger at gmx.de>:
> On 13.01.2014, at 04:22, Ramiro Polla <ramiro.polla at gmail.com> wrote:
>> On Sat, Dec 28, 2013 at 6:31 PM, Reimar Döffinger
>> <Reimar.Doeffinger at gmx.de> wrote:
>>> On Sat, Dec 28, 2013 at 05:06:16PM -0200, Ramiro Polla wrote:
>>>> Hi Reimar,
>>>>
>>>> On Sat, Dec 28, 2013 at 1:23 PM, Reimar Döffinger
>>>> <Reimar.Doeffinger at gmx.de> wrote:
>>>>> On 26.12.2013, at 02:44, Ramiro Polla <ramiro.polla at gmail.com> wrote:
>>>>>> Attached patch adds decklink output support to lavd. Works under Linux
>>>>>> and Windows.
>>>>>
>>>>> Maybe a bit crazy, but how about splitting the C++ part out even more?
>>>>> So that we can use designated initializers like for all other demuxers.
>>>>> Otherwise it will break as soon as we add a new field in the middle, and in addition unless you add FATE testing that works without the hardware/library "nobody" will even notice.
>>>>
>>>> I thought about so too. On Windows it is possible to use COBJMACROS
>>>> and write the code in C. But for Linux only a C++ interface is
>>>> provided. What do you think about putting just the AVOption, AVClass
>>>> and AVOutputFormat in a C file?
>>>
>>> Yes, either that or basically do a C++-to-C wrapper for the library.
>>> I guess both will look quite similar.
>>> As said, not sure if it's really worth it, but it _sounds_ better so
>>> far.
>>
>> In ff_decklink_muxer, there's a sizeof(struct decklink_ctx), which
>> contains a class* inside it. So that has to be c++ unless we make some
>> hacks using void* or somesuch. Ideas?
>
> Void * should work fine.
> You can also use an opaque struct decklink_stuff that is only fully declared in the C++ part and contains all the classes.
> Means an additional allocation and deallocation for that sub-part though.

It turns out the decklink headers are only half smart when dealing
with C code (some are extern'd, some are not). New attached patch
splits into C and C++ files with extra decklink context struct.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavd-add-decklink-output-device.patch
Type: text/x-patch
Size: 30165 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140208/297a420d/attachment.bin>


More information about the ffmpeg-devel mailing list