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

Reply via email to