Opened 10 months ago

Closed 7 months ago

#6847 closed defect (fixed)

Could not create DeckLink iterator, Generic error in an external library

Reported by: Syl20 Owned by:
Priority: important Component: undetermined
Version: git-master Keywords: decklink regression
Cc: cus Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Hi all,

I have successfully compiled ffmpeg with Decklink SDK 10.9.5 and up to date ffmpeg repo with --enable-decklink option.

When I run :

ffmpeg -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' out.ts

I receive this error :

ffmpeg version N-89130-g218ce1f623 Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.1.0 (clang-802.0.42)
  configuration: --prefix=/usr/local --pkg-config-flags=--static --disable-shared --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libopus --enable-libxvid --enable-libfreetype --enable-decklink --extra-cflags=-I/usr/local/include/ --extra-ldflags=-L/usr/local/lib/
  libavutil      56.  0.100 / 56.  0.100
  libavcodec     58.  3.103 / 58.  3.103
  libavformat    58.  2.102 / 58.  2.102
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  2.100 /  7.  2.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
[decklink @ 0x7f9d43800000] Could not create DeckLink iterator
UltraStudio Mini Recorder: Generic error in an external library

Notes :

It was working in june 2017.
Looks like #4144

Attached :

Full output of configure and make.

Thank you for your help.

--
Sylvain

Attachments (1)

ffmpeg_compilation.log (109.0 KB) - added by Syl20 10 months ago.
full output for configure and make scripts

Download all attachments as: .zip

Change History (10)

Changed 10 months ago by Syl20

full output for configure and make scripts

comment:1 in reply to: ↑ description Changed 10 months ago by cehoyos

  • Component changed from ffmpeg to undetermined
  • Keywords decklink regression added
  • Priority changed from normal to important

Replying to Syl20:

It was working in june 2017.

Please run git bisect to find the change introducing the regression.

comment:2 follow-up: Changed 10 months ago by Syl20

I cannot even re-compile ffmpeg N-86620-g3594788b71 which was working before..

I think I have other errors somewhere :/

comment:3 Changed 10 months ago by Syl20

I ran otool -L on both bin (working and broken). Do you think those difference of library version can create those kind of bug ?

working ffmpeg:
	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1561.10.101)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1443.14.0)
	/System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
	/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/VideoDecodeAcceleration.framework/Versions/A/VideoDecodeAcceleration (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1445.12.0)
	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0)
	/System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 58286.20.16)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1125.3.4)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 822.9.0)
	/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage (compatibility version 1.0.1, current version 5.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
broken ffmpeg:
	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1504.83.101)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.91.0)
	/System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
	/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/VideoDecodeAcceleration.framework/Versions/A/VideoDecodeAcceleration (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.8.0)
	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0)
	/System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57740.60.18)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1070.22.0)
	/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 775.19.0)
	/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage (compatibility version 1.0.1, current version 5.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)

Thanks a lot for your support.

comment:4 in reply to: ↑ 2 Changed 10 months ago by cehoyos

Replying to Syl20:

I cannot even re-compile ffmpeg N-86620-g3594788b71

Please test ./configure --enable-nonfree --enable-decklink

comment:5 Changed 10 months ago by Syl20

./configure --enable-nonfree --enable-decklink --extra-cflags=-I/Users/Sylvain/Scripts/Blackmagic_SDK_10.9.3/Mac/include/ --extra-ldflags=-L/Users/Sylvain/Scripts/Blackmagic_SDK_10.9.3/Mac/include/

return this :

In file included from libavdevice/decklink_common.cpp:32:
/Users/Sylvain/Scripts/Blackmagic_SDK_10.9.3/Mac/include/DeckLinkAPIDispatch.cpp:56:6: error: no previous prototype for function 'InitDeckLinkAPI' [-Werror,-Wmissing-prototypes]
void    InitDeckLinkAPI (void)
        ^
/Users/Sylvain/Scripts/Blackmagic_SDK_10.9.3/Mac/include/DeckLinkAPIDispatch.cpp:77:7: error: no previous prototype for function 'IsDeckLinkAPIPresent' [-Werror,-Wmissing-prototypes]
bool            IsDeckLinkAPIPresent (void)
                ^
/Users/Sylvain/Scripts/Blackmagic_SDK_10.9.3/Mac/include/DeckLinkAPIDispatch.cpp:157:6: error: no previous prototype for function 'InitBMDStreamingAPI' [-Werror,-Wmissing-prototypes]
void InitBMDStreamingAPI(void)
     ^
3 errors generated.
make: *** [libavdevice/decklink_common.o] Error 1

I've read somwhere that I should put static at the beginning of line 56, 77 and 157. It was working before but now I cannot reproduce the compilation. Maybe it's not a good way to resolve this.

Thanks.

comment:6 Changed 8 months ago by cus

  • Cc cus added
  • Resolution set to fixed
  • Status changed from new to closed

I think the compilation with clang is fixed in latest git master. Your initially reported error usually happens if you are compiling against a newer SDK but using an older driver. Reopen this if you can still reproduce any of the problems.

comment:7 Changed 8 months ago by Syl20

  • Resolution fixed deleted
  • Status changed from closed to reopened

With actual git master I still have this error ('Could not create iterator') after compilation.

I don't understand what do you mean by "compiling against a newer SDK but using an older driver"

Thanks.

comment:8 Changed 8 months ago by cus

This error usually means that your decklink drivers are too old. If the SDK which was used to build ffmpeg was newer than the drivers you currently have on your system, then it won't work.

So please update your DeckLink? drivers, and report back.

comment:9 Changed 7 months ago by Syl20

  • Resolution set to fixed
  • Status changed from reopened to closed

Ooooh, I didn't know that decklink drivers needs to be update also.. It works now.

Thank you so much !

Note: See TracTickets for help on using tickets.