]>
Commit | Line | Data |
---|---|---|
bfa116d7 JR |
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 | |
5 | 2013-04-29\r | |
6 | \r | |
7 | ---\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 | |
15 | \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 | |
20 | @@ -41,6 +41,14 @@\r | |
21 | #ifndef __GNUC__\r | |
22 | #pragma warning(disable:4244)\r | |
23 | #endif\r | |
24 | + \r | |
25 | +#if !defined(CodecID) // @FFMPEGHEAD TODO: CodecID decrepated and autodef removed, define/rename AVCodecID globaly?\r | |
26 | +#define CodecID AVCodecID\r | |
27 | +#endif\r | |
28 | +\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 | |
31 | +#endif\r | |
32 | \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 | |
39 | @@ -20,6 +20,9 @@\r | |
40 | *\r | |
41 | */\r | |
42 | \r | |
43 | +// #define av_buffersrc_add_frame(ctx,frame) av_buffersrc_add_frame_flags(ctx, frame, 0);\r | |
44 | +\r | |
45 | +\r | |
46 | #if (defined HAVE_CONFIG_H) && (!defined WIN32)\r | |
47 | #include "config.h"\r | |
48 | #endif\r | |
49 | @@ -56,6 +59,9 @@\r | |
50 | #include "libavfilter/buffersink.h"\r | |
51 | #include "libavfilter/avcodec.h"\r | |
52 | #endif\r | |
53 | +\r | |
54 | +#include "libavfilter/buffersrc.h" // @FFMPEGHEAD temp hack\r | |
55 | + \r | |
56 | }\r | |
57 | \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 | |
61 | }\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 | |
65 | #else\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 | |
68 | #endif\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 | |
75 | @@ -42,6 +43,10 @@\r | |
76 | #endif\r | |
77 | }\r | |
78 | #endif\r | |
79 | +#if !defined (CodecID)\r | |
80 | +#define CodecID AVCodecID //@FFMPEGHEAD TODO: CodecID decrepated and autodef removed, possible rename to AVCodecID globaly?\r | |
81 | +#endif\r | |
82 | +\r | |
83 | typedef struct stDVDAudioFrame DVDAudioFrame;\r | |
84 | \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 | |
90 | @@ -18,6 +18,8 @@\r | |
91 | *\r | |
92 | */\r | |
93 | \r | |
94 | +#define FF_API_AVFILTERBUFFER 1 // @FFMPEGHEAD enable av_buffersrc_buffer & co. TODO: check for alt sol.\r | |
95 | +\r | |
96 | #include "system.h"\r | |
97 | #if (defined HAVE_CONFIG_H) && (!defined WIN32)\r | |
98 | #include "config.h"\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 | |
103 | @@ -51,6 +52,10 @@\r | |
104 | }\r | |
105 | #endif\r | |
106 | \r | |
107 | +#if !defined (CodecID)\r | |
108 | +#define CodecID AVCodecID //@FFMPEGHEAD TODO: CodecID decrepated and autodef removed, possible rename to AVCodecID glob\r | |
109 | +#endif\r | |
110 | +\r | |
111 | #ifndef __GNUC__\r | |
112 | #pragma warning(pop)\r | |
113 | #endif\r | |
114 | -- \r | |
115 | 1.8.1.6\r | |
792647b2 JR |
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 | |
118 | @@ -60,7 +60,7 @@\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 | |
130 | {\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 | |
135 | \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 | |
4cf0b7a8 JR |
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 | |
141 | }\r | |
142 | \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 | |
146 | \r | |
147 | // advanced setting override for skip loop filter (see avcodec.h for valid options)\r | |
148 | // TODO: allow per video setting?\r |