1 From 9f24c9a44aa625277e5c5f1d251cff262d0bc259 Mon Sep 17 00:00:00 2001
\r
2 From: FlyingRat <flyingrat@outlook.com>
\r
3 Date: Mon, 29 Apr 2013 10:49:06 +0200
\r
4 Subject: [PATCH] xbmc adjustments for ffmpeg master head, rev b691bc4,
\r
8 lib/DllAvCodec.h | 8 +++
\r
9 lib/DllAvFilter.h | 15 ++++--
\r
10 xbmc/cores/dvdplayer/DVDAudio.h | 5 ++
\r
11 .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +
\r
12 xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h | 5 ++
\r
13 6 files changed, 94 insertions(+), 3 deletions(-)
\r
14 create mode 100755 lib/ffmpeg/build_xbmc_win32.sh
\r
16 diff --git a/lib/DllAvCodec.h b/lib/DllAvCodec.h
\r
17 index 2b4ee22..5114a65 100644
\r
18 --- a/lib/DllAvCodec.h
\r
19 +++ b/lib/DllAvCodec.h
\r
22 #pragma warning(disable:4244)
\r
25 +#if !defined(CodecID) // @FFMPEGHEAD TODO: CodecID decrepated and autodef removed, define/rename AVCodecID globaly?
\r
26 +#define CodecID AVCodecID
\r
29 +#if !defined(AVCODEC_MAX_AUDIO_FRAME_SIZE) // @FFMPEGHEAD TODO: stick with this or check for possible other solution?
\r
30 +#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio (defintion orginated from ffmpeg)
\r
33 #if (defined USE_EXTERNAL_FFMPEG)
\r
34 #if (defined HAVE_LIBAVCODEC_AVCODEC_H)
\r
35 diff --git a/lib/DllAvFilter.h b/lib/DllAvFilter.h
\r
36 index d44b918..5082618 100644
\r
37 --- a/lib/DllAvFilter.h
\r
38 +++ b/lib/DllAvFilter.h
\r
43 +// #define av_buffersrc_add_frame(ctx,frame) av_buffersrc_add_frame_flags(ctx, frame, 0);
\r
46 #if (defined HAVE_CONFIG_H) && (!defined WIN32)
\r
50 #include "libavfilter/buffersink.h"
\r
51 #include "libavfilter/avcodec.h"
\r
54 +#include "libavfilter/buffersrc.h" // @FFMPEGHEAD temp hack
\r
58 #if LIBAVFILTER_VERSION_MICRO >= 100
\r
59 @@ -146,9 +153,9 @@ class DllAvFilter : public DllDynamic, DllAvFilterInterface
\r
60 return ::avfilter_graph_config(graphctx, log_ctx);
\r
62 #if LIBAVFILTER_VERSION_INT < AV_VERSION_INT(3,0,0)
\r
63 - virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags) { return ::av_vsrc_buffer_add_frame(buffer_filter, frame, flags); }
\r
64 + virtual int av_vsrc_buffer_add_frame(AVFilterContext *buffer_filter, AVFrame *frame, int flags) { return ::av_vsrc_buffer_add_frame_flags(buffer_filter, frame, flags); }
\r
66 - virtual int av_buffersrc_add_frame(AVFilterContext *buffer_filter, AVFrame* frame, int flags) { return ::av_buffersrc_add_frame(buffer_filter, frame, flags); }
\r
67 + virtual int av_buffersrc_add_frame(AVFilterContext *buffer_filter, AVFrame* frame, int flags) { return ::av_buffersrc_add_frame_flags(buffer_filter, frame, flags); }
\r
69 virtual void avfilter_unref_buffer(AVFilterBufferRef *ref) { ::avfilter_unref_buffer(ref); }
\r
70 virtual int avfilter_link(AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad) { return ::avfilter_link(src, srcpad, dst, dstpad); }
\r
71 diff --git a/xbmc/cores/dvdplayer/DVDAudio.h b/xbmc/cores/dvdplayer/DVDAudio.h
\r
72 index e76d443..1a1b840 100644
\r
73 --- a/xbmc/cores/dvdplayer/DVDAudio.h
\r
74 +++ b/xbmc/cores/dvdplayer/DVDAudio.h
\r
79 +#if !defined (CodecID)
\r
80 +#define CodecID AVCodecID //@FFMPEGHEAD TODO: CodecID decrepated and autodef removed, possible rename to AVCodecID globaly?
\r
83 typedef struct stDVDAudioFrame DVDAudioFrame;
\r
85 class CPTSOutputQueue
\r
86 diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
\r
87 index eb45f9a..33c9da0 100644
\r
88 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
\r
89 +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
\r
94 +#define FF_API_AVFILTERBUFFER 1 // @FFMPEGHEAD enable av_buffersrc_buffer & co. TODO: check for alt sol.
\r
97 #if (defined HAVE_CONFIG_H) && (!defined WIN32)
\r
99 diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
\r
100 index bdad65b..8db5d7b 100644
\r
101 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
\r
102 +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h
\r
107 +#if !defined (CodecID)
\r
108 +#define CodecID AVCodecID //@FFMPEGHEAD TODO: CodecID decrepated and autodef removed, possible rename to AVCodecID glob
\r
112 #pragma warning(pop)
\r
116 --- xbmc-12.2/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp~ 2013-05-03 07:57:41.000000000 +0200
\r
117 +++ xbmc-12.2/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodecFFmpeg.cpp 2013-08-29 17:52:04.730897230 +0200
\r
119 m_pCodecContext->debug_mv = 0;
\r
120 m_pCodecContext->debug = 0;
\r
121 m_pCodecContext->workaround_bugs = FF_BUG_AUTODETECT;
\r
122 - m_pCodecContext->sub_id = hints.identifier;
\r
123 +// m_pCodecContext->sub_id = hints.identifier;
\r
124 m_pCodecContext->codec_tag = hints.codec_tag;
\r
125 m_pCodecContext->time_base.num = 1;
\r
126 m_pCodecContext->time_base.den = DVD_TIME_BASE;
\r
127 --- xbmc-12.2/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp~ 2013-05-03 07:57:41.000000000 +0200
\r
128 +++ xbmc-12.2/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp 2013-08-29 17:53:46.268749616 +0200
\r
129 @@ -1043,7 +1043,7 @@
\r
131 CDemuxStreamSubtitleFFmpeg* st = new CDemuxStreamSubtitleFFmpeg(this, pStream);
\r
132 m_streams[iId] = st;
\r
133 - st->identifier = pStream->codec->sub_id;
\r
134 +// st->identifier = pStream->codec->sub_id;
\r
136 if(m_dllAvUtil.av_dict_get(pStream->metadata, "title", NULL, 0))
\r
137 st->m_description = m_dllAvUtil.av_dict_get(pStream->metadata, "title", NULL, 0)->value;
\r
138 --- xbmc-12.2/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp~ 2013-08-29 17:38:17.554580558 +0200
\r
139 +++ xbmc-12.2/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp 2013-08-29 17:58:10.471835362 +0200
\r
140 @@ -275,7 +275,7 @@
\r
143 // set acceleration
\r
144 - m_pCodecContext->dsp_mask = 0;//FF_MM_FORCE | FF_MM_MMX | FF_MM_MMXEXT | FF_MM_SSE;
\r
145 +// m_pCodecContext->dsp_mask = 0;//FF_MM_FORCE | FF_MM_MMX | FF_MM_MMXEXT | FF_MM_SSE;
\r
147 // advanced setting override for skip loop filter (see avcodec.h for valid options)
\r
148 // TODO: allow per video setting?
\r