/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim:set ts=2 sw=2 sts=2 et cindent: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef AppleVDALinker_h #define AppleVDALinker_h extern "C" { #pragma GCC visibility push(default) #include "VideoDecodeAcceleration/VDADecoder.h" #pragma GCC visibility pop } #include "nscore.h" namespace mozilla { class AppleVDALinker { public: static bool Link(); static void Unlink(); static CFStringRef skPropWidth; static CFStringRef skPropHeight; static CFStringRef skPropSourceFormat; static CFStringRef skPropAVCCData; private: static void* sLink; static nsrefcnt sRefCount; static enum LinkStatus { LinkStatus_INIT = 0, LinkStatus_FAILED, LinkStatus_SUCCEEDED } sLinkStatus; static CFStringRef GetIOConst(const char* symbol); }; #define LINK_FUNC(func) extern typeof(func)* func; #include "AppleVDAFunctions.h" #undef LINK_FUNC } // namespace mozilla #endif // AppleVDALinker_h