Hi Maven, > On Dec 24, 2014, at 11:33 AM, 马 伟 <v...@maweis.com> wrote: > > Hello Carl Eugen > > > I am trying to compile ffmpeg enable decklink, But I meet some problem. > > > > > Peters-MBP-5:ffmpeg-2.3.5 peter$ ./configure --prefix=/usr/local/ffmpeg-2.3.5 > --enable-libx264 --enable-gpl --enable-libfaac --enable-libmp3lame > --enable-nonfree --enable-decklink --extra-cflags="-I/usr/local/include" > --extra-ldflags="-L/usr/local/lib" > > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr > --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr > --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr > --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr > --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 > Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr > --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1 > > install prefix /usr/local/ffmpeg-2.3.5 > > > > > Peters-MBP-5:ffmpeg-2.3.5 peter$ sudo make > Password: > CXX libavdevice/decklink_enc.o > error: invalid argument '-std=c99' not allowed with 'C++/ObjC++' > make: *** [libavdevice/decklink_enc.o] Error 1 > Peters-MBP-5:ffmpeg-2.3.5 peter$ make V=1 > g++ -D__STDC_CONSTANT_MACROS -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 > -D_LARGEFILE_SOURCE -DPIC -DHAVE_AV_CONFIG_H -I/usr/local/include -std=c99 > -mdynamic-no-pic -fomit-frame-pointer -fPIC -pthread -D_GNU_SOURCE=1 > -D_THREAD_SAFE -I/usr/local/include/SDL -g -Wdeclaration-after-statement > -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls > -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes > -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses > -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno > -fno-signed-zeros -Qunused-arguments -Werror=implicit-function-declaration > -Werror=missing-prototypes -Werror=return-type -c -o > libavdevice/decklink_enc.o libavdevice/decklink_enc.cpp > error: invalid argument '-std=c99' not allowed with 'C++/ObjC++' > make: *** [libavdevice/decklink_enc.o] Error 1 > > ———————————————————— > Here I follow yours in the last thread, replace the std=99 and execute it. > > ———————————————————— > > Peters-MBP-5:ffmpeg-2.3.5 peter$ g++ -D__STDC_CONSTANT_MACROS -I. -I./ > -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC > -DHAVE_AV_CONFIG_H -I/usr/local/include -mdynamic-no-pic > -fomit-frame-pointer -fPIC -pthread -D_GNU_SOURCE=1 -D_THREAD_SAFE > -I/usr/local/include/SDL -g -Wdeclaration-after-statement -Wall > -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings > -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast > -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch > -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno > -fno-signed-zeros -Qunused-arguments -Werror=implicit-function-declaration > -Werror=missing-prototypes -Werror=return-type -c -o > libavdevice/decklink_enc.o libavdevice/decklink_enc.cpp > In file included from libavdevice/decklink_enc.cpp:27: > /usr/local/include/DeckLinkAPIDispatch.cpp:56:6: error: no previous prototype > for function 'InitDeckLinkAPI' > [-Werror,-Wmissing-prototypes] > void InitDeckLinkAPI (void) > ^ > /usr/local/include/DeckLinkAPIDispatch.cpp:77:7: error: no previous prototype > for function 'IsDeckLinkAPIPresent' > [-Werror,-Wmissing-prototypes] > bool IsDeckLinkAPIPresent (void) > ^ > /usr/local/include/DeckLinkAPIDispatch.cpp:157:6: error: no previous > prototype for function 'InitBMDStreamingAPI' > [-Werror,-Wmissing-prototypes] > void InitBMDStreamingAPI(void) > ^ > libavdevice/decklink_enc.cpp:176:39: error: cannot initialize a parameter of > type 'CFStringRef *' > (aka 'const __CFString **') with an rvalue of type 'const char **' > HRESULT hr = This->GetDisplayName(&tmpDisplayName); > ^~~~~~~~~~~~~~~ > /usr/local/include/DeckLinkAPIDiscovery.h:57:60: note: passing argument to > parameter 'displayName' here > virtual HRESULT GetDisplayName (/* out */ CFStringRef *displayName) = 0; > ^ > libavdevice/decklink_enc.cpp:266:5: warning: 'sem_init' is deprecated > [-Wdeprecated-declarations] > sem_init(&ctx->semaphore, 0, ctx->frames_buffer); > ^ > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:55:5: > note: > 'sem_init' has been explicitly marked deprecated here > int sem_init(sem_t *, int, unsigned int) __deprecated; > ^ > libavdevice/decklink_enc.cpp:339:5: warning: 'sem_destroy' is deprecated > [-Wdeprecated-declarations] > sem_destroy(&ctx->semaphore); > ^ > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/semaphore.h:53:5: > note: > 'sem_destroy' has been explicitly marked deprecated here > int sem_destroy(sem_t *) __deprecated; > ^ > libavdevice/decklink_enc.cpp:392:40: warning: struct 'IDeckLinkVideoFrame' > was previously declared as a class > [-Wmismatched-tags] > hr = ctx->dlo->ScheduleVideoFrame((struct IDeckLinkVideoFrame *) frame, > ^ > /usr/local/include/DeckLinkAPI.h:562:7: note: previous use is here > class IDeckLinkVideoFrame : public IUnknown > ^ > libavdevice/decklink_enc.cpp:392:40: note: did you mean class here? > hr = ctx->dlo->ScheduleVideoFrame((struct IDeckLinkVideoFrame *) frame, > ^~~~~~ > class > 3 warnings and 4 errors generated. > Peters-MBP-5:ffmpeg-2.3.5 peter$ > > > > ———————————————————— > > I just copy the decklink sdks include directory into the /usr/local/include > directory. > > > Would u like give me some suggest, Thanks a Lot.
Not a suggestion but I’d add my output to these notes. I’m using a git-snapshot from today. On a Mac running OS 10.10 I have the decklink sdk installed at /usr/local/lib as you do and configure with: ./configure --enable-gpl --enable-decklink --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib” During make I get this response: make CC libavdevice/alldevices.o CC libavdevice/avdevice.o CC libavdevice/avfoundation.o CXX libavdevice/decklink_common.o error: invalid argument '-std=c99' not allowed with 'C++/ObjC++' make: *** [libavdevice/decklink_common.o] Error 1 When running `make V=1` as Carl suggests, I get: g++ -D__STDC_CONSTANT_MACROS -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DZLIB_CONST -DHAVE_AV_CONFIG_H -I/usr/local/include -std=c99 -mdynamic-no-pic -fomit-frame-pointer -fPIC -pthread -D_GNU_SOURCE=1 -D_THREAD_SAFE -I/usr/local/include/SDL -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -Qunused-arguments -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -c -o libavdevice/decklink_common.o libavdevice/decklink_common.cpp error: invalid argument '-std=c99' not allowed with 'C++/ObjC++' make: *** [libavdevice/decklink_common.o] Error 1 So I then remove the -sdt=c99 and run: g++ -D__STDC_CONSTANT_MACROS -I. -I./ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DZLIB_CONST -DHAVE_AV_CONFIG_H -I/usr/local/include -mdynamic-no-pic -fomit-frame-pointer -fPIC -pthread -D_GNU_SOURCE=1 -D_THREAD_SAFE -I/usr/local/include/SDL -g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -O3 -fno-math-errno -fno-signed-zeros -Qunused-arguments -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -c -o libavdevice/decklink_common.o libavdevice/decklink_common.cpp which gives: In file included from libavdevice/decklink_common.cpp:26: /usr/local/include/DeckLinkAPIDispatch.cpp:56:6: error: no previous prototype for function 'InitDeckLinkAPI' [-Werror,-Wmissing-prototypes] void InitDeckLinkAPI (void) ^ /usr/local/include/DeckLinkAPIDispatch.cpp:77:7: error: no previous prototype for function 'IsDeckLinkAPIPresent' [-Werror,-Wmissing-prototypes] bool IsDeckLinkAPIPresent (void) ^ /usr/local/include/DeckLinkAPIDispatch.cpp:157:6: error: no previous prototype for function 'InitBMDStreamingAPI' [-Werror,-Wmissing-prototypes] void InitBMDStreamingAPI(void) ^ libavdevice/decklink_common.cpp:83:39: error: cannot initialize a parameter of type 'CFStringRef *' (aka 'const __CFString **') with an rvalue of type 'const char **' HRESULT hr = This->GetDisplayName(&tmpDisplayName); ^~~~~~~~~~~~~~~ /usr/local/include/DeckLinkAPIDiscovery.h:57:60: note: passing argument to parameter 'displayName' here virtual HRESULT GetDisplayName (/* out */ CFStringRef *displayName) = 0; ^ 4 errors generated. From here running either `make` or `make V=1` provides the same results as above. I am using decklink sdk version 10.1.4. Dave Rice _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-user