aboutsummaryrefslogtreecommitdiff
path: root/lib/DllSwResample.h
diff options
context:
space:
mode:
authorelupus <elupus@xbmc.org>2012-03-25 23:27:29 +0200
committerelupus <elupus@xbmc.org>2012-03-31 16:28:00 +0200
commit2836f95ad7d9425fc27c2de62b5c51e7829032f6 (patch)
tree158a931d0795a3c9d9e21294ac9f1fa63e03f17f /lib/DllSwResample.h
parent8a0ce9e337267786236cba4f68d1db93bd28c3ef (diff)
Update ffmpeg to n0.10.2 (f139838d6473c7b5152178f602cb953a824c2ff9)
xbmc ffmpeg 05f8b5549c5e20cf9a417069838edd6841d7bd40
Diffstat (limited to 'lib/DllSwResample.h')
-rw-r--r--lib/DllSwResample.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/lib/DllSwResample.h b/lib/DllSwResample.h
new file mode 100644
index 0000000000..a097387884
--- /dev/null
+++ b/lib/DllSwResample.h
@@ -0,0 +1,87 @@
+#pragma once
+/*
+ * Copyright (C) 2005-2010 Team XBMC
+ * http://www.xbmc.org
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with XBMC; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#if (defined HAVE_CONFIG_H) && (!defined WIN32)
+ #include "config.h"
+#endif
+#include "DynamicDll.h"
+
+extern "C" {
+#ifndef HAVE_MMX
+#define HAVE_MMX
+#endif
+#ifndef __STDC_CONSTANT_MACROS
+#define __STDC_CONSTANT_MACROS
+#endif
+#ifndef __GNUC__
+#pragma warning(disable:4244)
+#endif
+#if (defined USE_EXTERNAL_FFMPEG)
+ #include <libswresample/swresample.h>
+#else
+ #include "libswresample/swresample.h"
+#endif
+}
+
+
+#if (defined USE_EXTERNAL_FFMPEG)
+
+// Use direct mapping
+class DllSwResample : public DllDynamic
+{
+public:
+ virtual ~DllSwResample() {}
+
+ // DLL faking.
+ virtual bool ResolveExports() { return true; }
+ virtual bool Load() {
+ CLog::Log(LOGDEBUG, "DllAvFormat: Using libswresample system library");
+ return true;
+ }
+ virtual void Unload() {}
+};
+
+#else
+
+class DllSwResample : public DllDynamic
+{
+ DECLARE_DLL_WRAPPER(DllSwResample, DLL_PATH_LIBSWRESAMPLE)
+
+ LOAD_SYMBOLS()
+
+ BEGIN_METHOD_RESOLVE()
+ END_METHOD_RESOLVE()
+
+ /* dependencies of libavformat */
+ DllAvUtil m_dllAvUtil;
+
+public:
+
+ virtual bool Load()
+ {
+ if (!m_dllAvUtil.Load())
+ return false;
+ return DllDynamic::Load();
+ }
+};
+
+#endif