[FFmpeg-trac] #7789(avdevice:new): Fails to compile with Blackmagic Decklink SDK 11.0

FFmpeg trac at avcodec.org
Wed Mar 13 20:39:24 EET 2019


#7789: Fails to compile with Blackmagic Decklink SDK 11.0
--------------------------------------+----------------------------------
               Reporter:  llogan      |                  Owner:
                   Type:  defect      |                 Status:  new
               Priority:  normal      |              Component:  avdevice
                Version:  git-master  |               Keywords:  decklink
             Blocked By:              |               Blocking:
Reproduced by developer:  0           |  Analyzed by developer:  0
--------------------------------------+----------------------------------
 {{{
 ./configure --enable-nonfree --enable-decklink && make
 [...]
 CXX     libavdevice/decklink_common.o
 cc1plus: warning: command line option ‘-Wdeclaration-after-statement’ is
 valid for C/ObjC but not for C++
 cc1plus: warning: command line option ‘-Wmissing-prototypes’ is valid for
 C/ObjC but not for C++
 cc1plus: warning: command line option ‘-Wno-pointer-to-int-cast’ is valid
 for C/ObjC but not for C++
 cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for
 C/ObjC but not for C++
 cc1plus: warning: command line option ‘-Wno-pointer-sign’ is valid for
 C/ObjC but not for C++
 cc1plus: warning: command line option ‘-std=c11’ is valid for C/ObjC but
 not for C++
 In file included from libavdevice/decklink_common.cpp:54:
 libavdevice/decklink_common.h:90:5: error: ‘IDeckLinkAttributes’ does not
 name a type; did you mean ‘BMDDeckLinkAttributeID’?
      IDeckLinkAttributes *attr;
      ^~~~~~~~~~~~~~~~~~~
      BMDDeckLinkAttributeID
 libavdevice/decklink_common.cpp: In function ‘int
 decklink_get_attr_string(IDeckLink*, BMDDeckLinkAttributeID, const
 char**)’:
 libavdevice/decklink_common.cpp:84:5: error: ‘IDeckLinkAttributes’ was not
 declared in this scope
      IDeckLinkAttributes *attr;
      ^~~~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:84:5: note: suggested alternative:
 ‘BMDDeckLinkAttributeID’
      IDeckLinkAttributes *attr;
      ^~~~~~~~~~~~~~~~~~~
      BMDDeckLinkAttributeID
 libavdevice/decklink_common.cpp:84:26: error: ‘attr’ was not declared in
 this scope
      IDeckLinkAttributes *attr;
                           ^~~~
 libavdevice/decklink_common.cpp:84:26: note: suggested alternative: ‘atol’
      IDeckLinkAttributes *attr;
                           ^~~~
                           atol
 libavdevice/decklink_common.cpp:86:28: error: ‘IID_IDeckLinkAttributes’
 was not declared in this scope
      if (dl->QueryInterface(IID_IDeckLinkAttributes, (void **)&attr) !=
 S_OK)
                             ^~~~~~~~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:86:28: note: suggested alternative:
 ‘BMDDeckLinkAttributeID’
      if (dl->QueryInterface(IID_IDeckLinkAttributes, (void **)&attr) !=
 S_OK)
                             ^~~~~~~~~~~~~~~~~~~~~~~
                             BMDDeckLinkAttributeID
 libavdevice/decklink_common.cpp: In function ‘int
 decklink_select_input(AVFormatContext*, BMDDeckLinkConfigurationID)’:
 libavdevice/decklink_common.cpp:112:20: error: ‘struct decklink_ctx’ has
 no member named ‘attr’
          res = ctx->attr->GetInt(attr_id, &supported_connections);
                     ^~~~
 libavdevice/decklink_common.cpp: In function ‘int
 ff_decklink_set_configs(AVFormatContext*, decklink_direction_t)’:
 libavdevice/decklink_common.cpp:152:18: error: ‘struct decklink_ctx’ has
 no member named ‘attr’
          if
 (ctx->attr->GetFlag(BMDDeckLinkSupportsDuplexModeConfiguration,
 &duplex_supported) != S_OK)
                   ^~~~
 libavdevice/decklink_common.cpp:152:32: error:
 ‘BMDDeckLinkSupportsDuplexModeConfiguration’ was not declared in this
 scope
          if
 (ctx->attr->GetFlag(BMDDeckLinkSupportsDuplexModeConfiguration,
 &duplex_supported) != S_OK)
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:152:32: note: suggested alternative:
 ‘BMDDeckLinkSupportsInputFormatDetection’
          if
 (ctx->attr->GetFlag(BMDDeckLinkSupportsDuplexModeConfiguration,
 &duplex_supported) != S_OK)
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 BMDDeckLinkSupportsInputFormatDetection
 libavdevice/decklink_common.cpp:156:36: error:
 ‘bmdDeckLinkConfigDuplexMode’ was not declared in this scope
              res = ctx->cfg->SetInt(bmdDeckLinkConfigDuplexMode,
 ctx->duplex_mode == 2 ? bmdDuplexModeFull : bmdDuplexModeHalf);
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:156:36: note: suggested alternative:
 ‘bmdDeckLinkConfigCaptureGroup’
              res = ctx->cfg->SetInt(bmdDeckLinkConfigDuplexMode,
 ctx->duplex_mode == 2 ? bmdDuplexModeFull : bmdDuplexModeHalf);
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                                     bmdDeckLinkConfigCaptureGroup
 libavdevice/decklink_common.cpp:156:89: error: ‘bmdDuplexModeFull’ was not
 declared in this scope
              res = ctx->cfg->SetInt(bmdDeckLinkConfigDuplexMode,
 ctx->duplex_mode == 2 ? bmdDuplexModeFull : bmdDuplexModeHalf);
 ^~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:156:89: note: suggested alternative:
 ‘bmdDuplexFull’
              res = ctx->cfg->SetInt(bmdDeckLinkConfigDuplexMode,
 ctx->duplex_mode == 2 ? bmdDuplexModeFull : bmdDuplexModeHalf);
 libavdevice/decklink_common.cpp:156:109: error: ‘bmdDuplexModeHalf’ was
 not declared in this scope
              res = ctx->cfg->SetInt(bmdDeckLinkConfigDuplexMode,
 ctx->duplex_mode == 2 ? bmdDuplexModeFull : bmdDuplexModeHalf);
 ^~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:156:109: note: suggested alternative:
 ‘bmdDuplexHalf’
              res = ctx->cfg->SetInt(bmdDeckLinkConfigDuplexMode,
 ctx->duplex_mode == 2 ? bmdDuplexModeFull : bmdDuplexModeHalf);
 ^~~~~~~~~~~~~~~~~
 bmdDuplexHalf
 libavdevice/decklink_common.cpp: In function ‘int
 ff_decklink_set_format(AVFormatContext*, int, int, int, int, AVFieldOrder,
 decklink_direction_t, int)’:
 libavdevice/decklink_common.cpp:190:5: error: ‘BMDDisplayModeSupport’ was
 not declared in this scope
      BMDDisplayModeSupport support;
      ^~~~~~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:190:5: note: suggested alternative:
 ‘bmdDisplayModeSupports3D’
      BMDDisplayModeSupport support;
      ^~~~~~~~~~~~~~~~~~~~~
      bmdDisplayModeSupports3D
 libavdevice/decklink_common.cpp:254:45: error: ‘support’ was not declared
 in this scope
                                             &support, NULL) != S_OK)
                                              ^~~~~~~
 libavdevice/decklink_common.cpp:254:45: note: suggested alternative:
 ‘ushort’
                                             &support, NULL) != S_OK)
                                              ^~~~~~~
                                              ushort
 libavdevice/decklink_common.cpp:259:68: error: ‘support’ was not declared
 in this scope
 &support, NULL) != S_OK) {
 ^~~~~~~
 libavdevice/decklink_common.cpp:259:68: note: suggested alternative:
 ‘ushort’
 &support, NULL) != S_OK) {
 ^~~~~~~
                                                                     ushort
 libavdevice/decklink_common.cpp:270:9: error: ‘support’ was not declared
 in this scope
      if (support == bmdDisplayModeSupported)
          ^~~~~~~
 libavdevice/decklink_common.cpp:270:9: note: suggested alternative:
 ‘ushort’
      if (support == bmdDisplayModeSupported)
          ^~~~~~~
          ushort
 libavdevice/decklink_common.cpp:270:20: error: ‘bmdDisplayModeSupported’
 was not declared in this scope
      if (support == bmdDisplayModeSupported)
                     ^~~~~~~~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:270:20: note: suggested alternative:
 ‘bmdDisplayModeSupports3D’
      if (support == bmdDisplayModeSupported)
                     ^~~~~~~~~~~~~~~~~~~~~~~
                     bmdDisplayModeSupports3D
 libavdevice/decklink_common.cpp: In function ‘void
 ff_decklink_cleanup(AVFormatContext*)’:
 libavdevice/decklink_common.cpp:434:14: error: ‘struct decklink_ctx’ has
 no member named ‘attr’
      if (ctx->attr)
               ^~~~
 libavdevice/decklink_common.cpp:435:14: error: ‘struct decklink_ctx’ has
 no member named ‘attr’
          ctx->attr->Release();
               ^~~~
 libavdevice/decklink_common.cpp: In function ‘int
 ff_decklink_init_device(AVFormatContext*, const char*)’:
 libavdevice/decklink_common.cpp:476:33: error: ‘IID_IDeckLinkAttributes’
 was not declared in this scope
      if (ctx->dl->QueryInterface(IID_IDeckLinkAttributes, (void
 **)&ctx->attr) != S_OK) {
                                  ^~~~~~~~~~~~~~~~~~~~~~~
 libavdevice/decklink_common.cpp:476:33: note: suggested alternative:
 ‘BMDDeckLinkAttributeID’
      if (ctx->dl->QueryInterface(IID_IDeckLinkAttributes, (void
 **)&ctx->attr) != S_OK) {
                                  ^~~~~~~~~~~~~~~~~~~~~~~
                                  BMDDeckLinkAttributeID
 libavdevice/decklink_common.cpp:476:73: error: ‘struct decklink_ctx’ has
 no member named ‘attr’
      if (ctx->dl->QueryInterface(IID_IDeckLinkAttributes, (void
 **)&ctx->attr) != S_OK) {
 ^~~~
 make: *** [ffbuild/common.mak:63: libavdevice/decklink_common.o] Error 1
 }}}

 Reported by m4xx3d0ut. Says it works with SDK 10.11.4.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7789>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list