Opened 6 years ago

Closed 6 years 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: Marton Balint 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 6 years ago.
full output for configure and make scripts

Download all attachments as: .zip

Change History (10)

by Syl20, 6 years ago

Attachment: ffmpeg_compilation.log added

full output for configure and make scripts

in reply to:  description comment:1 by Carl Eugen Hoyos, 6 years ago

Component: ffmpegundetermined
Keywords: decklink regression added
Priority: normalimportant

Replying to Syl20:

It was working in june 2017.

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

comment:2 by Syl20, 6 years ago

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

I think I have other errors somewhere :/

comment:3 by Syl20, 6 years ago

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.

in reply to:  2 comment:4 by Carl Eugen Hoyos, 6 years ago

Replying to Syl20:

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

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

comment:5 by Syl20, 6 years ago

./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 by Marton Balint, 6 years ago

Cc: Marton Balint added
Resolution: fixed
Status: newclosed

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 by Syl20, 6 years ago

Resolution: fixed
Status: closedreopened

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 by Marton Balint, 6 years ago

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 by Syl20, 6 years ago

Resolution: fixed
Status: reopenedclosed

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.