void-packages/srcpkgs/xbmc/patches/010_all_ffmpeg-0.10.2-update.patch

728 lines
27 KiB
Diff

commit 2836f95ad7d9425fc27c2de62b5c51e7829032f6
Author: elupus <elupus@xbmc.org>
Date: Sun Mar 25 23:27:29 2012 +0200
Update ffmpeg to n0.10.2 (f139838d6473c7b5152178f602cb953a824c2ff9)
xbmc ffmpeg 05f8b5549c5e20cf9a417069838edd6841d7bd40
diff --git a/lib/DllAvCodec.h b/lib/DllAvCodec.h
index 463ab48..0802236 100644
--- a/lib/DllAvCodec.h
+++ b/lib/DllAvCodec.h
@@ -24,7 +24,7 @@
#include "config.h"
#endif
#include "DynamicDll.h"
-#include "DllAvCore.h"
+#include "DllAvUtil.h"
#include "utils/log.h"
extern "C" {
@@ -339,7 +339,7 @@ class DllAvCodec : public DllDynamic, DllAvCodecInterface
END_METHOD_RESOLVE()
/* dependencies of libavcodec */
- DllAvCore m_dllAvCore;
+ DllAvUtil m_dllAvUtil;
// DllAvUtil loaded implicitely by m_dllAvCore
public:
@@ -361,7 +361,7 @@ public:
}
virtual bool Load()
{
- if (!m_dllAvCore.Load())
+ if (!m_dllAvUtil.Load())
return false;
return DllDynamic::Load();
}
diff --git a/lib/DllAvCore.h b/lib/DllAvCore.h
deleted file mode 100644
index 92a7ab7..0000000
--- a/lib/DllAvCore.h
+++ /dev/null
@@ -1,182 +0,0 @@
-#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, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- */
-
-#if (defined HAVE_CONFIG_H) && (!defined WIN32)
- #include "config.h"
-#endif
-#include "DynamicDll.h"
-#include "DllAvUtil.h"
-#include "utils/log.h"
-
-extern "C" {
-#ifdef USE_EXTERNAL_FFMPEG
- #ifdef HAVE_LIBAVUTIL_SAMPLEFMT_H
- // libavcore was merged to libavutil on 2010-02-15
- #include <libavutil/audioconvert.h>
- #include <libavutil/samplefmt.h>
- #endif
-
- #ifdef HAVE_LIBAVCORE_AVCORE_H
- #include <libavcore/avcore.h>
- #endif
- #ifdef HAVE_LIBAVCORE_SAMPLEFMT_H
- #include <libavcore/samplefmt.h>
- #endif
-
- /* Needed for old FFmpeg versions as used below */
- #ifdef HAVE_LIBAVCODEC_AVCODEC_H
- #include <libavcodec/avcodec.h>
- #else
- #include <ffmpeg/avcodec.h>
- #endif
-#else
- #include "libavcore/avcore.h"
- #include "libavcore/samplefmt.h"
-#endif
-}
-
-/* Compatibility for old external FFmpeg versions. */
-
-#ifdef USE_EXTERNAL_FFMPEG
-
-#ifndef LIBAVCORE_VERSION_INT
-// API added on: 2010-07-21, removed on 2010-02-15
-#define LIBAVCORE_VERSION_INT 0
-#endif
-
-#ifndef AV_SAMPLE_FMT_NONE
-// API added on: 2010-11-02
-#define AVSampleFormat SampleFormat
-#define AV_SAMPLE_FMT_NONE SAMPLE_FMT_NONE
-#define AV_SAMPLE_FMT_U8 SAMPLE_FMT_U8
-#define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16
-#define AV_SAMPLE_FMT_S32 SAMPLE_FMT_S32
-#define AV_SAMPLE_FMT_FLT SAMPLE_FMT_FLT
-#define AV_SAMPLE_FMT_DBL SAMPLE_FMT_DBL
-#endif
-
-#ifndef AV_CH_FRONT_LEFT
-// API added on: 2010-11-21
-#define AV_CH_FRONT_LEFT CH_FRONT_LEFT
-#define AV_CH_FRONT_RIGHT CH_FRONT_RIGHT
-#define AV_CH_FRONT_CENTER CH_FRONT_CENTER
-#define AV_CH_LOW_FREQUENCY CH_LOW_FREQUENCY
-#define AV_CH_BACK_LEFT CH_BACK_LEFT
-#define AV_CH_BACK_RIGHT CH_BACK_RIGHT
-#define AV_CH_FRONT_LEFT_OF_CENTER CH_FRONT_LEFT_OF_CENTER
-#define AV_CH_FRONT_RIGHT_OF_CENTER CH_FRONT_RIGHT_OF_CENTER
-#define AV_CH_BACK_CENTER CH_BACK_CENTER
-#define AV_CH_SIDE_LEFT CH_SIDE_LEFT
-#define AV_CH_SIDE_RIGHT CH_SIDE_RIGHT
-#define AV_CH_TOP_CENTER CH_TOP_CENTER
-#define AV_CH_TOP_FRONT_LEFT CH_TOP_FRONT_LEFT
-#define AV_CH_TOP_FRONT_CENTER CH_TOP_FRONT_CENTER
-#define AV_CH_TOP_FRONT_RIGHT CH_TOP_FRONT_RIGHT
-#define AV_CH_TOP_BACK_LEFT CH_TOP_BACK_LEFT
-#define AV_CH_TOP_BACK_CENTER CH_TOP_BACK_CENTER
-#define AV_CH_TOP_BACK_RIGHT CH_TOP_BACK_RIGHT
-#define AV_CH_STEREO_LEFT CH_STEREO_LEFT
-#define AV_CH_STEREO_RIGHT CH_STEREO_RIGHT
-
-#define AV_CH_LAYOUT_NATIVE CH_LAYOUT_NATIVE
-
-#define AV_CH_LAYOUT_MONO CH_LAYOUT_MONO
-#define AV_CH_LAYOUT_STEREO CH_LAYOUT_STEREO
-#define AV_CH_LAYOUT_2_1 CH_LAYOUT_2_1
-#define AV_CH_LAYOUT_SURROUND CH_LAYOUT_SURROUND
-#define AV_CH_LAYOUT_4POINT0 CH_LAYOUT_4POINT0
-#define AV_CH_LAYOUT_2_2 CH_LAYOUT_2_2
-#define AV_CH_LAYOUT_QUAD CH_LAYOUT_QUAD
-#define AV_CH_LAYOUT_5POINT0 CH_LAYOUT_5POINT0
-#define AV_CH_LAYOUT_5POINT1 CH_LAYOUT_5POINT1
-#define AV_CH_LAYOUT_5POINT0_BACK CH_LAYOUT_5POINT0_BACK
-#define AV_CH_LAYOUT_5POINT1_BACK CH_LAYOUT_5POINT1_BACK
-#define AV_CH_LAYOUT_7POINT0 CH_LAYOUT_7POINT0
-#define AV_CH_LAYOUT_7POINT1 CH_LAYOUT_7POINT1
-#define AV_CH_LAYOUT_7POINT1_WIDE CH_LAYOUT_7POINT1_WIDE
-#define AV_CH_LAYOUT_STEREO_DOWNMIX CH_LAYOUT_STEREO_DOWNMIX
-#endif
-
-#endif // USE_EXTERNAL_FFMPEG
-
-class DllAvCoreInterface
-{
-public:
- virtual ~DllAvCoreInterface() {}
- virtual int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt) = 0;
-};
-
-#if (defined USE_EXTERNAL_FFMPEG)
-
-// Use direct layer
-class DllAvCore : public DllDynamic, DllAvCoreInterface
-{
-public:
- virtual ~DllAvCore() {}
-#if LIBAVCORE_VERSION_INT >= AV_VERSION_INT(0,12,0) || LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(50,38,0)
- // API added on: 2010-11-02, moved to libavutil on 2010-02-15
- virtual int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt) { return ::av_get_bits_per_sample_fmt(sample_fmt); }
-#else
- // from avcodec.h
- virtual int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt) { return ::av_get_bits_per_sample_format(sample_fmt); }
-#endif
-
- // DLL faking.
- virtual bool ResolveExports() { return true; }
- virtual bool Load() {
-#if LIBAVCORE_VERSION_INT > 0
- CLog::Log(LOGDEBUG, "DllAvCore: Using libavcore system library");
-#endif
- return true;
- }
- virtual void Unload() {}
-};
-
-#else
-
-class DllAvCore : public DllDynamic, DllAvCoreInterface
-{
- DECLARE_DLL_WRAPPER(DllAvCore, DLL_PATH_LIBAVCORE)
-
- LOAD_SYMBOLS()
-
- DEFINE_METHOD1(int, av_get_bits_per_sample_fmt, (enum AVSampleFormat p1))
-
- BEGIN_METHOD_RESOLVE()
- RESOLVE_METHOD(av_get_bits_per_sample_fmt)
- END_METHOD_RESOLVE()
-
- /* dependency of libavcore */
- DllAvUtil m_dllAvUtil;
-
-public:
- virtual bool Load()
- {
- if (!m_dllAvUtil.Load())
- return false;
- return DllDynamic::Load();
- }
-};
-
-#endif
-
diff --git a/lib/DllAvFilter.h b/lib/DllAvFilter.h
index 302e35c..1e308ac 100644
--- a/lib/DllAvFilter.h
+++ b/lib/DllAvFilter.h
@@ -24,8 +24,8 @@
#include "config.h"
#endif
#include "DynamicDll.h"
-#include "DllAvCore.h"
#include "DllAvCodec.h"
+#include "DllSwResample.h"
#include "utils/log.h"
extern "C" {
@@ -61,6 +61,7 @@ extern "C" {
#endif
#else
#include "libavfilter/avfiltergraph.h"
+#define HAVE_AVFILTERBUFFERREFVIDEOPROPS_SAMPLE_ASPECT_RATIO
#endif
}
@@ -264,6 +265,7 @@ class DllAvFilter : public DllDynamic, DllAvFilterInterface
/* dependencies of libavfilter */
DllAvUtil m_dllAvUtil;
+ DllSwResample m_dllSwResample;
public:
int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name)
@@ -333,6 +335,8 @@ public:
{
if (!m_dllAvUtil.Load())
return false;
+ if (!m_dllSwResample.Load())
+ return false;
return DllDynamic::Load();
}
};
diff --git a/lib/DllAvFormat.h b/lib/DllAvFormat.h
index 46a7481..0563486 100644
--- a/lib/DllAvFormat.h
+++ b/lib/DllAvFormat.h
@@ -278,7 +278,7 @@ class DllAvFormat : public DllDynamic, DllAvFormatInterface
RESOLVE_METHOD(av_read_frame)
RESOLVE_METHOD(av_read_play)
RESOLVE_METHOD(av_read_pause)
- RESOLVE_METHOD_RENAME(ff_read_frame_flush, av_read_frame_flush)
+ RESOLVE_METHOD(av_read_frame_flush)
RESOLVE_METHOD(av_seek_frame)
RESOLVE_METHOD_RENAME(av_find_stream_info, av_find_stream_info_dont_call)
RESOLVE_METHOD(av_open_input_file)
@@ -319,7 +319,6 @@ class DllAvFormat : public DllDynamic, DllAvFormatInterface
/* dependencies of libavformat */
DllAvCodec m_dllAvCodec;
- // DllAvCore loaded implicitely by m_dllAvCodec
// DllAvUtil loaded implicitely by m_dllAvCodec
public:
diff --git a/lib/DllAvUtil.h b/lib/DllAvUtil.h
index e882cac..f907834 100644
--- a/lib/DllAvUtil.h
+++ b/lib/DllAvUtil.h
@@ -65,6 +65,7 @@ extern "C" {
#include "libavutil/opt.h"
#include "libavutil/mem.h"
#include "libavutil/fifo.h"
+ #include "libavutil/samplefmt.h"
#endif
}
@@ -97,6 +98,7 @@ public:
virtual int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int)) = 0;
virtual int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int)) = 0;
virtual char *av_strdup(const char *s)=0;
+ virtual int av_get_bits_per_sample_fmt(enum AVSampleFormat p1) = 0;
};
#if (defined USE_EXTERNAL_FFMPEG)
@@ -132,6 +134,8 @@ public:
virtual int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int))
{ return ::av_fifo_generic_write(f, src, size, func); }
virtual char *av_strdup(const char *s) { return ::av_strdup(s); }
+ virtual int av_get_bits_per_sample_fmt(enum AVSampleFormat p1)
+ { return ::av_get_bits_per_sample_fmt(p1); }
// DLL faking.
virtual bool ResolveExports() { return true; }
@@ -168,6 +172,7 @@ class DllAvUtilBase : public DllDynamic, DllAvUtilInterface
DEFINE_METHOD4(int, av_fifo_generic_read, (AVFifoBuffer *p1, void *p2, int p3, void (*p4)(void*, void*, int)))
DEFINE_METHOD4(int, av_fifo_generic_write, (AVFifoBuffer *p1, void *p2, int p3, int (*p4)(void*, void*, int)))
DEFINE_METHOD1(char*, av_strdup, (const char *p1))
+ DEFINE_METHOD1(int, av_get_bits_per_sample_fmt, (enum AVSampleFormat p1))
public:
BEGIN_METHOD_RESOLVE()
@@ -189,6 +194,7 @@ class DllAvUtilBase : public DllDynamic, DllAvUtilInterface
RESOLVE_METHOD(av_fifo_generic_read)
RESOLVE_METHOD(av_fifo_generic_write)
RESOLVE_METHOD(av_strdup)
+ RESOLVE_METHOD(av_get_bits_per_sample_fmt)
END_METHOD_RESOLVE()
};
diff --git a/lib/DllSwResample.h b/lib/DllSwResample.h
new file mode 100644
index 0000000..a097387
--- /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
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 3550582..6b3da12 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -17,6 +17,14 @@ SYSDIR=@abs_top_srcdir@/system/players/dvdplayer
WRAPPER=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper.o
WRAPPER_MACH_ALIAS=@abs_top_srcdir@/xbmc/cores/DllLoader/exports/wrapper_mach_alias
+AVFORMAT_SO=avformat-53-$(ARCH).so
+AVCODEC_SO=avcodec-53-$(ARCH).so
+AVUTIL_SO=avutil-51-$(ARCH).so
+AVFILTER_SO=avfilter-2-$(ARCH).so
+SWSCALE_SO=swscale-2-$(ARCH).so
+POSTPROC_SO=postproc-52-$(ARCH).so
+SWRESAMPLE_SO=swresample-0-$(ARCH).so
+
DIRS=
ifneq (@USE_EXTERNAL_FFMPEG@,1)
DIRS+=ffmpeg
@@ -24,13 +32,13 @@ endif
LIBS=
ifneq (@USE_EXTERNAL_FFMPEG@,1)
- LIBS+=avutil-50-$(ARCH).so \
- avcodec-52-$(ARCH).so \
- avcore-0-$(ARCH).so \
- avformat-52-$(ARCH).so \
- postproc-51-$(ARCH).so \
- avfilter-1-$(ARCH).so \
- swscale-0-$(ARCH).so
+ LIBS+=$(AVUTIL_SO) \
+ $(AVCODEC_SO) \
+ $(AVFORMAT_SO) \
+ $(POSTPROC_SO) \
+ $(AVFILTER_SO) \
+ $(SWSCALE_SO) \
+ $(SWRESAMPLE_SO)
endif
ifneq (,$(findstring powerpc,$(ARCH)))
@@ -54,90 +62,90 @@ ifeq ($(ARCH), powerpc-osx)
BUNDLE1_O = -lbundle1.o
endif
-$(SYSDIR)/avutil-50-$(ARCH).so: $(WRAPPER) ffmpeg/libavutil/libavutil.dylib
+$(SYSDIR)/$(AVUTIL_SO): $(WRAPPER) ffmpeg/libavutil/libavutil.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libavutil/*.o \
ffmpeg/libavutil/$(ARCH_DIR)/*.o $(BUNDLE1_O)
-$(SYSDIR)/avcodec-52-$(ARCH).so: $(WRAPPER) ffmpeg/libavcodec/libavcodec.dylib
+$(SYSDIR)/$(AVCODEC_SO): $(WRAPPER) ffmpeg/libavcodec/libavcodec.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libavcodec/*.o \
ffmpeg/libavcodec/$(ARCH_DIR)/*.o $(BUNDLE1_O)
-$(SYSDIR)/avcore-0-$(ARCH).so: $(WRAPPER) ffmpeg/libavcore/libavcore.dylib
- $(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
- $(WRAPPER) ffmpeg/libavcore/*.o $(BUNDLE1_O)
-
-$(SYSDIR)/avformat-52-$(ARCH).so: $(WRAPPER) ffmpeg/libavformat/libavformat.dylib
+$(SYSDIR)/$(AVFORMAT_SO): $(WRAPPER) ffmpeg/libavformat/libavformat.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libavformat/*.o $(BUNDLE1_O)
ifeq ($(findstring x86,$(ARCH_DIR)), x86)
-$(SYSDIR)/avfilter-1-$(ARCH).so: $(WRAPPER) ffmpeg/libavfilter/libavfilter.dylib
+$(SYSDIR)/$(AVFILTER_SO): $(WRAPPER) ffmpeg/libavfilter/libavfilter.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libavfilter/$(ARCH_DIR)/*.o \
ffmpeg/libavfilter/*.o $(BUNDLE1_O)
else # No libavfilter/ppc or libavfilter/arm
-$(SYSDIR)/avfilter-1-$(ARCH).so: $(WRAPPER) ffmpeg/libavfilter/libavfilter.dylib
+$(SYSDIR)/$(AVFILTER_SO): $(WRAPPER) ffmpeg/libavfilter/libavfilter.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libavfilter/*.o $(BUNDLE1_O)
endif
ifneq ($(findstring arm,$(ARCH)), arm)
-$(SYSDIR)/swscale-0-$(ARCH).so: $(WRAPPER) ffmpeg/libswscale/libswscale.dylib
+$(SYSDIR)/$(SWSCALE_SO): $(WRAPPER) ffmpeg/libswscale/libswscale.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libswscale/*.o \
ffmpeg/libswscale/$(ARCH_DIR)/*.o $(BUNDLE1_O)
else # No ARM version of swscale available yet.
-$(SYSDIR)/swscale-0-$(ARCH).so: $(WRAPPER) ffmpeg/libswscale/libswscale.dylib
+$(SYSDIR)/$(SWSCALE_SO): $(WRAPPER) ffmpeg/libswscale/libswscale.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libswscale/*.o
endif
-$(SYSDIR)/postproc-51-$(ARCH).so: $(WRAPPER) ffmpeg/libpostproc/libpostproc.dylib
+$(SYSDIR)/$(POSTPROC_SO): $(WRAPPER) ffmpeg/libpostproc/libpostproc.dylib
$(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
$(WRAPPER) ffmpeg/libpostproc/*.o $(BUNDLE1_O)
+$(SYSDIR)/$(SWRESAMPLE_SO): $(WRAPPER) ffmpeg/libswresample/libswresample.dylib
+ $(LD) $(LDFLAGS) -alias_list $(WRAPPER_MACH_ALIAS) -o $@ \
+ $(WRAPPER) ffmpeg/libswresample/*.o $(BUNDLE1_O)
+
ffmpeg/libavutil/libavutil.dylib : ffmpeg;
ffmpeg/libavcodec/libavcodec.dylib : ffmpeg;
-ffmpeg/libavcore/libavcore.dylib : ffmpeg;
ffmpeg/libavformat/libavformat.dylib : ffmpeg;
ffmpeg/libavformat/libavfilter.dylib : ffmpeg;
ffmpeg/libswscale/libswscale.dylib : ffmpeg;
ffmpeg/libpostproc/libpostproc.dylib : ffmpeg;
+ffmpeg/libswresample/libswresample.dylib : ffmpeg;
ffmpeg:
$(MAKE) -C $@
else
-$(SYSDIR)/avutil-50-$(ARCH).so: ffmpeg/libavutil/libavutil.so
+$(SYSDIR)/$(AVUTIL_SO): ffmpeg/libavutil/libavutil.so
cp ffmpeg/libavutil/libavutil.so $@
-$(SYSDIR)/avcodec-52-$(ARCH).so: $(WRAPPER) ffmpeg/libavcodec/libavcodec.so
+$(SYSDIR)/$(AVCODEC_SO): $(WRAPPER) ffmpeg/libavcodec/libavcodec.so
cp ffmpeg/libavcodec/libavcodec.so $@
-$(SYSDIR)/avcore-0-$(ARCH).so: $(WRAPPER) ffmpeg/libavcore/libavcore.so
- cp ffmpeg/libavcore/libavcore.so $@
-
-$(SYSDIR)/avformat-52-$(ARCH).so: $(WRAPPER) ffmpeg/libavformat/libavformat.so
+$(SYSDIR)/$(AVFORMAT_SO): $(WRAPPER) ffmpeg/libavformat/libavformat.so
cp ffmpeg/libavformat/libavformat.so $@
-$(SYSDIR)/avfilter-1-$(ARCH).so: $(WRAPPER) ffmpeg/libavfilter/libavfilter.so
+$(SYSDIR)/$(AVFILTER_SO): $(WRAPPER) ffmpeg/libavfilter/libavfilter.so
cp ffmpeg/libavfilter/libavfilter.so $@
-$(SYSDIR)/swscale-0-$(ARCH).so: $(WRAPPER) ffmpeg/libswscale/libswscale.so
+$(SYSDIR)/$(SWSCALE_SO): $(WRAPPER) ffmpeg/libswscale/libswscale.so
cp ffmpeg/libswscale/libswscale.so $@
-$(SYSDIR)/postproc-51-$(ARCH).so: $(WRAPPER) ffmpeg/libpostproc/libpostproc.so
+$(SYSDIR)/$(POSTPROC_SO): $(WRAPPER) ffmpeg/libpostproc/libpostproc.so
cp ffmpeg/libpostproc/libpostproc.so $@
+$(SYSDIR)/$(SWRESAMPLE_SO): $(WRAPPER) ffmpeg/libswresample/libswresample.so
+ cp ffmpeg/libswresample/libswresample.so $@
+
ffmpeg/libavutil/libavutil.so : ffmpeg;
ffmpeg/libavcodec/libavcodec.so : ffmpeg;
-ffmpeg/libavcore/libavcore.so : ffmpeg;
ffmpeg/libavformat/libavformat.so : ffmpeg;
ffmpeg/libavfilter/libavfilter.so : ffmpeg;
ffmpeg/libswscale/libswscale.so : ffmpeg;
ffmpeg/libpostproc/libpostproc.so : ffmpeg;
+ffmpeg/libswresample/libswresample.so : ffmpeg;
ffmpeg:
$(MAKE) -C $@
diff --git a/project/Win32BuildSetup/buildmingwlibs.sh b/project/Win32BuildSetup/buildmingwlibs.sh
index 14ffb10..6fdb9a5 100644
--- a/project/Win32BuildSetup/buildmingwlibs.sh
+++ b/project/Win32BuildSetup/buildmingwlibs.sh
@@ -64,7 +64,7 @@ echo "##### building ffmpeg dlls #####"
cd /xbmc/lib/ffmpeg/
sh ./build_xbmc_win32.sh $MAKECLEAN
setfilepath /xbmc/system/players/dvdplayer
-checkfiles avcodec-52.dll avcore-0.dll avformat-52.dll avutil-50.dll postproc-51.dll swscale-0.dll avfilter-1.dll
+checkfiles avcodec-53.dll avformat-53.dll avutil-51.dll postproc-52.dll swscale-2.dll avfilter-2.dll swresample-0.dll
echo "##### building of ffmpeg dlls done #####"
echo "##### building libdvd dlls #####"
diff --git a/xbmc/DllPaths_generated.h.in b/xbmc/DllPaths_generated.h.in
index a84dd52..10a7d87 100644
--- a/xbmc/DllPaths_generated.h.in
+++ b/xbmc/DllPaths_generated.h.in
@@ -74,13 +74,13 @@
#define DLL_PATH_LIBMAD "@MAD_SONAME@"
/* ffmpeg */
-#define DLL_PATH_LIBAVCODEC "special://xbmcbin/system/players/dvdplayer/avcodec-52-@ARCH@.so"
-#define DLL_PATH_LIBAVCORE "special://xbmcbin/system/players/dvdplayer/avcore-0-@ARCH@.so"
-#define DLL_PATH_LIBAVFORMAT "special://xbmcbin/system/players/dvdplayer/avformat-52-@ARCH@.so"
-#define DLL_PATH_LIBAVUTIL "special://xbmcbin/system/players/dvdplayer/avutil-50-@ARCH@.so"
-#define DLL_PATH_LIBPOSTPROC "special://xbmcbin/system/players/dvdplayer/postproc-51-@ARCH@.so"
-#define DLL_PATH_LIBSWSCALE "special://xbmcbin/system/players/dvdplayer/swscale-0-@ARCH@.so"
-#define DLL_PATH_LIBAVFILTER "special://xbmcbin/system/players/dvdplayer/avfilter-1-@ARCH@.so"
+#define DLL_PATH_LIBAVCODEC "special://xbmcbin/system/players/dvdplayer/avcodec-53-@ARCH@.so"
+#define DLL_PATH_LIBAVFORMAT "special://xbmcbin/system/players/dvdplayer/avformat-53-@ARCH@.so"
+#define DLL_PATH_LIBAVUTIL "special://xbmcbin/system/players/dvdplayer/avutil-51-@ARCH@.so"
+#define DLL_PATH_LIBPOSTPROC "special://xbmcbin/system/players/dvdplayer/postproc-52-@ARCH@.so"
+#define DLL_PATH_LIBSWSCALE "special://xbmcbin/system/players/dvdplayer/swscale-2-@ARCH@.so"
+#define DLL_PATH_LIBAVFILTER "special://xbmcbin/system/players/dvdplayer/avfilter-2-@ARCH@.so"
+#define DLL_PATH_LIBSWRESAMPLE "special://xbmcbin/system/players/dvdplayer/swresample-0-@ARCH@.so"
/* cdrip */
#if defined(_LINUX) && !defined(__APPLE__)
diff --git a/xbmc/DllPaths_win32.h b/xbmc/DllPaths_win32.h
index d39e2ea..fbd75a4 100644
--- a/xbmc/DllPaths_win32.h
+++ b/xbmc/DllPaths_win32.h
@@ -58,13 +58,13 @@
#define DLL_PATH_LIBRTMP "special://xbmcbin/system/players/dvdplayer/librtmp.dll"
/* ffmpeg */
-#define DLL_PATH_LIBAVCODEC "special://xbmcbin/system/players/dvdplayer/avcodec-52.dll"
-#define DLL_PATH_LIBAVCORE "special://xbmcbin/system/players/dvdplayer/avcore-0.dll"
-#define DLL_PATH_LIBAVFORMAT "special://xbmcbin/system/players/dvdplayer/avformat-52.dll"
-#define DLL_PATH_LIBAVUTIL "special://xbmcbin/system/players/dvdplayer/avutil-50.dll"
-#define DLL_PATH_LIBAVFILTER "special://xbmcbin/system/players/dvdplayer/avfilter-1.dll"
-#define DLL_PATH_LIBPOSTPROC "special://xbmcbin/system/players/dvdplayer/postproc-51.dll"
-#define DLL_PATH_LIBSWSCALE "special://xbmcbin/system/players/dvdplayer/swscale-0.dll"
+#define DLL_PATH_LIBAVCODEC "special://xbmcbin/system/players/dvdplayer/avcodec-53.dll"
+#define DLL_PATH_LIBAVFORMAT "special://xbmcbin/system/players/dvdplayer/avformat-53.dll"
+#define DLL_PATH_LIBAVUTIL "special://xbmcbin/system/players/dvdplayer/avutil-51.dll"
+#define DLL_PATH_LIBAVFILTER "special://xbmcbin/system/players/dvdplayer/avfilter-2.dll"
+#define DLL_PATH_LIBPOSTPROC "special://xbmcbin/system/players/dvdplayer/postproc-52.dll"
+#define DLL_PATH_LIBSWSCALE "special://xbmcbin/system/players/dvdplayer/swscale-2.dll"
+#define DLL_PATH_LIBSWRESAMPLE "special://xbmcbin/system/players/dvdplayer/swresample-0.dll"
/* cdrip */
#define DLL_PATH_LAME_ENC "special://xbmcbin/system/cdrip/lame_enc.dll"
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
index cebba1c..6037781 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.cpp
@@ -59,7 +59,7 @@ bool CDVDAudioCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
AVCodec* pCodec;
m_bOpenedCodec = false;
- if (!m_dllAvCore.Load() || !m_dllAvUtil.Load() || !m_dllAvCodec.Load())
+ if (!m_dllAvUtil.Load() || !m_dllAvCodec.Load())
return false;
m_dllAvCodec.avcodec_register_all();
@@ -186,7 +186,7 @@ int CDVDAudioCodecFFmpeg::Decode(BYTE* pData, int iSize)
const void *ibuf[6] = { m_pBuffer1 };
void *obuf[6] = { m_pBuffer2 };
- int istr[6] = { m_dllAvCore.av_get_bits_per_sample_fmt(m_pCodecContext->sample_fmt)/8 };
+ int istr[6] = { m_dllAvUtil.av_get_bits_per_sample_fmt(m_pCodecContext->sample_fmt)/8 };
int ostr[6] = { 2 };
int len = m_iBufferSize1 / istr[0];
if(m_dllAvCodec.av_audio_convert(m_pConvert, obuf, ostr, ibuf, istr, len) < 0)
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.h
index dbd4948..0446213 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecFFmpeg.h
@@ -23,7 +23,6 @@
#include "DVDAudioCodec.h"
#include "DllAvCodec.h"
-#include "DllAvCore.h"
#include "DllAvFormat.h"
#include "DllAvUtil.h"
@@ -64,7 +63,6 @@ protected:
int64_t m_layout;
DllAvCodec m_dllAvCodec;
- DllAvCore m_dllAvCore;
DllAvUtil m_dllAvUtil;
void BuildChannelMap();
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp
index 77d4b64..6f30e11 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.cpp
@@ -55,7 +55,7 @@ CDVDAudioEncoderFFmpeg::~CDVDAudioEncoderFFmpeg()
bool CDVDAudioEncoderFFmpeg::Initialize(unsigned int channels, enum PCMChannels *channelMap, unsigned int bitsPerSample, unsigned int sampleRate)
{
Reset();
- if (!channelMap || !m_dllAvUtil.Load() || !m_dllAvCore.Load() || !m_dllAvCodec.Load())
+ if (!channelMap || !m_dllAvUtil.Load() || !m_dllAvCodec.Load())
return false;
m_dllAvCodec.avcodec_register_all();
@@ -149,7 +149,7 @@ bool CDVDAudioEncoderFFmpeg::Initialize(unsigned int channels, enum PCMChannels
if (m_AudioConvert)
m_TmpBuffer2 = new uint8_t[m_NeededFrames * m_CodecCtx->channels *
- m_dllAvCore.av_get_bits_per_sample_fmt(m_CodecCtx->sample_fmt) / 8];
+ m_dllAvUtil.av_get_bits_per_sample_fmt(m_CodecCtx->sample_fmt) / 8];
return true;
}
@@ -186,7 +186,7 @@ int CDVDAudioEncoderFFmpeg::Encode(uint8_t *data, int size)
void *convInBuf[] = { m_TmpBuffer };
int convInStr[] = { m_BitsPerSample / 8 };
void *convOutBuf[] = { m_TmpBuffer2 };
- int convOutStr[] = { m_dllAvCore.av_get_bits_per_sample_fmt(m_CodecCtx->sample_fmt) / 8 };
+ int convOutStr[] = { m_dllAvUtil.av_get_bits_per_sample_fmt(m_CodecCtx->sample_fmt) / 8 };
if (m_dllAvCodec.av_audio_convert(m_AudioConvert, convOutBuf, convOutStr,
convInBuf, convInStr, m_NeededFrames * m_CodecCtx->channels) < 0) {
CLog::Log(LOGERROR, "CDVDAudioEncoderFFmpeg: Audio conversion failed");
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.h
index 93bd2c7..40be42b 100644
--- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.h
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/Encoders/DVDAudioEncoderFFmpeg.h
@@ -43,7 +43,6 @@ public:
virtual int GetData(uint8_t **data);
private:
DllAvCodec m_dllAvCodec;
- DllAvCore m_dllAvCore;
DllAvUtil m_dllAvUtil;
AVCodecContext *m_CodecCtx;