[FFmpeg-devel] [PATCHv2 1/2] avdevice/decklink_dec: add support for decoding teletext from 10bit ancillary data

Reimar Döffinger Reimar.Doeffinger at gmx.de
Thu Jul 20 00:55:10 EEST 2017

On 19.07.2017, at 18:48, Marton Balint <cus at passwd.hu> wrote:

> On Wed, 19 Jul 2017, John Warburton wrote:
>> On Tue, Jul 18, 2017 at 6:10 PM, Marton Balint <cus at passwd.hu> wrote:
>>> On Sat, 8 Jul 2017, Marton Balint wrote:
>>>> This also add supports for 4K DeckLink cards because they always output the
>>>> ancillary data in 10-bit.
>>>> v2:
>>>> - only try teletext decoding for 576i PAL mode
>>>> - some comments as requested by Aaron Levinson
>>>> Signed-off-by: Marton Balint <cus at passwd.hu>
>>> Applied the series, thanks for all the comments.
>> Since this patch was applied, the mingw-w64 compiler, gcc version
>> 6.4.1, fails to link shared library avdevice-57.dll, giving the
>> following error. It is as if the const uint8_t ff_reverse[256] that is
>> found in libavutil/reverse.c somehow isn't being discovered by the
>> linker. I'm afraid my knowledge beyond this point is zero.
>> libavdevice/decklink_dec.o:decklink_dec.cpp:(.rdata$.refptr.ff_reverse[.refptr.ff_reverse]+0x0):
>> undefined reference to `ff_reverse'
>> collect2: error: ld returned 1 exit status
>> ffbuild/library.mak:101: recipe for target 'libavdevice/avdevice-57.dll' failed
>> make: *** [libavdevice/avdevice-57.dll] Error 1
>> Build failure. Please see error messages above.
> Hmmm. Does adding ff_reverse to the exported symbols in libavutil/libavutil.v fix the problem? Or maybe simply renaming every instance of ff_reverse in the codebase to avpriv_reverse?

Variables/arrays cannot be reliably exported from dynamic libraries and doing so should be avoided.
Even on Linux that leads to "fun" things like copy relocations you really don't want.

More information about the ffmpeg-devel mailing list