]> git.pld-linux.org Git - packages/kodi.git/blob - ffmpeg2.patch
- upstream fix for ffmpeg 2.2
[packages/kodi.git] / ffmpeg2.patch
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
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
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
This page took 0.139195 seconds and 3 git commands to generate.