[FFmpeg-devel] [PATCH] avdevice/decklink: fix mingw portability

Deti Fliegl deti at fliegl.de
Mon Jun 27 07:44:52 CEST 2016


patch accepted, please apply.

On 27.06.16 01:15, Marton Balint wrote:
> Signed-off-by: Marton Balint <cus at passwd.hu>
> ---
>  libavdevice/decklink_common.cpp | 7 +++++--
>  libavdevice/decklink_common.h   | 4 ++--
>  2 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/libavdevice/decklink_common.cpp b/libavdevice/decklink_common.cpp
> index 3625673..bd5ab91 100644
> --- a/libavdevice/decklink_common.cpp
> +++ b/libavdevice/decklink_common.cpp
> @@ -70,6 +70,7 @@ static char *dup_wchar_to_utf8(wchar_t *w)
>  #define DECKLINK_STR    OLECHAR *
>  #define DECKLINK_STRDUP dup_wchar_to_utf8
>  #define DECKLINK_FREE(s) SysFreeString(s)
> +#define DECKLINK_BOOL BOOL
>  #elif defined(__APPLE__)
>  static char *dup_cfstring_to_utf8(CFStringRef w)
>  {
> @@ -80,11 +81,13 @@ static char *dup_cfstring_to_utf8(CFStringRef w)
>  #define DECKLINK_STR    const __CFString *
>  #define DECKLINK_STRDUP dup_cfstring_to_utf8
>  #define DECKLINK_FREE(s) free((void *) s)
> +#define DECKLINK_BOOL bool
>  #else
>  #define DECKLINK_STR    const char *
>  #define DECKLINK_STRDUP av_strdup
>  /* free() is needed for a string returned by the DeckLink SDL. */
>  #define DECKLINK_FREE(s) free((void *) s)
> +#define DECKLINK_BOOL bool
>  #endif
>
>  HRESULT ff_decklink_get_display_name(IDeckLink *This, const char **displayName)
> @@ -103,7 +106,7 @@ static int decklink_select_input(AVFormatContext *avctx, BMDDeckLinkConfiguratio
>      struct decklink_cctx *cctx = (struct decklink_cctx *) avctx->priv_data;
>      struct decklink_ctx *ctx = (struct decklink_ctx *)cctx->ctx;
>      BMDDeckLinkAttributeID attr_id = (cfg_id == bmdDeckLinkConfigAudioInputConnection) ? BMDDeckLinkAudioInputConnections : BMDDeckLinkVideoInputConnections;
> -    int64_t bmd_input              = (cfg_id == bmdDeckLinkConfigAudioInputConnection) ? ctx->audio_input : ctx->video_input;
> +    int64_t bmd_input              = (cfg_id == bmdDeckLinkConfigAudioInputConnection) ? (int64_t)ctx->audio_input : (int64_t)ctx->video_input;
>      const char *type_name          = (cfg_id == bmdDeckLinkConfigAudioInputConnection) ? "audio" : "video";
>      int64_t supported_connections = 0;
>      HRESULT res;
> @@ -141,7 +144,7 @@ int ff_decklink_set_format(AVFormatContext *avctx,
>      HRESULT res;
>
>      if (ctx->duplex_mode) {
> -        bool duplex_supported = false;
> +        DECKLINK_BOOL duplex_supported = false;
>
>          if (ctx->attr->GetFlag(BMDDeckLinkSupportsDuplexModeConfiguration, &duplex_supported) != S_OK)
>              duplex_supported = false;
> diff --git a/libavdevice/decklink_common.h b/libavdevice/decklink_common.h
> index a4ac303..d2d0ab2 100644
> --- a/libavdevice/decklink_common.h
> +++ b/libavdevice/decklink_common.h
> @@ -107,7 +107,7 @@ typedef uint32_t buffercount_type;
>  #endif
>
>  static const BMDAudioConnection decklink_audio_connection_map[] = {
> -    0,
> +    (BMDAudioConnection)0,
>      bmdAudioConnectionEmbedded,
>      bmdAudioConnectionAESEBU,
>      bmdAudioConnectionAnalog,
> @@ -117,7 +117,7 @@ static const BMDAudioConnection decklink_audio_connection_map[] = {
>  };
>
>  static const BMDVideoConnection decklink_video_connection_map[] = {
> -    0,
> +    (BMDVideoConnection)0,
>      bmdVideoConnectionSDI,
>      bmdVideoConnectionHDMI,
>      bmdVideoConnectionOpticalSDI,
>



More information about the ffmpeg-devel mailing list