Overview

Request 2853 (accepted)

Update to version 2.6.13

Submit package home:enzokiel:...hes:Multimedia / avidemux3 to package Multimedia / avidemux3

avidemux3.changes Changed
x
 
1
@@ -1,4 +1,31 @@
2
 -------------------------------------------------------------------
3
+Sat Aug 20 11:14:21 UTC 2016 - joerg.lorenzen@ki.tng.de
4
+
5
+- Update to version 2.6.13
6
+  + [OsX] Toolchain updated
7
+  + [Win64] Toolchain updated
8
+  + [Linux] AppImage (universal linux64 binaries)
9
+  + [Core] Update to libav* 3.0.2
10
+  + [Edit] Improved copy mode for h264/h265 video
11
+  + [Audio] AAC/ADTS import/export
12
+  + [Filter] new video filter : ivtcDupeRemover to remove duplicate
13
+    after 3:2 pulldown
14
+  + [Qt] Revamped refresh screen
15
+  + [Filters] ASS/SSA fixes
16
+  + [Filters] Improved logo filter with alpha channel
17
+  + [Win32] Development files included in installer
18
+  + [Filter] ShaderLoader, load your openGL shaders as filters
19
+  + [Linux] Compatibility with newer gcc
20
+  + [Filter] Partial filter available only for one in/one out video
21
+    filters
22
+  + [UI] Add go fwd/go backward 60 sec buttons
23
+  + [i18n] Translations updated
24
+- Removed avidemux-find-lrelease-qt5.patch, fixed upstream
25
+- Fixed all patches
26
+- Disabled ix86 for SLES 11 because build currently fails
27
+  (perhaps compiler too old?)
28
+
29
+-------------------------------------------------------------------
30
 Tue Mar 08 16:09:34 UTC 2016 - joerg.lorenzen@ki.tng.de
31
 
32
 - Update to version 2.6.12
33
avidemux3.spec Changed
291
 
1
@@ -1,7 +1,7 @@
2
 #
3
 # spec file for package avidemux3
4
 #
5
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
6
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
7
 #
8
 # All modifications and additions to the file contributed by third parties
9
 # remain the property of their copyright owners, unless otherwise agreed
10
@@ -23,33 +23,22 @@
11
 %define         qtversion 4
12
 %endif
13
 
14
-%define         ffmpeg_version 2.8.6
15
-
16
 Name:           avidemux3
17
 Summary:        Graphical video editing and transcoding tool
18
-Version:        2.6.12
19
+Version:        2.6.13
20
 Release:        1
21
 Url:            http://avidemux.sourceforge.net/
22
 Source0:        avidemux_%{version}.tar.gz
23
 Source1:        avidemux3-qt.desktop
24
-Source2:        ffmpeg-%{ffmpeg_version}.tar.bz2
25
-Source3:        config.mak.diff
26
-Source4:        libavcodec_put_bits.h.patch
27
-Source5:        xvba_support_from_xbmc_xvba.patch
28
-Source6:        libavcodec_x86_fmtconvert_init.c.patch
29
-Source7:        libavcodec_mpegvideo_enc.c.patch
30
-Source8:        libavcodec_mpeg12enc.c.patch
31
-Source9:        libavcodec_avcodec.h.patch
32
-Source10:       libavcodec_nvenc.patch
33
+Source2:        config.mak.diff
34
 Patch0:         avidemux-cmake-2.8.8.patch
35
 Patch1:         avidemux-linking.patch
36
 Patch2:         avidemux-x264_plugins.patch
37
 Patch3:         avidemux-x265_plugins.patch
38
 Patch4:         avidemux-package_version.patch
39
 Patch5:         avidemux-bootStrap.patch
40
-Patch6:         avidemux-cpu_armel.patch
41
-Patch7:         avidemux-cmake-permissions.patch
42
-Patch8:         avidemux-find-lrelease-qt5.patch
43
+Patch6:         avidemux-cmake-permissions.patch
44
+Patch7:         avidemux-cpu_armel.patch
45
 License:        GPL-2.0
46
 Group:          Productivity/Multimedia/Video/Editors and Convertors
47
 
48
@@ -147,10 +136,15 @@
49
 %endif
50
 %endif
51
 
52
-# Main package requires at least one frontend (cli, gtk or qt4)
53
+# Main package requires at least one frontend (cli or qt4)
54
 Requires:       avidemux3-frontend = %{version}-%{release}
55
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
56
 
57
+# ix86 build for SLES 11 currently fails
58
+%if 0%{?sles_version}
59
+ExclusiveArch:  x86_64
60
+%endif
61
+
62
 %description
63
 Avidemux is a free video editor designed for simple cutting, filtering and
64
 encoding tasks. It supports many file types, including AVI, DVD compatible
65
@@ -187,7 +181,6 @@
66
 Group:          Productivity/Multimedia/Video/Editors and Convertors
67
 Provides:       avidemux3-frontend = %{version}-%{release}
68
 Requires:       avidemux3 = %{version}-%{release}
69
-Requires:       avidemux3-help = %{version}-%{release}
70
 Recommends:     avidemux3-qt%{qtversion}-lang = %{version}-%{release}
71
 
72
 %description qt%{qtversion}
73
@@ -222,24 +215,6 @@
74
 
75
 This package provides translations for package avidemux3-qt%{qtversion}.
76
 
77
-%package help
78
-Summary:        Help files for avidemux
79
-Group:          Productivity/Multimedia/Video/Editors and Convertors
80
-BuildArch:      noarch
81
-
82
-%description help
83
-Avidemux is a free video editor designed for simple cutting, filtering and
84
-encoding tasks. It supports many file types, including AVI, DVD compatible
85
-MPEG files, MP4 and ASF, using a variety of codecs. Tasks can be automated
86
-using projects, job queue and powerful scripting capabilities.
87
-
88
-Avidemux is available for Linux, BSD, Mac OS X and Microsoft Windows under
89
-the GNU GPL license. The program was written from scratch by Mean, but code
90
-from other people and projects has been used as well. Patches, translations
91
-and even bug reports are always welcome.
92
-
93
-This package contains the help files for avidemux.
94
-
95
 %endif
96
 
97
 %prep
98
@@ -250,36 +225,9 @@
99
 echo 'from Config import *' >> %{_sourcedir}/avidemux3-rpmlintrc
100
 echo 'addFilter("libdir-macro-in-noarch-package")' >> %{_sourcedir}/avidemux3-rpmlintrc
101
 %endif
102
-find ./ -name '*.bash' -exec dos2unix -q {} \;
103
-find ./ -name '*.cmake' -exec dos2unix -q {} \;
104
-find ./ -name '*.cpp' -exec dos2unix -q {} \;
105
-find ./ -name '*.sh' -exec dos2unix -q {} \;
106
-find ./ -name '*.sql' -exec dos2unix -q {} \;
107
-find ./ -name '*.txt' -exec dos2unix -q {} \;
108
-find . -type f -exec sed -i -e 's|intfloat_readwrite.h|intfloat.h|g' {} \;
109
-sed -i -e 's|set(FFMPEG_VERSION "2.7.6")|set(FFMPEG_VERSION "%{ffmpeg_version}")|g' cmake/admFFmpegBuild.cmake
110
-rm -f avidemux_core/ffmpeg_package/ffmpeg-2.7.6.tar.bz2
111
-cp %{S:2} avidemux_core/ffmpeg_package/
112
-pushd avidemux_core/ffmpeg_package/patches
113
-rm -f config.mak.diff
114
-rm -f libavcodec_put_bits.h.patch
115
-rm -f libavcodec_x86_fmtconvert_init.c.patch
116
-rm -f libavcodec_mpegvideo_enc.c.patch
117
-rm -f libavcodec_mpeg12enc.c.patch
118
-rm -f libavcodec_avcodec.h.patch
119
-rm -f libavcodec_nvenc.patch
120
-cp %{S:3} .
121
-cp %{S:4} .
122
-cp %{S:6} .
123
-cp %{S:7} .
124
-cp %{S:8} .
125
-cp %{S:9} .
126
-cp %{S:10} .
127
-pushd xvba
128
-rm -f xvba_support_from_xbmc_xvba.patch
129
-cp %{S:5} .
130
-popd
131
-popd
132
+for i in bash cmake cpp sh sql txt; do
133
+  find . -name \*.$i -print0 | xargs -0 dos2unix -q
134
+done
135
 %patch0 -p0
136
 %patch1 -p0
137
 %patch2 -p0
138
@@ -287,10 +235,8 @@
139
 %patch4 -p0
140
 %patch5 -p0
141
 %patch6 -p0
142
-%patch7 -p1
143
-%if %{with build_qt5}
144
-%patch8 -p0
145
-%endif
146
+%patch7 -p0
147
+cp -f %{S:2} avidemux_core/ffmpeg_package/patches/
148
 chmod 755 bootStrap.bash
149
 chmod 644 AUTHORS COPYING README
150
 
151
@@ -301,15 +247,14 @@
152
 export CXXFLAGS="%optflags -D__STDC_CONSTANT_MACROS -fno-strict-aliasing"
153
 %endif
154
 
155
-
156
 options+="--with-cli "
157
 %if 0%{?sles_version}
158
 options+="--without-qt4 "
159
 %else
160
 %if %{with build_qt5}
161
-options+="--with-qt4 --enable-qt5 "
162
-%else
163
 options+="--with-qt4 "
164
+%else
165
+options+="--with-qt4 --enable-qt4 "
166
 %endif
167
 %endif
168
 ./bootStrap.bash $options
169
@@ -343,9 +288,13 @@
170
 %postun cli -p /sbin/ldconfig
171
 
172
 %if ! 0%{?sles_version}
173
-%post qt%{qtversion} -p /sbin/ldconfig
174
+%post qt%{qtversion}
175
+/sbin/ldconfig
176
+%desktop_database_post
177
 
178
-%postun qt%{qtversion} -p /sbin/ldconfig
179
+%postun qt%{qtversion}
180
+/sbin/ldconfig
181
+%desktop_database_postun
182
 %endif
183
 
184
 %files
185
@@ -456,7 +405,6 @@
186
 %{_libdir}/ADM_plugins6/pluginSettings/x264/3/veryFast.json
187
 %{_libdir}/ADM_plugins6/pluginSettings/x264/3/fast.json
188
 %{_libdir}/ADM_plugins6/pluginSettings/x264/3/iPhone.json
189
-%{_libdir}/ADM_plugins6/scriptEngines/libADM_script_spiderMonkey.so
190
 %{_libdir}/ADM_plugins6/scriptEngines/libADM_script_tinyPy.so
191
 %{_libdir}/ADM_plugins6/videoDecoders/libADM_vd_vpx.so
192
 %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffDv.so
193
@@ -469,14 +417,11 @@
194
 %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_png.so
195
 %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_xvid4.so
196
 %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_yv12.so
197
-%{_libdir}/ADM_plugins6/videoFilters/libADM_hf_hflip.so
198
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_addBorders.so
199
-%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_avsfilter.so
200
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_black.so
201
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_blackenBorders.so
202
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_changeFps.so
203
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_colorYuv.so
204
-%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_decimate.so
205
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_denoise3d.so
206
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_denoise3dhq.so
207
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_DgBob.so
208
@@ -485,11 +430,12 @@
209
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_fadeToBlack.so
210
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_FluxSmooth.so
211
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_gauss.so
212
+%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_hflip.so
213
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_hzstackField.so
214
+%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_ivtcDupeRemover.so
215
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_kernelDeint.so
216
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_largeMedian.so
217
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_lavDeint.so
218
-%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_logo.so
219
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_lumaOnly.so
220
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_mean.so
221
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_median.so
222
@@ -510,13 +456,6 @@
223
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_vdpauFilterDeint.so
224
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_vflip.so
225
 %{_libdir}/ADM_plugins6/videoFilters/libADM_vf_yadif.so
226
-%dir %{_datadir}/ADM6_addons
227
-%dir %{_datadir}/ADM6_addons/avsfilter
228
-%{_datadir}/ADM6_addons/avsfilter/avsload.exe
229
-%{_datadir}/ADM6_addons/avsfilter/pipe_source.dll
230
-%if ! 0%{?sles_version}
231
-%{_datadir}/pixmaps/avidemux3.png
232
-%endif
233
 %{_mandir}/man1/avidemux.1.gz
234
 %doc AUTHORS COPYING README
235
 
236
@@ -533,6 +472,7 @@
237
 %{_libdir}/ADM_plugins6/videoFilters/cli/libADM_vf_CropCli.so
238
 %{_libdir}/ADM_plugins6/videoFilters/cli/libADM_vf_eq2Cli.so
239
 %{_libdir}/ADM_plugins6/videoFilters/cli/libADM_vf_HueCli.so
240
+%{_libdir}/ADM_plugins6/videoFilters/cli/libADM_vf_logoCli.so
241
 %{_libdir}/ADM_plugins6/videoFilters/cli/libADM_vf_mpdelogoCli.so
242
 %{_libdir}/ADM_plugins6/videoFilters/cli/libADM_vf_swscaleResize_cli.so
243
 
244
@@ -544,10 +484,14 @@
245
 %{_libdir}/libADM_openGLQT%{qtversion}6.so
246
 %{_libdir}/libADM_render6_QT%{qtversion}.so
247
 %{_libdir}/libADM_UIQT%{qtversion}6.so
248
-%dir %{_libdir}/ADM_plugins6/scriptEngines/qt%{qtversion}
249
+%dir %{_libdir}/ADM_plugins6/shaderDemo
250
+%dir %{_libdir}/ADM_plugins6/shaderDemo/1
251
 %dir %{_libdir}/ADM_plugins6/videoEncoders/qt%{qtversion}
252
 %dir %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}
253
-%{_libdir}/ADM_plugins6/scriptEngines/qt%{qtversion}/libadm_script_QT%{qtversion}.so
254
+%{_libdir}/ADM_plugins6/shaderDemo/1/bump.shader
255
+%{_libdir}/ADM_plugins6/shaderDemo/1/lightning.shader
256
+%{_libdir}/ADM_plugins6/shaderDemo/1/ripple.shader
257
+%{_libdir}/ADM_plugins6/shaderDemo/1/zigzag.shader
258
 %{_libdir}/ADM_plugins6/videoEncoders/qt%{qtversion}/libADM_ve_x264_QT%{qtversion}.so
259
 %{_libdir}/ADM_plugins6/videoEncoders/qt%{qtversion}/libADM_ve_x265_QT%{qtversion}.so
260
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_asharpQT%{qtversion}.so
261
@@ -558,22 +502,22 @@
262
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_glBenchmark.so
263
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_glResize.so
264
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_HueQT%{qtversion}.so
265
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_logoQT%{qtversion}.so
266
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_mpdelogoQT%{qtversion}.so
267
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_rotateGlFrag2.so
268
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_sampleGlFrag2.so
269
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_sampleGlVertex.so
270
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_shaderLoaderGl.so
271
 %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_swscaleResizeQT%{qtversion}.so
272
 %{_datadir}/applications/avidemux3-qt%{qtversion}.desktop
273
+%{_datadir}/pixmaps/avidemux3.png
274
 
275
-%files -n avidemux3-qt%{qtversion}-lang
276
-%defattr(-,root,root)
277
-%dir %{_datadir}/avidemux3/qt%{qtversion}
278
-%{_datadir}/avidemux3/qt%{qtversion}/i18n/
279
-
280
-%files help
281
+%files qt%{qtversion}-lang
282
 %defattr(-,root,root)
283
 %dir %{_datadir}/avidemux3
284
-%{_datadir}/avidemux3/help/
285
+%dir %{_datadir}/avidemux3/qt%{qtversion}
286
+%dir %{_datadir}/avidemux3/qt%{qtversion}/i18n
287
+%{_datadir}/avidemux3/qt%{qtversion}/i18n/*.qm
288
 %endif
289
 
290
 %changelog
291
avidemux-bootStrap.patch Changed
11
 
1
@@ -1,6 +1,6 @@
2
---- bootStrap.bash.orig    2014-11-28 22:27:34.749989459 +0100
3
-+++ bootStrap.bash 2014-11-28 22:27:19.100257535 +0100
4
-@@ -12,6 +12,7 @@
5
+--- bootStrap.bash.orig    2016-08-18 21:32:47.081424053 +0200
6
++++ bootStrap.bash 2016-08-18 21:32:42.637503964 +0200
7
+@@ -19,6 +19,7 @@
8
  export O_PARAL="-j 2"
9
  fail()
10
  {
11
avidemux-cmake-2.8.8.patch Changed
9
 
1
@@ -1,5 +1,5 @@
2
---- cmake/admCheckRequiredLibs.cmake.orig  2014-11-28 22:27:34.748989455 +0100
3
-+++ cmake/admCheckRequiredLibs.cmake   2014-11-28 22:27:19.127257073 +0100
4
+--- cmake/admCheckRequiredLibs.cmake.orig  2016-08-18 21:32:46.909427146 +0200
5
++++ cmake/admCheckRequiredLibs.cmake   2016-08-18 21:32:46.777429520 +0200
6
 @@ -16,9 +16,9 @@
7
         endif (DEFINED PKGCONFIG_FOUND)
8
  endif (${CMAKE_VERSION} VERSION_EQUAL 2.8.8)
9
avidemux-cmake-permissions.patch Changed
11
 
1
@@ -1,6 +1,6 @@
2
---- avidemux_2.6.10.orig/cmake/admInstallDir.cmake
3
-+++ avidemux_2.6.10/cmake/admInstallDir.cmake
4
-@@ -55,7 +55,7 @@ ENDMACRO(ADM_INSTALL_LIB )
5
+--- cmake/admInstallDir.cmake.orig 2016-08-18 21:32:46.913427074 +0200
6
++++ cmake/admInstallDir.cmake  2016-08-18 21:32:46.689431102 +0200
7
+@@ -55,7 +55,7 @@
8
  MACRO (ADM_INSTALL_LIB_FILES files)
9
          INSTALL(FILES ${files} 
10
                          DESTINATION ${AVIDEMUX_LIB_DIR}
11
avidemux-cpu_armel.patch Changed
18
 
1
@@ -1,11 +1,11 @@
2
---- avidemux_plugins/ADM_audioDecoders/ADM_ad_mad/CMakeLists.txt.orig  2014-11-28 22:27:34.742989408 +0100
3
-+++ avidemux_plugins/ADM_audioDecoders/ADM_ad_mad/CMakeLists.txt   2014-11-28 22:27:19.752246386 +0100
4
+--- avidemux_plugins/ADM_audioDecoders/ADM_ad_mad/CMakeLists.txt.orig  2016-08-19 21:20:04.500394118 +0200
5
++++ avidemux_plugins/ADM_audioDecoders/ADM_ad_mad/CMakeLists.txt   2016-08-19 21:20:04.532393539 +0200
6
 @@ -6,6 +6,8 @@
7
    ADD_DEFINITIONS("-DFPM_DEFAULT")
8
  ELSEIF (ADM_CPU_PPC)
9
    ADD_DEFINITIONS("-DFPM_PPC")
10
-+ELSE  (ADM_CPU_PPC)
11
++ELSEIF (ADM_CPU_PPC)
12
 +  ADD_DEFINITIONS("-DFPM_DEFAULT")
13
+ ELSEIF (ADM_CPU_ARMEL)
14
+   ADD_DEFINITIONS("-DFPM_ARM")
15
  ENDIF (ADM_CPU_X86_32)
16
- 
17
- ADD_SUBDIRECTORY(ADM_libMad)
18
avidemux-find-lrelease-qt5.patch Deleted
20
 
1
@@ -1,18 +0,0 @@
2
---- cmake/Ts.cmake.orig    2016-01-04 22:22:02.396804629 +0100
3
-+++ cmake/Ts.cmake 2016-01-04 22:22:05.880732523 +0100
4
-@@ -2,13 +2,13 @@
5
- 
6
- MACRO(FIND_LRELEASE)
7
-     IF(NOT LRELEASE_EXECUTABLE AND NOT LRELEASE_NOT_FOUND)
8
--      FIND_PROGRAM(LRELEASE_EXECUTABLE lrelease PATHS
9
-+      FIND_PROGRAM(LRELEASE_EXECUTABLE lrelease-qt5 PATHS
10
-           "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin"
11
-           "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin"
12
-           $ENV{QTDIR}/bin)
13
- 
14
-       IF (NOT LRELEASE_EXECUTABLE) # search again under the name lrelease-qt4
15
--              FIND_PROGRAM(LRELEASE_EXECUTABLE lrelease-qt4 PATHS
16
-+              FIND_PROGRAM(LRELEASE_EXECUTABLE lrelease-qt5 PATHS
17
-           $ENV{QTDIR}/bin)
18
-               IF (NOT LRELEASE_EXECUTABLE) # search again under the name lrelease-qt4
19
-                   MESSAGE(FATAL_ERROR "${LRELEASE_EXECUTABLE} not found - ts files can't be processed")
20
avidemux-linking.patch Changed
35
 
1
@@ -1,6 +1,6 @@
2
---- avidemux/cli/CMakeLists.txt.orig   2014-11-28 22:27:34.737989374 +0100
3
-+++ avidemux/cli/CMakeLists.txt    2014-11-28 22:27:19.740246591 +0100
4
-@@ -80,6 +80,16 @@
5
+--- avidemux/cli/CMakeLists.txt.orig   2016-08-18 21:32:46.369436856 +0200
6
++++ avidemux/cli/CMakeLists.txt    2016-08-18 21:32:46.325437648 +0200
7
+@@ -111,6 +111,16 @@
8
  )
9
  
10
  ###########################################
11
@@ -17,9 +17,9 @@
12
  # External libs
13
  ###########################################
14
  # gettext
15
---- avidemux/qt4/CMakeLists.txt.orig   2014-11-28 22:27:34.741989405 +0100
16
-+++ avidemux/qt4/CMakeLists.txt    2014-11-28 22:27:19.746246489 +0100
17
-@@ -118,6 +118,16 @@
18
+--- avidemux/qt4/CMakeLists.txt.orig   2016-08-18 21:32:46.309437935 +0200
19
++++ avidemux/qt4/CMakeLists.txt    2016-08-18 21:32:45.809446926 +0200
20
+@@ -161,6 +161,16 @@
21
  )
22
  
23
  ###########################################
24
@@ -36,8 +36,8 @@
25
  # External libs
26
  ###########################################
27
  # gettext
28
---- avidemux/qt4/ADM_jobs/src/CMakeLists.txt.orig  2015-02-10 07:29:57.000000000 +0100
29
-+++ avidemux/qt4/ADM_jobs/src/CMakeLists.txt   2015-02-11 13:46:33.536379900 +0100
30
+--- avidemux/qt4/ADM_jobs/src/CMakeLists.txt.orig  2016-08-18 21:32:45.845446279 +0200
31
++++ avidemux/qt4/ADM_jobs/src/CMakeLists.txt   2016-08-18 21:32:45.825446639 +0200
32
 @@ -67,6 +67,16 @@
33
  TARGET_LINK_LIBRARIES(avidemux3_jobs_${QT_EXTENSION} ADM_coreJobs)
34
  TARGET_LINK_LIBRARIES(avidemux3_jobs_${QT_EXTENSION} ADM_coreUtils6)
35
avidemux-package_version.patch Changed
138
 
1
@@ -1,6 +1,6 @@
2
 diff -uNr avidemux/qt4/ADM_userInterfaces/ADM_gui/Q_gui2_menu.cpp.orig avidemux/qt4/ADM_userInterfaces/ADM_gui/Q_gui2_menu.cpp
3
---- avidemux/qt4/ADM_userInterfaces/ADM_gui/Q_gui2_menu.cpp.orig   2015-03-07 18:10:59.000000000 +0100
4
-+++ avidemux/qt4/ADM_userInterfaces/ADM_gui/Q_gui2_menu.cpp    2015-03-07 18:51:50.109120416 +0100
5
+--- avidemux/qt4/ADM_userInterfaces/ADM_gui/Q_gui2_menu.cpp.orig   2016-08-18 21:28:20.890212309 +0200
6
++++ avidemux/qt4/ADM_userInterfaces/ADM_gui/Q_gui2_menu.cpp    2016-08-18 21:28:38.589893823 +0200
7
 @@ -143,7 +143,7 @@
8
      QString referenceFile = QCoreApplication::applicationDirPath() + "/help/" + ((FileAction*)sender())->filePath();
9
  #else
10
@@ -10,42 +10,59 @@
11
  #endif
12
  
13
      QDesktopServices::openUrl(QUrl("file:///" + referenceFile, QUrl::TolerantMode));
14
-diff -uNr avidemux/qt4/ADM_userInterfaces/ui_support.cpp.orig avidemux/qt4/ADM_userInterfaces/ui_support.cpp
15
---- avidemux/qt4/ADM_userInterfaces/ui_support.cpp.orig    2015-03-07 18:10:59.000000000 +0100
16
-+++ avidemux/qt4/ADM_userInterfaces/ui_support.cpp 2015-03-07 18:51:50.163119306 +0100
17
-@@ -104,12 +104,12 @@
18
-                 
19
-                 
20
- #ifdef __APPLE__
21
--  QString appdir = QCoreApplication::applicationDirPath() + "/../share/avidemux6/"+QString(partialPath.c_str());
22
-+  QString appdir = QCoreApplication::applicationDirPath() + "/../share/avidemux3/"+QString(partialPath.c_str());
23
-                 
24
- #elif defined(_WIN32)
25
-   QString appdir = QCoreApplication::applicationDirPath() + QString(partialPath.c_str());
26
- #else
27
--  QString appdir = ADM_getInstallRelativePath("share","avidemux6",partialPath.c_str());
28
-+  QString appdir = ADM_getInstallRelativePath("share","avidemux3",partialPath.c_str());
29
- #endif
30
-         QString languageFile=QString(lang);
31
-     int nbLoaded=0;
32
-diff -uNr avidemux_core/ADM_core/src/ADM_fileio.cpp.orig avidemux_core/ADM_core/src/ADM_fileio.cpp
33
---- avidemux_core/ADM_core/src/ADM_fileio.cpp.orig 2015-03-07 18:10:59.000000000 +0100
34
-+++ avidemux_core/ADM_core/src/ADM_fileio.cpp  2015-03-07 18:51:50.858105023 +0100
35
-@@ -463,9 +463,9 @@
36
-       else
37
-           ADM_DIR_NAME = "avidemux";
38
- #elif defined __HAIKU__
39
--      const char *ADM_DIR_NAME = "config/settings/avidemux6";
40
-+      const char *ADM_DIR_NAME = "config/settings/avidemux3";
41
- #else
42
--      const char *ADM_DIR_NAME = ".avidemux6";
43
-+      const char *ADM_DIR_NAME = ".avidemux3";
44
- #endif
45
+diff -uNr avidemux_core/ADM_core/src/ADM_folder_linux.cpp.orig avidemux_core/ADM_core/src/ADM_folder_linux.cpp
46
+--- avidemux_core/ADM_core/src/ADM_folder_linux.cpp.orig   2016-08-18 21:28:19.062245202 +0200
47
++++ avidemux_core/ADM_core/src/ADM_folder_linux.cpp    2016-08-18 21:28:36.461932112 +0200
48
+@@ -103,14 +103,14 @@
49
+     if(isPortable)
50
+     {
51
+         std::string i18n=pluginDir;
52
+-        i18n+=std::string("/../../share/avidemux6/")+flavor+std::string("/i18n/");
53
++        i18n+=std::string("/../../share/avidemux3/")+flavor+std::string("/i18n/");
54
+         ADM_i18nDir=canonize(i18n);
55
+         ADM_info("Relative to install i18n mode : <%s>\n",ADM_i18nDir.c_str());
56
+         // 181n
57
+     }else
58
+     {        
59
+         std::string partialPath=flavor+std::string("/i18n/");
60
+-        char *ppath=ADM_getInstallRelativePath("share","avidemux6",partialPath.c_str());
61
++        char *ppath=ADM_getInstallRelativePath("share","avidemux3",partialPath.c_str());
62
+         ADM_i18nDir=std::string(ppath);
63
+         delete [] ppath;
64
+         ppath=NULL;
65
+@@ -143,7 +143,7 @@
66
+     strcpy(ADM_basedir, homeEnv);
67
+     AddSeparator(ADM_basedir);
68
+ 
69
+-    const char *ADM_DIR_NAME = ".avidemux6";
70
++    const char *ADM_DIR_NAME = ".avidemux3";
71
+ 
72
+     strcat(ADM_basedir, ADM_DIR_NAME);
73
+     strcat(ADM_basedir, ADM_SEPARATOR);
74
+diff -uNr avidemux_core/ADM_core/src/ADM_folder_mac.cpp.orig avidemux_core/ADM_core/src/ADM_folder_mac.cpp
75
+--- avidemux_core/ADM_core/src/ADM_folder_mac.cpp.orig 2016-08-18 21:28:19.066245131 +0200
76
++++ avidemux_core/ADM_core/src/ADM_folder_mac.cpp  2016-08-18 21:28:36.465932040 +0200
77
+@@ -124,7 +124,7 @@
78
+     strcpy(ADM_basedir, homeEnv);
79
+     AddSeparator(ADM_basedir);
80
+ 
81
+-    const char *ADM_DIR_NAME = ".avidemux6";
82
++    const char *ADM_DIR_NAME = ".avidemux3";
83
  
84
-       strcat(ADM_basedir, ADM_DIR_NAME);
85
+     strcat(ADM_basedir, ADM_DIR_NAME);
86
+     strcat(ADM_basedir, ADM_SEPARATOR);
87
+@@ -145,7 +145,7 @@
88
+ {    
89
+     
90
+     std::string partialPath=flavor+std::string("/i18n/");
91
+-    char *ppath=ADM_getInstallRelativePath("../share","avidemux6",partialPath.c_str());
92
++    char *ppath=ADM_getInstallRelativePath("../share","avidemux3",partialPath.c_str());
93
+     std::string r=std::string(ppath);
94
+     delete [] ppath;
95
+     ppath=NULL;
96
 diff -uNr avidemux_plugins/ADM_scriptEngines/tinyPy/src/PythonEngine.cpp.orig avidemux_plugins/ADM_scriptEngines/tinyPy/src/PythonEngine.cpp
97
---- avidemux_plugins/ADM_scriptEngines/tinyPy/src/PythonEngine.cpp.orig    2015-03-07 18:10:59.000000000 +0100
98
-+++ avidemux_plugins/ADM_scriptEngines/tinyPy/src/PythonEngine.cpp 2015-03-07 18:51:54.903021895 +0100
99
+--- avidemux_plugins/ADM_scriptEngines/tinyPy/src/PythonEngine.cpp.orig    2016-08-18 21:28:16.106298394 +0200
100
++++ avidemux_plugins/ADM_scriptEngines/tinyPy/src/PythonEngine.cpp 2016-08-18 21:28:32.997994441 +0200
101
 @@ -260,7 +260,7 @@
102
        this->callEventHandlers(IScriptEngine::Information, NULL, -1,
103
            (string("Executing ") + string(name) + string("...")).c_str());
104
@@ -56,8 +73,8 @@
105
        this->callEventHandlers(IScriptEngine::Information, NULL, -1, "Done");
106
  
107
 diff -uNr cmake/se_plugin.cmake.orig cmake/se_plugin.cmake
108
---- cmake/se_plugin.cmake.orig 2015-03-07 18:10:59.000000000 +0100
109
-+++ cmake/se_plugin.cmake  2015-03-07 18:51:56.589987225 +0100
110
+--- cmake/se_plugin.cmake.orig 2016-08-18 21:28:21.774196403 +0200
111
++++ cmake/se_plugin.cmake  2016-08-18 21:28:39.449878348 +0200
112
 @@ -15,7 +15,7 @@
113
  if (WIN32)
114
      set(helpDir "${CMAKE_INSTALL_PREFIX}/help/${_engineName}")
115
@@ -68,17 +85,17 @@
116
  
117
      install(DIRECTORY "${_sourceDirectory}" DESTINATION "${helpDir}" COMPONENT plugins)
118
 diff -uNr cmake/sql/update.sh.orig cmake/sql/update.sh
119
---- cmake/sql/update.sh.orig   2015-03-07 18:10:59.000000000 +0100
120
-+++ cmake/sql/update.sh    2015-03-07 18:51:56.393991253 +0100
121
+--- cmake/sql/update.sh.orig   2016-08-18 21:28:21.710197555 +0200
122
++++ cmake/sql/update.sh    2016-08-18 21:28:39.393879356 +0200
123
 @@ -1,3 +1,3 @@
124
 -sqlite3 ~/.avidemux6/jobs.sql .d > dump
125
 +sqlite3 ~/.avidemux3/jobs.sql .d > dump
126
  #sql2class -sqlite -global -license -wrapped  -lib $PWD dump
127
  sql2class -sqlite -build -global -prefix $PWD -lib sqlJobs -namespace db -overwrite dump
128
 diff -uNr cmake/Ts.cmake.orig cmake/Ts.cmake
129
---- cmake/Ts.cmake.orig    2015-03-07 18:10:59.000000000 +0100
130
-+++ cmake/Ts.cmake 2015-03-07 18:51:56.421990678 +0100
131
-@@ -41,7 +41,7 @@
132
+--- cmake/Ts.cmake.orig    2016-08-18 21:28:21.558200289 +0200
133
++++ cmake/Ts.cmake 2016-08-18 21:28:39.249881947 +0200
134
+@@ -28,7 +28,7 @@
135
          IF(WIN32)
136
                  SET(i18dir "${CMAKE_INSTALL_PREFIX}/${BIN_DIR}/${QT_EXTENSION}/i18n")
137
          ELSE(WIN32)
138
avidemux-x264_plugins.patch Changed
34
 
1
@@ -1,27 +1,25 @@
2
---- avidemux_plugins/ADM_videoEncoder/x264/CMakeLists.txt.orig 2015-02-23 18:53:40.000000000 +0100
3
-+++ avidemux_plugins/ADM_videoEncoder/x264/CMakeLists.txt  2015-02-26 14:06:02.512830400 +0100
4
+--- avidemux_plugins/ADM_videoEncoder/x264/CMakeLists.txt.orig 2016-08-18 21:32:39.405562081 +0200
5
++++ avidemux_plugins/ADM_videoEncoder/x264/CMakeLists.txt  2016-08-18 21:32:38.945570353 +0200
6
 @@ -27,15 +27,16 @@
7
      INSTALL_VIDEO_ENCODER_QT4(ADM_ve_x264_${QT_LIBRARY_EXTENSION})
8
    endif(DO_QT4)
9
    #-----------------------/QT4 VERSION---------------------
10
 -  #-----------------------GTK or CLI VERSION---------------------
11
--  if((DO_GTK) OR (DO_CLI))
12
++  #-----------------------CLI VERSION----------------------
13
+   if(DO_COMMON)
14
 -    ADD_VIDEO_ENCODER(ADM_ve_x264_other   ADM_x264_noui.cpp ${x264_SRCS})
15
 -    ADD_TARGET_CFLAGS(ADM_ve_x264_other "-DADM_UI_TYPE_BUILD=1") # CLI!
16
 -    TARGET_LINK_LIBRARIES(ADM_ve_x264_other "${X264_LIBRARY_DIR}")
17
 -    TARGET_LINK_LIBRARIES(ADM_ve_x264_other ADM_core6)
18
 -    INIT_VIDEO_ENCODER(ADM_ve_x264_other)
19
 -    INSTALL_VIDEO_ENCODER(ADM_ve_x264_other)
20
--  endif((DO_GTK) OR (DO_CLI))
21
-+  #-----------------------CLI VERSION----------------------
22
-+  if(DO_CLI)
23
 +    ADD_VIDEO_ENCODER(ADM_ve_x264_cli   ADM_x264_noui.cpp ${x264_SRCS})
24
 +    ADD_TARGET_CFLAGS(ADM_ve_x264_cli "-DADM_UI_TYPE_BUILD=1") # CLI!
25
 +    TARGET_LINK_LIBRARIES(ADM_ve_x264_cli "${X264_LIBRARY_DIR}")
26
 +    TARGET_LINK_LIBRARIES(ADM_ve_x264_cli ADM_core6)
27
 +    INIT_VIDEO_ENCODER(ADM_ve_x264_cli)
28
 +    INSTALL_VIDEO_ENCODER(ADM_ve_x264_cli)
29
-+  endif(DO_CLI)
30
+   endif(DO_COMMON)
31
 +  #-----------------------/CLI VERSION---------------------
32
    # ------------- PRESET -----------
33
    if(DO_SETTINGS)
34
avidemux-x265_plugins.patch Changed
34
 
1
@@ -1,27 +1,25 @@
2
---- avidemux_plugins/ADM_videoEncoder/x265/CMakeLists.txt.orig 2015-02-23 18:53:40.000000000 +0100
3
-+++ avidemux_plugins/ADM_videoEncoder/x265/CMakeLists.txt  2015-02-26 14:06:03.794031200 +0100
4
+--- avidemux_plugins/ADM_videoEncoder/x265/CMakeLists.txt.orig 2016-08-18 21:32:39.473560859 +0200
5
++++ avidemux_plugins/ADM_videoEncoder/x265/CMakeLists.txt  2016-08-18 21:32:39.449561290 +0200
6
 @@ -27,15 +27,16 @@
7
      INSTALL_VIDEO_ENCODER_QT4(ADM_ve_x265_${QT_LIBRARY_EXTENSION})
8
    endif(DO_QT4)
9
    #-----------------------/QT4 VERSION---------------------
10
 -  #-----------------------GTK or CLI VERSION---------------------
11
--  if((DO_GTK) OR (DO_CLI))
12
++  #-----------------------CLI VERSION----------------------
13
+   if(DO_COMMON)
14
 -    ADD_VIDEO_ENCODER(ADM_ve_x265_other   ADM_x265_noui.cpp ${x265_SRCS})
15
 -    ADD_TARGET_CFLAGS(ADM_ve_x265_other "-DADM_UI_TYPE_BUILD=1") # CLI!
16
 -    TARGET_LINK_LIBRARIES(ADM_ve_x265_other "${X265_LIBRARY_DIR}")
17
 -    TARGET_LINK_LIBRARIES(ADM_ve_x265_other ADM_core6)
18
 -    INIT_VIDEO_ENCODER(ADM_ve_x265_other)
19
 -    INSTALL_VIDEO_ENCODER(ADM_ve_x265_other)
20
--  endif((DO_GTK) OR (DO_CLI))
21
-+  #-----------------------CLI VERSION----------------------
22
-+  if(DO_CLI)
23
 +    ADD_VIDEO_ENCODER(ADM_ve_x265_cli   ADM_x265_noui.cpp ${x265_SRCS})
24
 +    ADD_TARGET_CFLAGS(ADM_ve_x265_cli "-DADM_UI_TYPE_BUILD=1") # CLI!
25
 +    TARGET_LINK_LIBRARIES(ADM_ve_x265_cli "${X265_LIBRARY_DIR}")
26
 +    TARGET_LINK_LIBRARIES(ADM_ve_x265_cli ADM_core6)
27
 +    INIT_VIDEO_ENCODER(ADM_ve_x265_cli)
28
 +    INSTALL_VIDEO_ENCODER(ADM_ve_x265_cli)
29
-+  endif(DO_CLI)
30
+   endif(DO_COMMON)
31
 +  #-----------------------/CLI VERSION---------------------
32
    # ------------- PRESET -----------
33
    if(DO_SETTINGS)
34
config.mak.diff Changed
11
 
1
@@ -1,6 +1,6 @@
2
---- config.mak.orig    2015-03-20 14:48:40.000000000 +0100
3
-+++ config.mak 2015-03-20 14:57:19.669816100 +0100
4
-@@ -100,7 +100,7 @@
5
+--- config.mak.orig    2016-08-19 12:00:00.000000000 +0200
6
++++ config.mak 2016-08-19 12:16:19.000000000 +0200
7
+@@ -108,7 +108,7 @@
8
  EXEOBJS=
9
  INSTALL=install
10
  LIBTARGET=
11
libavcodec_avcodec.h.patch Deleted
31
 
1
@@ -1,29 +0,0 @@
2
---- libavcodec/avcodec.h.orig  2015-09-10 16:03:09.110337744 +0200
3
-+++ libavcodec/avcodec.h   2015-09-10 16:03:09.132337918 +0200
4
-@@ -1008,6 +1008,10 @@
5
- #define CODEC_FLAG2_DROP_FRAME_TIMECODE AV_CODEC_FLAG2_DROP_FRAME_TIMECODE
6
- #define CODEC_FLAG2_IGNORE_CROP   AV_CODEC_FLAG2_IGNORE_CROP
7
- 
8
-+//MEANX: NEVER EVER USE CLOSED GOP ?
9
-+#define CODEC_FLAG2_32_PULLDOWN   0x80000000
10
-+// /MEANX
11
-+
12
- #define CODEC_FLAG2_CHUNKS        AV_CODEC_FLAG2_CHUNKS
13
- #define CODEC_FLAG2_SHOW_ALL      AV_CODEC_FLAG2_SHOW_ALL
14
- #define CODEC_FLAG2_EXPORT_MVS    AV_CODEC_FLAG2_EXPORT_MVS
15
-@@ -2579,6 +2583,7 @@
16
-      * - decoding: unused
17
-      */
18
-     int rc_buffer_size;
19
-+    int rc_buffer_size_header;  /*< That one is set in the header MEANX*/
20
- 
21
-     /**
22
-      * ratecontrol override, see RcOverride
23
-@@ -2602,6 +2607,7 @@
24
-      * - decoding: Set by user, may be overwritten by libavcodec.
25
-      */
26
-     int rc_max_rate;
27
-+    int rc_max_rate_header; /*< That one is set in the header MEANX */
28
- 
29
-     /**
30
-      * minimum bitrate
31
libavcodec_mpeg12enc.c.patch Deleted
159
 
1
@@ -1,157 +0,0 @@
2
---- libavcodec/mpeg12enc.c.orig    2015-09-10 16:03:12.576365227 +0200
3
-+++ libavcodec/mpeg12enc.c 2015-09-10 16:03:12.615365537 +0200
4
-@@ -256,6 +256,7 @@
5
-         put_sbits(&s->pb, 12, s->width  & 0xFFF);
6
-         put_sbits(&s->pb, 12, s->height & 0xFFF);
7
- 
8
-+#if 0 // MEANX
9
-         for (i = 1; i < 15; i++) {
10
-             int64_t error = aspect_ratio.num * (1LL<<32) / aspect_ratio.den;
11
-             if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO || i <= 1)
12
-@@ -271,11 +272,40 @@
13
-             }
14
-         }
15
- 
16
--        put_bits(&s->pb, 4, s->aspect_ratio_info);
17
--        put_bits(&s->pb, 4, s->frame_rate_index);
18
--
19
--        if (s->avctx->rc_max_rate) {
20
--            v = (s->avctx->rc_max_rate + 399) / 400;
21
-+#endif // MEANX
22
-+            // MEANX put_bits(&s->pb, 4, s->aspect_ratio_info);
23
-+            // MEANX put_bits(&s->pb, 4, s->frame_rate_index);
24
-+ // MEANX 4:3
25
-+   if(s->avctx->sample_aspect_ratio.num==16 && s->avctx->sample_aspect_ratio.den==9)
26
-+             {
27
-+                 //printf("FFmpeg : Wide\n");
28
-+                 put_bits(&s->pb,4,3); //16:9
29
-+             }
30
-+             else        //4:3
31
-+             {
32
-+               if(s->codec_id == CODEC_ID_MPEG2VIDEO)
33
-+                 put_bits(&s->pb, 4, 2);
34
-+               else
35
-+                 put_bits(&s->pb, 4, 12); // MPEG1
36
-+             }
37
-+ // /MEANX
38
-+// MEANX : Pulldown
39
-+            if((s->avctx->flags2 & CODEC_FLAG2_32_PULLDOWN) && (s->codec_id == CODEC_ID_MPEG2VIDEO))
40
-+             {           
41
-+                 put_bits(&s->pb, 4,4);
42
-+             }
43
-+             else
44
-+             {                                  
45
-+                 put_bits(&s->pb, 4, s->frame_rate_index);
46
-+             } //MEANX pulldown
47
-+
48
-+            // MEANX if(s->avctx->rc_max_rate){
49
-+                // MEANX v = (s->avctx->rc_max_rate + 399) / 400;
50
-+           // MEANX  if(s->avctx->rc_max_rate_header){ //MEANX we use header
51
-+           // MEANX      v = (s->avctx->rc_max_rate_header + 399) / 400;
52
-+            if(s->avctx->rc_buffer_size_header) // MEANX we use header
53
-+            {
54
-+                vbv_buffer_size = s->avctx->rc_buffer_size_header;
55
-             if (v > 0x3ffff && s->codec_id == AV_CODEC_ID_MPEG1VIDEO)
56
-                 v = 0x3ffff;
57
-         } else {
58
-@@ -325,7 +355,19 @@
59
-             put_bits(&s->pb, 3, s->avctx->profile); // profile
60
-             put_bits(&s->pb, 4, s->avctx->level);   // level
61
- 
62
--            put_bits(&s->pb, 1, s->progressive_sequence);
63
-+   // MEANX pulldown put_bits(&s->pb, 1, s->progressive_sequence);
64
-+  // MEANX Pulldown
65
-+ if(s->avctx->flags2 & CODEC_FLAG2_32_PULLDOWN) //MEANX
66
-+                        put_bits(&s->pb, 1, 0);
67
-+                else
68
-+                        put_bits(&s->pb, 1, s->progressive_sequence);
69
-+
70
-+
71
-+// /MEANX
72
-+
73
-+
74
-+
75
-+// MEANX                 put_bits(&s->pb, 1, s->progressive_sequence);
76
-             put_bits(&s->pb, 2, s->chroma_format);
77
-             put_bits(&s->pb, 2, s->width  >> 12);
78
-             put_bits(&s->pb, 2, s->height >> 12);
79
-@@ -427,6 +469,7 @@
80
- 
81
- void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number)
82
- {
83
-+    int tff, rff; //MEANX
84
-     AVFrameSideData *side_data;
85
-     mpeg1_encode_sequence_header(s);
86
- 
87
-@@ -465,6 +508,46 @@
88
- 
89
-     s->frame_pred_frame_dct = 1;
90
-     if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
91
-+// MEANX
92
-+        if(s->avctx->flags2 & CODEC_FLAG2_32_PULLDOWN)
93
-+        {
94
-+        
95
-+                switch((s->picture_number - 
96
-+                          s->gop_picture_number)&3)
97
-+                {
98
-+                        case 0:
99
-+                        default:
100
-+                                rff=1;
101
-+                                tff=1;
102
-+                                break;
103
-+                        case 1:
104
-+                                rff=0;
105
-+                                tff=0;
106
-+                                break;
107
-+                        case 2:
108
-+                                rff=1;
109
-+                                tff=0;
110
-+                                break;
111
-+                        case 3:
112
-+                                rff=0;
113
-+                                tff=1;
114
-+                                break;
115
-+                }               
116
-+           }
117
-+        else
118
-+        {
119
-+                if (s->progressive_sequence) 
120
-+                {
121
-+                        tff=0; /* no repeat */
122
-+                } else 
123
-+                {
124
-+                        tff=s->current_picture_ptr->f->top_field_first;
125
-+                }
126
-+                rff=s->repeat_first_field;
127
-+        
128
-+        }
129
-+
130
-+// /MEANX
131
-         put_header(s, EXT_START_CODE);
132
-         put_bits(&s->pb, 4, 8);                 /* pic ext */
133
-         if (s->pict_type == AV_PICTURE_TYPE_P ||
134
-@@ -484,10 +567,14 @@
135
- 
136
-         av_assert0(s->picture_structure == PICT_FRAME);
137
-         put_bits(&s->pb, 2, s->picture_structure);
138
-+#if 0 // MEANX
139
-         if (s->progressive_sequence)
140
-             put_bits(&s->pb, 1, 0);             /* no repeat */
141
-         else
142
-             put_bits(&s->pb, 1, s->current_picture_ptr->f->top_field_first);
143
-+#endif // MEANX
144
-+        put_bits(&s->pb, 1, tff);  //MEANX PULLDOWN
145
-+
146
-         /* XXX: optimize the generation of this flag with entropy measures */
147
-         s->frame_pred_frame_dct = s->progressive_sequence;
148
- 
149
-@@ -496,7 +583,8 @@
150
-         put_bits(&s->pb, 1, s->q_scale_type);
151
-         put_bits(&s->pb, 1, s->intra_vlc_format);
152
-         put_bits(&s->pb, 1, s->alternate_scan);
153
--        put_bits(&s->pb, 1, s->repeat_first_field);
154
-+        // MEANX put_bits(&s->pb, 1, s->top_field_first);
155
-+        put_bits(&s->pb, 1, rff); // MEANX
156
-         s->progressive_frame = s->progressive_sequence;
157
-         /* chroma_420_type */
158
-         put_bits(&s->pb, 1, s->chroma_format ==
159
libavcodec_mpegvideo_enc.c.patch Deleted
39
 
1
@@ -1,37 +0,0 @@
2
---- libavcodec/mpegvideo_enc.c.orig    2015-09-10 21:42:19.055613989 +0200
3
-+++ libavcodec/mpegvideo_enc.c 2015-09-10 21:42:19.096613316 +0200
4
-@@ -498,14 +498,14 @@
5
-                "Warning vbv_delay will be set to 0xFFFF (=VBR) as the "
6
-                "specified vbv buffer is too large for the given bitrate!\n");
7
-     }
8
--
9
-+#if 0 // MEANX
10
-     if ((s->avctx->flags & AV_CODEC_FLAG_4MV) && s->codec_id != AV_CODEC_ID_MPEG4 &&
11
-         s->codec_id != AV_CODEC_ID_H263 && s->codec_id != AV_CODEC_ID_H263P &&
12
-         s->codec_id != AV_CODEC_ID_FLV1) {
13
-         av_log(avctx, AV_LOG_ERROR, "4MV not supported by codec\n");
14
-         return -1;
15
-     }
16
--
17
-+#endif
18
-     if (s->obmc && s->avctx->mb_decision != FF_MB_DECISION_SIMPLE) {
19
-         av_log(avctx, AV_LOG_ERROR,
20
-                "OBMC is only supported with simple mb decision\n");
21
-@@ -597,7 +597,7 @@
22
-         av_log(avctx, AV_LOG_ERROR, "interlacing not supported by codec\n");
23
-         return -1;
24
-     }
25
--
26
-+#if 0 // MEANX
27
-     // FIXME mpeg2 uses that too
28
-     if (s->mpeg_quant && (   s->codec_id != AV_CODEC_ID_MPEG4
29
-                           && s->codec_id != AV_CODEC_ID_MPEG2VIDEO)) {
30
-@@ -605,7 +605,7 @@
31
-                "mpeg2 style quantization not supported by codec\n");
32
-         return -1;
33
-     }
34
--
35
-+#endif
36
-     if ((s->mpv_flags & FF_MPV_FLAG_CBP_RD) && !avctx->trellis) {
37
-         av_log(avctx, AV_LOG_ERROR, "CBP RD needs trellis quant\n");
38
-         return -1;
39
libavcodec_nvenc.patch Deleted
145
 
1
@@ -1,143 +0,0 @@
2
---- libavcodec/nvenc.c.orig    2015-09-10 16:03:16.151393593 +0200
3
-+++ libavcodec/nvenc.c 2015-09-10 16:03:16.198393966 +0200
4
-@@ -960,19 +960,19 @@
5
- 
6
-         switch (avctx->pix_fmt) {
7
-         case AV_PIX_FMT_YUV420P:
8
--            allocSurf.bufferFmt = NV_ENC_BUFFER_FORMAT_YV12_PL;
9
--            break;
10
-+            //allocSurf.bufferFmt = NV_ENC_BUFFER_FORMAT_YV12_PL;
11
-+            //break;
12
- 
13
-         case AV_PIX_FMT_NV12:
14
-             allocSurf.bufferFmt = NV_ENC_BUFFER_FORMAT_NV12_PL;
15
-             break;
16
- 
17
--        case AV_PIX_FMT_YUV444P:
18
--            allocSurf.bufferFmt = NV_ENC_BUFFER_FORMAT_YUV444_PL;
19
--            break;
20
-+        //case AV_PIX_FMT_YUV444P:
21
-+            //allocSurf.bufferFmt = NV_ENC_BUFFER_FORMAT_YUV444_PL;
22
-+            //break;
23
- 
24
-         default:
25
--            av_log(avctx, AV_LOG_FATAL, "Invalid input pixel format\n");
26
-+            av_log(avctx, AV_LOG_FATAL, "NVENC: Invalid input pixel format\n");
27
-             res = AVERROR(EINVAL);
28
-             goto error;
29
-         }
30
-@@ -1198,6 +1198,28 @@
31
- 
32
-     return res;
33
- }
34
-+/**
35
-+        MEANX
36
-+*/
37
-+static void interleave_nv12(unsigned char *dest, int dest_stride,unsigned char *u,int u_stride,unsigned char *v,int v_stride,int width, int height)
38
-+{
39
-+        int x,y;
40
-+        unsigned char *d;
41
-+        unsigned char *pu;
42
-+        unsigned char *pv;
43
-+        for(y=0;y<height;y++)
44
-+        {
45
-+                d=dest;dest+=dest_stride;
46
-+                pu=u;u+=u_stride;
47
-+                pv=v;v+=v_stride;
48
-+                for(x=0;x<width;x++)
49
-+                {
50
-+                        *(d++)=*(pu++);
51
-+                        *(d++)=*(pv++);
52
-+                }
53
-+
54
-+        }
55
-+} 
56
- 
57
- static int nvenc_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
58
-     const AVFrame *frame, int *got_packet)
59
-@@ -1235,62 +1257,33 @@
60
-         if (nv_status != NV_ENC_SUCCESS) {
61
-             av_log(avctx, AV_LOG_ERROR, "Failed locking nvenc input buffer\n");
62
-             return 0;
63
--        }
64
--
65
--        if (avctx->pix_fmt == AV_PIX_FMT_YUV420P) {
66
--            uint8_t *buf = lockBufferParams.bufferDataPtr;
67
--
68
--            av_image_copy_plane(buf, lockBufferParams.pitch,
69
--                frame->data[0], frame->linesize[0],
70
--                avctx->width, avctx->height);
71
--
72
--            buf += inSurf->height * lockBufferParams.pitch;
73
--
74
--            av_image_copy_plane(buf, lockBufferParams.pitch >> 1,
75
--                frame->data[2], frame->linesize[2],
76
--                avctx->width >> 1, avctx->height >> 1);
77
--
78
--            buf += (inSurf->height * lockBufferParams.pitch) >> 2;
79
-+        }  
80
-+        { 
81
-+        uint8_t *buf = lockBufferParams.bufferDataPtr;
82
- 
83
--            av_image_copy_plane(buf, lockBufferParams.pitch >> 1,
84
--                frame->data[1], frame->linesize[1],
85
--                avctx->width >> 1, avctx->height >> 1);
86
--        } else if (avctx->pix_fmt == AV_PIX_FMT_NV12) {
87
--            uint8_t *buf = lockBufferParams.bufferDataPtr;
88
--
89
--            av_image_copy_plane(buf, lockBufferParams.pitch,
90
-+        av_image_copy_plane(buf, lockBufferParams.pitch,
91
-                 frame->data[0], frame->linesize[0],
92
-                 avctx->width, avctx->height);
93
-+// MEANX : We accept YV12 and interleave while copying, it saves us one intermediate image buffer
94
-+        buf += inSurf->height * lockBufferParams.pitch;
95
-+        switch(avctx->pix_fmt)
96
-+        {
97
-+                case AV_PIX_FMT_YUV420P:
98
-+                        // Interleave U & V to NV12
99
-+                        interleave_nv12(buf, lockBufferParams.pitch,frame->data[1],frame->linesize[1],frame->data[2],frame->linesize[2],avctx->width>>1, avctx->height>>1); 
100
-+                        break;
101
-+
102
-+                case AV_PIX_FMT_NV12:
103
-+                        av_image_copy_plane(buf, lockBufferParams.pitch,
104
-+                                frame->data[1], frame->linesize[1],
105
-+                                avctx->width, avctx->height >> 1);
106
-+                        break;
107
-+                default:
108
-+                        av_log(avctx, AV_LOG_FATAL, "NVENC: Invalid pixel format!\n");
109
-+                        return AVERROR(EINVAL);
110
- 
111
--            buf += inSurf->height * lockBufferParams.pitch;
112
--
113
--            av_image_copy_plane(buf, lockBufferParams.pitch,
114
--                frame->data[1], frame->linesize[1],
115
--                avctx->width, avctx->height >> 1);
116
--        } else if (avctx->pix_fmt == AV_PIX_FMT_YUV444P) {
117
--            uint8_t *buf = lockBufferParams.bufferDataPtr;
118
--
119
--            av_image_copy_plane(buf, lockBufferParams.pitch,
120
--                frame->data[0], frame->linesize[0],
121
--                avctx->width, avctx->height);
122
--
123
--            buf += inSurf->height * lockBufferParams.pitch;
124
--
125
--            av_image_copy_plane(buf, lockBufferParams.pitch,
126
--                frame->data[1], frame->linesize[1],
127
--                avctx->width, avctx->height);
128
--
129
--            buf += inSurf->height * lockBufferParams.pitch;
130
--
131
--            av_image_copy_plane(buf, lockBufferParams.pitch,
132
--                frame->data[2], frame->linesize[2],
133
--                avctx->width, avctx->height);
134
--        } else {
135
--            av_log(avctx, AV_LOG_FATAL, "Invalid pixel format!\n");
136
--            return AVERROR(EINVAL);
137
--        }
138
--
139
--        nv_status = p_nvenc->nvEncUnlockInputBuffer(ctx->nvencoder, inSurf->input_surface);
140
-+       }
141
-+       nv_status = p_nvenc->nvEncUnlockInputBuffer(ctx->nvencoder, inSurf->input_surface);
142
-         if (nv_status != NV_ENC_SUCCESS) {
143
-             av_log(avctx, AV_LOG_FATAL, "Failed unlocking input buffer!\n");
144
-             return AVERROR_EXTERNAL;
145
libavcodec_put_bits.h.patch Deleted
15
 
1
@@ -1,13 +0,0 @@
2
---- libavcodec/put_bits.h~ 2014-12-03 22:30:33.639552235 +0100
3
-+++ libavcodec/put_bits.h  2014-12-03 22:30:33.664551595 +0100
4
-@@ -33,6 +33,10 @@
5
- #include "libavutil/intreadwrite.h"
6
- #include "libavutil/avassert.h"
7
- 
8
-+#ifndef ADM_LAV_NO_CONFIG
9
-+ #include "config.h"
10
-+#endif// ADM_LAV_NO_CONFIG
11
-+ 
12
- typedef struct PutBitContext {
13
-     uint32_t bit_buf;
14
-     int bit_left;
15
libavcodec_x86_fmtconvert_init.c.patch Deleted
19
 
1
@@ -1,17 +0,0 @@
2
---- libavcodec/x86/fmtconvert_init.c.orig  2015-03-07 23:34:54.380084981 +0100
3
-+++ libavcodec/x86/fmtconvert_init.c   2015-03-07 23:34:54.416084278 +0100
4
-@@ -44,6 +44,7 @@
5
- #if HAVE_YASM
6
-     int cpu_flags = av_get_cpu_flags();
7
- 
8
-+#if 0 // MEANX : Cant guarantee proper alignment
9
-     if (EXTERNAL_SSE(cpu_flags)) {
10
-         c->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_sse;
11
-         c->int32_to_float_fmul_array8 = ff_int32_to_float_fmul_array8_sse;
12
-@@ -52,5 +53,6 @@
13
-         c->int32_to_float_fmul_scalar = ff_int32_to_float_fmul_scalar_sse2;
14
-         c->int32_to_float_fmul_array8 = ff_int32_to_float_fmul_array8_sse2;
15
-     }
16
-+#endif // MEANX
17
- #endif /* HAVE_YASM */
18
- }
19
xvba_support_from_xbmc_xvba.patch Deleted
856
 
1
@@ -1,854 +0,0 @@
2
-diff --git a/configure b/configure
3
-index d557cac..ba1f392 100755
4
---- a/configure
5
-+++ b/configure
6
-@@ -144,6 +144,7 @@
7
-   --disable-vaapi          disable VAAPI code [autodetect]
8
-   --enable-vda             enable VDA code
9
-   --disable-vdpau          disable VDPAU code [autodetect]
10
-+  --disable-xvba           disable XVBA code
11
- 
12
- Individual component options:
13
-   --disable-everything     disable all components listed below
14
-@@ -1216,6 +1217,7 @@
15
-     vaapi
16
-     vda
17
-     vdpau
18
-+    xvba
19
- "
20
- 
21
- LIBRARY_LIST="
22
-@@ -1845,6 +1847,7 @@
23
- dxva2_deps="dxva2api_h"
24
- vaapi_deps="va_va_h"
25
- vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
26
-+xvba_deps="amd_amdxvba_h"
27
- vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore"
28
- vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
29
- 
30
-@@ -1865,6 +1868,8 @@
31
- h264_vdpau_decoder_select="h264_decoder"
32
- h264_vdpau_hwaccel_deps="vdpau"
33
- h264_vdpau_hwaccel_select="h264_decoder"
34
-+h264_xvba_hwaccel_select="h264_decoder"
35
-+h264_xvba_hwaccel_deps="xvba"
36
- mpeg_vdpau_decoder_deps="vdpau"
37
- mpeg_vdpau_decoder_select="mpegvideo_decoder"
38
- mpeg1_vdpau_decoder_deps="vdpau"
39
-@@ -1877,6 +1882,8 @@
40
- mpeg2_vaapi_hwaccel_deps="vaapi"
41
- mpeg2_vaapi_hwaccel_select="mpeg2video_decoder"
42
- mpeg2_vdpau_hwaccel_deps="vdpau"
43
-+mpeg2_xvba_hwaccel_select="mpeg2video_decoder"
44
-+mpeg2_xvba_hwaccel_deps="xvba"
45
- mpeg2_vdpau_hwaccel_select="mpeg2video_decoder"
46
- mpeg4_crystalhd_decoder_select="crystalhd"
47
- mpeg4_vaapi_hwaccel_deps="vaapi"
48
-@@ -1895,11 +1902,14 @@
49
- vc1_vdpau_decoder_select="vc1_decoder"
50
- vc1_vdpau_hwaccel_deps="vdpau"
51
- vc1_vdpau_hwaccel_select="vc1_decoder"
52
-+vc1_xvba_hwaccel_select="vc1_decoder"
53
-+vc1_xvba_hwaccel_deps="xvba"
54
- wmv3_crystalhd_decoder_select="crystalhd"
55
- wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
56
- wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
57
- wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
58
- wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
59
-+wmv3_xvba_hwaccel_select="vc1_xvba_hwaccel"
60
- 
61
- # parsers
62
- h264_parser_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
63
-@@ -3853,6 +3863,7 @@
64
- check_header unistd.h
65
- check_header vdpau/vdpau.h
66
- check_header vdpau/vdpau_x11.h
67
-+check_header amd/amdxvba.h
68
- check_header VideoDecodeAcceleration/VDADecoder.h
69
- check_header windows.h
70
- check_header X11/extensions/XvMClib.h
71
-diff --git a/libavcodec/Makefile b/libavcodec/Makefile
72
-index dc065a5..c386923 100644
73
---- a/libavcodec/Makefile
74
-+++ b/libavcodec/Makefile
75
-@@ -12,6 +12,7 @@ HEADERS = avcodec.h                                                     \
76
-           vdpau.h                                                       \
77
-           version.h                                                     \
78
-           xvmc.h                                                        \
79
-+          xvba.h                                                        \
80
- 
81
- OBJS = allcodecs.o                                                      \
82
-        audioconvert.o                                                   \
83
-@@ -73,6 +74,7 @@ OBJS-$(CONFIG_SHARED)                  += log2_tab.o
84
- OBJS-$(CONFIG_SINEWIN)                 += sinewin.o
85
- OBJS-$(CONFIG_VAAPI)                   += vaapi.o
86
- OBJS-$(CONFIG_VDPAU)                   += vdpau.o
87
-+OBJS-$(CONFIG_XVBA)                    += xvba.o
88
- OBJS-$(CONFIG_VIDEODSP)                += videodsp.o
89
- OBJS-$(CONFIG_VP3DSP)                  += vp3dsp.o
90
- 
91
-@@ -232,6 +234,7 @@ OBJS-$(CONFIG_H264_VAAPI_HWACCEL)      += vaapi_h264.o
92
- OBJS-$(CONFIG_H264_VDA_HWACCEL)        += vda_h264.o
93
- OBJS-$(CONFIG_H264_VDA_DECODER)        += vda_h264_dec.o
94
- OBJS-$(CONFIG_H264_VDPAU_HWACCEL)      += vdpau_h264.o
95
-+OBJS-$(CONFIG_H264_XVBA_HWACCEL)       += xvba_h264.o
96
- OBJS-$(CONFIG_HUFFYUV_DECODER)         += huffyuv.o huffyuvdec.o
97
- OBJS-$(CONFIG_HUFFYUV_ENCODER)         += huffyuv.o huffyuvenc.o
98
- OBJS-$(CONFIG_IAC_DECODER)             += imc.o
99
-@@ -295,6 +298,7 @@ OBJS-$(CONFIG_MPEG1VIDEO_ENCODER)      += mpeg12enc.o mpeg12.o          \
100
- OBJS-$(CONFIG_MPEG2_DXVA2_HWACCEL)     += dxva2_mpeg2.o
101
- OBJS-$(CONFIG_MPEG2_VAAPI_HWACCEL)     += vaapi_mpeg2.o
102
- OBJS-$(CONFIG_MPEG2_VDPAU_HWACCEL)     += vdpau_mpeg12.o
103
-+OBJS-$(CONFIG_MPEG2_XVBA_HWACCEL)      += xvba_mpeg2.o
104
- OBJS-$(CONFIG_MPEG2VIDEO_DECODER)      += mpeg12.o mpeg12data.o
105
- OBJS-$(CONFIG_MPEG2VIDEO_ENCODER)      += mpeg12enc.o mpeg12.o          \
106
-                                           timecode.o
107
-@@ -459,6 +463,7 @@ OBJS-$(CONFIG_VC1_DECODER)             += vc1dec.o vc1.o vc1data.o vc1dsp.o \
108
- OBJS-$(CONFIG_VC1_DXVA2_HWACCEL)       += dxva2_vc1.o
109
- OBJS-$(CONFIG_VC1_VAAPI_HWACCEL)       += vaapi_vc1.o
110
- OBJS-$(CONFIG_VC1_VDPAU_HWACCEL)       += vdpau_vc1.o
111
-+OBJS-$(CONFIG_VC1_XVBA_HWACCEL)        += xvba_vc1.o
112
- OBJS-$(CONFIG_VCR1_DECODER)            += vcr1.o
113
- OBJS-$(CONFIG_VMDAUDIO_DECODER)        += vmdav.o
114
- OBJS-$(CONFIG_VMDVIDEO_DECODER)        += vmdav.o
115
-@@ -788,6 +793,7 @@ SKIPHEADERS-$(CONFIG_LIBSCHROEDINGER)  += libschroedinger.h
116
- SKIPHEADERS-$(CONFIG_LIBUTVIDEO)       += libutvideo.h
117
- SKIPHEADERS-$(CONFIG_MPEG_XVMC_DECODER) += xvmc.h
118
- SKIPHEADERS-$(CONFIG_VAAPI)            += vaapi_internal.h
119
-+SKIPHEADERS-$(CONFIG_XVBA)             += xvba_internal.h
120
- SKIPHEADERS-$(CONFIG_VDA)              += vda.h
121
- SKIPHEADERS-$(CONFIG_VDPAU)            += vdpau.h
122
- SKIPHEADERS-$(HAVE_OS2THREADS)         += os2threads.h
123
-diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
124
-index 584446f..7a8f61c 100644
125
---- a/libavcodec/allcodecs.c
126
-+++ b/libavcodec/allcodecs.c
127
-@@ -79,18 +79,22 @@ void avcodec_register_all(void)
128
-     REGISTER_HWACCEL(H264_VAAPI,        h264_vaapi);
129
-     REGISTER_HWACCEL(H264_VDA,          h264_vda);
130
-     REGISTER_HWACCEL(H264_VDPAU,        h264_vdpau);
131
-+    REGISTER_HWACCEL(H264_XVBA,         h264_xvba);
132
-     REGISTER_HWACCEL(MPEG1_VDPAU,       mpeg1_vdpau);
133
-     REGISTER_HWACCEL(MPEG2_DXVA2,       mpeg2_dxva2);
134
-     REGISTER_HWACCEL(MPEG2_VAAPI,       mpeg2_vaapi);
135
-     REGISTER_HWACCEL(MPEG2_VDPAU,       mpeg2_vdpau);
136
-+    REGISTER_HWACCEL(MPEG2_XVBA,        mpeg2_xvba);
137
-     REGISTER_HWACCEL(MPEG4_VAAPI,       mpeg4_vaapi);
138
-     REGISTER_HWACCEL(MPEG4_VDPAU,       mpeg4_vdpau);
139
-     REGISTER_HWACCEL(VC1_DXVA2,         vc1_dxva2);
140
-     REGISTER_HWACCEL(VC1_VAAPI,         vc1_vaapi);
141
-     REGISTER_HWACCEL(VC1_VDPAU,         vc1_vdpau);
142
-+    REGISTER_HWACCEL(VC1_XVBA,          vc1_xvba);
143
-     REGISTER_HWACCEL(WMV3_DXVA2,        wmv3_dxva2);
144
-     REGISTER_HWACCEL(WMV3_VAAPI,        wmv3_vaapi);
145
-     REGISTER_HWACCEL(WMV3_VDPAU,        wmv3_vdpau);
146
-+    REGISTER_HWACCEL(WMV3_XVBA,         wmv3_xvba);
147
- 
148
-     /* video codecs */
149
-     REGISTER_ENCODER(A64MULTI,          a64multi);
150
-diff --git a/libavcodec/h264.c b/libavcodec/h264.c
151
-index 3a83b4b..96b6c30 100644
152
---- a/libavcodec/h264.c
153
-+++ b/libavcodec/h264.c
154
-@@ -81,6 +81,9 @@ static const enum AVPixelFormat h264_hwaccel_pixfmt_list_420[] = {
155
- #if CONFIG_H264_VDPAU_HWACCEL
156
-     AV_PIX_FMT_VDPAU,
157
- #endif
158
-+#if CONFIG_H264_XVBA_HWACCEL
159
-+    AV_PIX_FMT_XVBA_VLD,
160
-+#endif
161
-     AV_PIX_FMT_YUV420P,
162
-     AV_PIX_FMT_NONE
163
- };
164
-diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
165
-index 2130c74..4d611f9 100644
166
---- a/libavcodec/vc1dec.c
167
-+++ b/libavcodec/vc1dec.c
168
-@@ -5807,6 +5807,9 @@ static const enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[] = {
169
- #if CONFIG_VDPAU
170
-     AV_PIX_FMT_VDPAU,
171
- #endif
172
-+#if CONFIG_XVBA
173
-+    AV_PIX_FMT_XVBA_VLD,
174
-+#endif
175
-     AV_PIX_FMT_YUV420P,
176
-     AV_PIX_FMT_NONE
177
- };
178
-diff --git a/libavcodec/xvba.c b/libavcodec/xvba.c
179
-new file mode 100644
180
-index 0000000..c6ff2fe
181
---- /dev/null
182
-+++ b/libavcodec/xvba.c
183
-@@ -0,0 +1,77 @@
184
-+/*
185
-+ * HW decode acceleration for MPEG-2, H.264 and VC-1
186
-+ *
187
-+ * Copyright (C) 2005-2011 Team XBMC
188
-+ *
189
-+ * This file is part of FFmpeg.
190
-+ *
191
-+ * FFmpeg is free software; you can redistribute it and/or
192
-+ * modify it under the terms of the GNU Lesser General Public
193
-+ * License as published by the Free Software Foundation; either
194
-+ * version 2.1 of the License, or (at your option) any later version.
195
-+ *
196
-+ * FFmpeg is distributed in the hope that it will be useful,
197
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
198
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
199
-+ * Lesser General Public License for more details.
200
-+ *
201
-+ * You should have received a copy of the GNU Lesser General Public
202
-+ * License along with FFmpeg; if not, write to the Free Software
203
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
204
-+ */
205
-+
206
-+
207
-+/**
208
-+ * \addtogroup XVBA_Decoding
209
-+ *
210
-+ * @{
211
-+ */
212
-+
213
-+#include <stdint.h>
214
-+#include "xvba.h"
215
-+#include "xvba_internal.h"
216
-+#include "avcodec.h"
217
-+#include "mpegvideo.h"
218
-+
219
-+int ff_xvba_translate_profile(int profile) {
220
-+
221
-+  if (profile == 66)
222
-+    return 1;
223
-+  else if (profile == 77)
224
-+    return 2;
225
-+  else if (profile == 100)
226
-+    return 3;
227
-+  else if (profile == 0)
228
-+    return 4;
229
-+  else if (profile == 1)
230
-+    return 5;
231
-+  else if (profile == 3)
232
-+    return 6;
233
-+  else
234
-+    return -1;
235
-+}
236
-+
237
-+// See page 25 of the documentation
238
-+int ff_xvba_translate_picture_structure(int picture_structure) {
239
-+  if(picture_structure == PICT_BOTTOM_FIELD)
240
-+    return 0;
241
-+  else if (picture_structure == PICT_TOP_FIELD)
242
-+    return 1;
243
-+  else //PICT_FRAME by default
244
-+    return 3;
245
-+}
246
-+
247
-+void ff_xvba_add_slice_data(struct xvba_render_state *render, const uint8_t *buffer, uint32_t size) {
248
-+
249
-+  render->buffers = av_fast_realloc(
250
-+         render->buffers,
251
-+         &render->buffers_alllocated,
252
-+         sizeof(struct xvba_bitstream_buffers)*(render->num_slices + 1)
253
-+  );
254
-+
255
-+  render->buffers[render->num_slices].buffer = buffer;
256
-+  render->buffers[render->num_slices].size = size;
257
-+
258
-+  render->num_slices++;
259
-+}
260
-+
261
-diff --git a/libavcodec/xvba.h b/libavcodec/xvba.h
262
-new file mode 100644
263
-index 0000000..e590faf
264
---- /dev/null
265
-+++ b/libavcodec/xvba.h
266
-@@ -0,0 +1,72 @@
267
-+/*
268
-+ * HW decode acceleration for MPEG-2, H.264 and VC-1
269
-+ *
270
-+ * Copyright (C) 2005-2011 Team XBMC
271
-+ *
272
-+ * This file is part of FFmpeg.
273
-+ *
274
-+ * FFmpeg is free software; you can redistribute it and/or
275
-+ * modify it under the terms of the GNU Lesser General Public
276
-+ * License as published by the Free Software Foundation; either
277
-+ * version 2.1 of the License, or (at your option) any later version.
278
-+ *
279
-+ * FFmpeg is distributed in the hope that it will be useful,
280
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
281
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
282
-+ * Lesser General Public License for more details.
283
-+ *
284
-+ * You should have received a copy of the GNU Lesser General Public
285
-+ * License along with FFmpeg; if not, write to the Free Software
286
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
287
-+ */
288
-+
289
-+#ifndef AVCODEC_XVBA_H
290
-+#define AVCODEC_XVBA_H
291
-+
292
-+#include <stdint.h>
293
-+#include <X11/Xlib.h>
294
-+#include <amd/amdxvba.h>
295
-+
296
-+
297
-+/**
298
-+ * \defgroup XVBA_Decoding VA API Decoding
299
-+ * \ingroup Decoder
300
-+ * @{
301
-+ */
302
-+
303
-+/** \brief The videoSurface is used for rendering. */
304
-+#define FF_XVBA_STATE_USED_FOR_RENDER 1
305
-+
306
-+/**
307
-+ * \brief The videoSurface is needed for reference/prediction.
308
-+ * The codec manipulates this.
309
-+ */
310
-+#define FF_XVBA_STATE_USED_FOR_REFERENCE 2
311
-+
312
-+/**
313
-+ * \brief The videoSurface holds a decoded frame.
314
-+ * The codec manipulates this.
315
-+ */
316
-+#define FF_XVBA_STATE_DECODED 4
317
-+
318
-+/* @} */
319
-+
320
-+struct xvba_bitstream_buffers
321
-+{
322
-+  const void *buffer;
323
-+  unsigned int size;
324
-+};
325
-+
326
-+struct xvba_render_state {
327
-+
328
-+  int state; ///< Holds FF_XVBA_STATE_* values.
329
-+  void *surface;
330
-+  XVBAPictureDescriptor *picture_descriptor;
331
-+  XVBAQuantMatrixAvc *iq_matrix;
332
-+  unsigned int num_slices;
333
-+  struct xvba_bitstream_buffers *buffers;
334
-+  uint32_t buffers_alllocated;
335
-+  int psf;
336
-+};
337
-+
338
-+#endif /* AVCODEC_XVBA_H */
339
-diff --git a/libavcodec/xvba_h264.c b/libavcodec/xvba_h264.c
340
-new file mode 100644
341
-index 0000000..20ba2f2
342
---- /dev/null
343
-+++ b/libavcodec/xvba_h264.c
344
-@@ -0,0 +1,194 @@
345
-+/*
346
-+ * H.264 HW decode acceleration through XVBA
347
-+ *
348
-+ * Copyright (C) 2005-2011 Team XBMC
349
-+ *
350
-+ * This file is part of FFmpeg.
351
-+ *
352
-+ * FFmpeg is free software; you can redistribute it and/or
353
-+ * modify it under the terms of the GNU Lesser General Public
354
-+ * License as published by the Free Software Foundation; either
355
-+ * version 2.1 of the License, or (at your option) any later version.
356
-+ *
357
-+ * FFmpeg is distributed in the hope that it will be useful,
358
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
359
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
360
-+ * Lesser General Public License for more details.
361
-+ *
362
-+ * You should have received a copy of the GNU Lesser General Public
363
-+ * License along with FFmpeg; if not, write to the Free Software
364
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
365
-+ */
366
-+
367
-+#include "xvba.h"
368
-+#include "xvba_internal.h"
369
-+#include "h264.h"
370
-+#include <assert.h>
371
-+
372
-+/** @file
373
-+ *  This file implements the glue code between FFmpeg's and XvBA API's
374
-+ *  structures for H.264 decoding.
375
-+ */
376
-+
377
-+
378
-+/** Initialize and start decoding a frame with XVBA. */
379
-+static int start_frame(AVCodecContext          *avctx,
380
-+                       av_unused const uint8_t *buffer,
381
-+                       av_unused uint32_t       size)
382
-+{
383
-+  H264Context * const h = avctx->priv_data;
384
-+  struct xvba_render_state *render;
385
-+  XVBAPictureDescriptor *pic_descriptor;
386
-+  int i;
387
-+
388
-+  render = (struct xvba_render_state *)h->cur_pic_ptr->f.data[0];
389
-+  assert(render);
390
-+
391
-+  if (render->picture_descriptor == 0)
392
-+    return -1;
393
-+
394
-+  pic_descriptor = render->picture_descriptor;
395
-+
396
-+  for (i = 0; i < 2; ++i) {
397
-+      int foc = h->cur_pic_ptr->field_poc[i];
398
-+      if (foc == INT_MAX)
399
-+          foc = 0;
400
-+      pic_descriptor->avc_curr_field_order_cnt_list[i] = foc;
401
-+  }
402
-+
403
-+  pic_descriptor->avc_frame_num = h->frame_num;
404
-+
405
-+  render->num_slices = 0;
406
-+
407
-+  return 0;
408
-+}
409
-+
410
-+/** End a hardware decoding based frame. */
411
-+static int end_frame(AVCodecContext *avctx)
412
-+{
413
-+  H264Context * const h = avctx->priv_data;
414
-+  struct xvba_render_state *render;
415
-+  XVBAPictureDescriptor *pic_descriptor;
416
-+  XVBAQuantMatrixAvc *iq_matrix;
417
-+
418
-+  render = (struct xvba_render_state *)h->cur_pic_ptr->f.data[0];
419
-+  assert(render);
420
-+
421
-+  if (render->picture_descriptor == 0 || render->iq_matrix == 0)
422
-+    return -1;
423
-+
424
-+  pic_descriptor = render->picture_descriptor;
425
-+  iq_matrix = render->iq_matrix;
426
-+
427
-+  av_dlog(avctx, "end_frame()\n");
428
-+
429
-+  /* Fill in Picture Parameters*/
430
-+  pic_descriptor->profile                                     = ff_xvba_translate_profile(avctx->profile);
431
-+  pic_descriptor->level                                       = avctx->level;
432
-+  pic_descriptor->width_in_mb                                 = h->mb_width;
433
-+  pic_descriptor->height_in_mb                                = h->mb_height;
434
-+
435
-+  pic_descriptor->picture_structure                           = ff_xvba_translate_picture_structure(h->picture_structure);
436
-+
437
-+  pic_descriptor->chroma_format                               = h->chroma_format_idc ? h->chroma_format_idc : 1;
438
-+  pic_descriptor->avc_intra_flag                              = (h->slice_type == AV_PICTURE_TYPE_I) ? 1 : 0;
439
-+  pic_descriptor->avc_reference                               = (h->cur_pic_ptr->f.reference & 3) ? 1 : 0;
440
-+
441
-+  pic_descriptor->avc_bit_depth_luma_minus8                   = h->sps.bit_depth_luma - 8;
442
-+  pic_descriptor->avc_bit_depth_chroma_minus8                 = h->sps.bit_depth_chroma - 8;
443
-+  pic_descriptor->avc_log2_max_frame_num_minus4               = h->sps.log2_max_frame_num -4;
444
-+  pic_descriptor->avc_pic_order_cnt_type                      = h->sps.poc_type;
445
-+  pic_descriptor->avc_log2_max_pic_order_cnt_lsb_minus4       = h->sps.log2_max_poc_lsb - 4;
446
-+  pic_descriptor->avc_num_ref_frames                          = h->sps.ref_frame_count;
447
-+  pic_descriptor->avc_reserved_8bit                           = 0;
448
-+
449
-+  /* Set a level that can decode stuff in every case without a lookup table 
450
-+     xvba seems to have problems only when the number of Reframes goes beyond
451
-+     the max support number of Level4.1@High. So in praxis decoding a Level 3.0
452
-+     file that in deed has level4.1@High specs does not matter. We use this fact
453
-+     and check if the ref_frames stay in the range Level4.1@high can decode if
454
-+     not, we set Level5.1 */
455
-+  if (pic_descriptor->avc_num_ref_frames > 4) {
456
-+    const unsigned int mbw = pic_descriptor->width_in_mb;
457
-+    const unsigned int mbh = pic_descriptor->height_in_mb;
458
-+    // this matches Level4.1@High stats to differ between <= 4.1 and 5.1
459
-+    const unsigned int max_ref_frames = 12288 * 1024 / (mbw * mbh * 384);
460
-+    const unsigned int num_ref_frames = pic_descriptor->avc_num_ref_frames;
461
-+    if (max_ref_frames < num_ref_frames)
462
-+        pic_descriptor->level = 51;
463
-+  }
464
-+
465
-+  pic_descriptor->avc_num_slice_groups_minus1                 = h->pps.slice_group_count - 1;
466
-+  pic_descriptor->avc_num_ref_idx_l0_active_minus1            = h->pps.ref_count[0] - 1;
467
-+  pic_descriptor->avc_num_ref_idx_l1_active_minus1            = h->pps.ref_count[1] - 1;
468
-+
469
-+  pic_descriptor->avc_pic_init_qp_minus26                     = h->pps.init_qp - 26;
470
-+  pic_descriptor->avc_pic_init_qs_minus26                     = h->pps.init_qs - 26;
471
-+  pic_descriptor->avc_chroma_qp_index_offset                  = h->pps.chroma_qp_index_offset[0];
472
-+  pic_descriptor->avc_second_chroma_qp_index_offset           = h->pps.chroma_qp_index_offset[1];
473
-+  pic_descriptor->avc_slice_group_change_rate_minus1          = 0; // not implemented in ffmpeg
474
-+  pic_descriptor->avc_reserved_16bit                          = 0; // must be 0
475
-+  memset(pic_descriptor->avc_field_order_cnt_list,0,sizeof(pic_descriptor->avc_field_order_cnt_list)); // must be 0
476
-+  memset(pic_descriptor->avc_slice_group_map,0,sizeof(pic_descriptor->avc_slice_group_map)); // must be 0
477
-+
478
-+  // sps
479
-+  pic_descriptor->sps_info.avc.delta_pic_always_zero_flag     = h->sps.delta_pic_order_always_zero_flag;
480
-+  pic_descriptor->sps_info.avc.direct_8x8_inference_flag      = h->sps.direct_8x8_inference_flag;
481
-+  pic_descriptor->sps_info.avc.frame_mbs_only_flag            = h->sps.frame_mbs_only_flag;
482
-+  pic_descriptor->sps_info.avc.gaps_in_frame_num_value_allowed_flag = h->sps.gaps_in_frame_num_allowed_flag;
483
-+  pic_descriptor->sps_info.avc.mb_adaptive_frame_field_flag   = h->sps.mb_aff;
484
-+  pic_descriptor->sps_info.avc.residual_colour_transform_flag = h->sps.residual_color_transform_flag;
485
-+  pic_descriptor->sps_info.avc.xvba_avc_sps_reserved          = 0;
486
-+
487
-+  // pps
488
-+  pic_descriptor->pps_info.avc.entropy_coding_mode_flag       = h->pps.cabac;
489
-+  pic_descriptor->pps_info.avc.pic_order_present_flag         = h->pps.pic_order_present;
490
-+  pic_descriptor->pps_info.avc.weighted_pred_flag             = h->pps.weighted_pred;
491
-+  pic_descriptor->pps_info.avc.weighted_bipred_idc            = h->pps.weighted_bipred_idc;
492
-+  pic_descriptor->pps_info.avc.deblocking_filter_control_present_flag = h->pps.deblocking_filter_parameters_present;
493
-+  pic_descriptor->pps_info.avc.constrained_intra_pred_flag    = h->pps.constrained_intra_pred;
494
-+  pic_descriptor->pps_info.avc.redundant_pic_cnt_present_flag = h->pps.redundant_pic_cnt_present;
495
-+  pic_descriptor->pps_info.avc.transform_8x8_mode_flag        = h->pps.transform_8x8_mode;
496
-+  pic_descriptor->pps_info.avc.xvba_avc_pps_reserved          = 0; // must be 0
497
-+
498
-+  memcpy(iq_matrix->bScalingLists4x4, h->pps.scaling_matrix4, sizeof(iq_matrix->bScalingLists4x4));
499
-+  memcpy(iq_matrix->bScalingLists8x8[0], h->pps.scaling_matrix8[0], sizeof(iq_matrix->bScalingLists8x8[0]));
500
-+  memcpy(iq_matrix->bScalingLists8x8[1], h->pps.scaling_matrix8[3], sizeof(iq_matrix->bScalingLists8x8[0]));
501
-+
502
-+  // Wait for an I-frame before start decoding. Workaround for ATI UVD and UVD+ GPUs
503
-+  if (!h->got_first_iframe) {
504
-+      if (h->slice_type != AV_PICTURE_TYPE_I && h->slice_type != AV_PICTURE_TYPE_SI)
505
-+          return -1;
506
-+      h->got_first_iframe = 1;
507
-+  }
508
-+
509
-+  ff_h264_draw_horiz_band(h, 0, h->avctx->height);
510
-+
511
-+  return 0;
512
-+}
513
-+
514
-+/** Decode the given H.264 slice with XVBA. */
515
-+static int decode_slice(AVCodecContext *avctx,
516
-+                        const uint8_t  *buffer,
517
-+                        uint32_t        size)
518
-+{
519
-+  H264Context * const h = avctx->priv_data;
520
-+  struct xvba_render_state *render;
521
-+
522
-+  render = (struct xvba_render_state *)h->cur_pic_ptr->f.data[0];
523
-+  assert(render);
524
-+
525
-+  ff_xvba_add_slice_data(render, buffer, size);
526
-+
527
-+  return 0;
528
-+}
529
-+
530
-+AVHWAccel ff_h264_xvba_hwaccel = {
531
-+    .name           = "h264_xvba",
532
-+    .type           = AVMEDIA_TYPE_VIDEO,
533
-+    .id             = CODEC_ID_H264,
534
-+    .pix_fmt        = AV_PIX_FMT_XVBA_VLD,
535
-+    .start_frame    = start_frame,
536
-+    .end_frame      = end_frame,
537
-+    .decode_slice   = decode_slice,
538
-+};
539
-diff --git a/libavcodec/xvba_internal.h b/libavcodec/xvba_internal.h
540
-new file mode 100644
541
-index 0000000..18faa3e
542
---- /dev/null
543
-+++ b/libavcodec/xvba_internal.h
544
-@@ -0,0 +1,25 @@
545
-+/*
546
-+ * HW decode acceleration for MPEG-2, H.264 and VC-1
547
-+ *
548
-+ * Copyright (C) 2005-2011 Team XBMC
549
-+ *
550
-+ * This file is part of FFmpeg.
551
-+ *
552
-+ * FFmpeg is free software; you can redistribute it and/or
553
-+ * modify it under the terms of the GNU Lesser General Public
554
-+ * License as published by the Free Software Foundation; either
555
-+ * version 2.1 of the License, or (at your option) any later version.
556
-+ *
557
-+ * FFmpeg is distributed in the hope that it will be useful,
558
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
559
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
560
-+ * Lesser General Public License for more details.
561
-+ *
562
-+ * You should have received a copy of the GNU Lesser General Public
563
-+ * License along with FFmpeg; if not, write to the Free Software
564
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
565
-+ */
566
-+
567
-+int ff_xvba_translate_profile(int profile);
568
-+int ff_xvba_translate_picture_structure(int picture_structure);
569
-+void ff_xvba_add_slice_data(struct xvba_render_state *render, const uint8_t *buffer, uint32_t size);
570
-diff --git a/libavcodec/xvba_mpeg2.c b/libavcodec/xvba_mpeg2.c
571
-new file mode 100644
572
-index 0000000..0fc7d78
573
---- /dev/null
574
-+++ b/libavcodec/xvba_mpeg2.c
575
-@@ -0,0 +1,52 @@
576
-+/*
577
-+ * MPEG-2 HW decode acceleration through XVBA
578
-+ *
579
-+ * Copyright (C) 2005-2011 Team XBMC
580
-+ *
581
-+ * This file is part of FFmpeg.
582
-+ *
583
-+ * FFmpeg is free software; you can redistribute it and/or
584
-+ * modify it under the terms of the GNU Lesser General Public
585
-+ * License as published by the Free Software Foundation; either
586
-+ * version 2.1 of the License, or (at your option) any later version.
587
-+ *
588
-+ * FFmpeg is distributed in the hope that it will be useful,
589
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
590
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
591
-+ * Lesser General Public License for more details.
592
-+ *
593
-+ * You should have received a copy of the GNU Lesser General Public
594
-+ * License along with FFmpeg; if not, write to the Free Software
595
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
596
-+ */
597
-+
598
-+#include "dsputil.h"
599
-+
600
-+static int start_frame(AVCodecContext *avctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
601
-+{
602
-+    struct MpegEncContext * const s = avctx->priv_data;
603
-+    return 0;
604
-+}
605
-+
606
-+static int end_frame(AVCodecContext *avctx)
607
-+{
608
-+    return 0;
609
-+}
610
-+
611
-+static int decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
612
-+{
613
-+    struct MpegEncContext * const s = avctx->priv_data;
614
-+    return 0;
615
-+}
616
-+
617
-+AVHWAccel ff_mpeg2_xvba_hwaccel = {
618
-+    .name           = "mpeg2_xvba",
619
-+    .type           = AVMEDIA_TYPE_VIDEO,
620
-+    .id             = CODEC_ID_MPEG2VIDEO,
621
-+    .pix_fmt        = AV_PIX_FMT_XVBA_VLD,
622
-+    .capabilities   = 0,
623
-+    .start_frame    = start_frame,
624
-+    .end_frame      = end_frame,
625
-+    .decode_slice   = decode_slice,
626
-+    .priv_data_size = 0,
627
-+};
628
-diff --git a/libavcodec/xvba_vc1.c b/libavcodec/xvba_vc1.c
629
-new file mode 100644
630
-index 0000000..e7a85a7
631
---- /dev/null
632
-+++ b/libavcodec/xvba_vc1.c
633
-@@ -0,0 +1,193 @@
634
-+/*
635
-+ * VC-1 HW decode acceleration through XVBA
636
-+ *
637
-+ * Copyright (C) 2005-2011 Team XBMC
638
-+ *
639
-+ * This file is part of FFmpeg.
640
-+ *
641
-+ * FFmpeg is free software; you can redistribute it and/or
642
-+ * modify it under the terms of the GNU Lesser General Public
643
-+ * License as published by the Free Software Foundation; either
644
-+ * version 2.1 of the License, or (at your option) any later version.
645
-+ *
646
-+ * FFmpeg is distributed in the hope that it will be useful,
647
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
648
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
649
-+ * Lesser General Public License for more details.
650
-+ *
651
-+ * You should have received a copy of the GNU Lesser General Public
652
-+ * License along with FFmpeg; if not, write to the Free Software
653
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
654
-+ */
655
-+
656
-+#include "xvba.h"
657
-+#include "xvba_internal.h"
658
-+#include "vc1.h"
659
-+#include "vc1data.h"
660
-+#include <assert.h>
661
-+
662
-+
663
-+/** @file
664
-+ * Implement structures of ffmpeg <-> XvBA
665
-+ */
666
-+
667
-+/* Initialize and start decoding a frame with XvBA */
668
-+static int start_frame(AVCodecContext *avctx,
669
-+              av_unused const uint8_t *buffer, 
670
-+              av_unused uint32_t size)
671
-+{
672
-+    VC1Context * const v = avctx->priv_data;
673
-+    MpegEncContext * const s = &v->s;
674
-+    struct xvba_render_state *render;
675
-+
676
-+    render = (struct xvba_render_state *)s->current_picture_ptr->f.data[0];
677
-+    assert(render);
678
-+    
679
-+    render->num_slices = 0;
680
-+    return 0;
681
-+}
682
-+
683
-+/* End a hardware decoding based frame */
684
-+static int end_frame(AVCodecContext *avctx)
685
-+{
686
-+    VC1Context* const v = avctx->priv_data;
687
-+    MpegEncContext* const s = &v->s;
688
-+    struct xvba_render_state *render, *last, *next;
689
-+    XVBAPictureDescriptor *pic_descriptor;
690
-+
691
-+    render = (struct xvba_render_state *)s->current_picture_ptr->f.data[0];
692
-+    assert(render);
693
-+
694
-+    if (render->picture_descriptor == 0)
695
-+      return -1;
696
-+
697
-+    pic_descriptor = render->picture_descriptor;
698
-+    
699
-+    av_dlog(avctx, "xvba_vc1_end_frame()\n");
700
-+    
701
-+    memset(pic_descriptor, 0, sizeof(*pic_descriptor));
702
-+
703
-+    /* Fill in Parameters - for reference see AMD sdk documentation */
704
-+    pic_descriptor->profile                                 = ff_xvba_translate_profile(v->profile);
705
-+    pic_descriptor->level                                   = v->level;
706
-+    //done like in va-driver and vaapi
707
-+    if (v->profile == PROFILE_ADVANCED) {
708
-+      pic_descriptor->width_in_mb                           = s->avctx->coded_width;
709
-+      pic_descriptor->height_in_mb                          = s->avctx->coded_height;
710
-+    } else {
711
-+      pic_descriptor->width_in_mb                           = s->mb_width;
712
-+      pic_descriptor->height_in_mb                          = s->mb_height;
713
-+    }
714
-+
715
-+    pic_descriptor->picture_structure                       = ff_xvba_translate_picture_structure(s->picture_structure);
716
-+
717
-+    // xvba-video set this to 1 only 4:2:0 supported
718
-+    // doc says: if not set, choose 1 - we try this
719
-+    pic_descriptor->chroma_format                           = 1;
720
-+    pic_descriptor->avc_intra_flag                          = s->pict_type == AV_PICTURE_TYPE_I || v->bi_type == 1;
721
-+    pic_descriptor->avc_reference                           = (s->current_picture_ptr->f.reference & 3) ? 1 : 0;
722
-+    
723
-+    // VC-1 explicit parameters see page 30 of sdk
724
-+    // sps_info
725
-+    pic_descriptor->sps_info.vc1.postprocflag               = v->postprocflag;
726
-+    
727
-+    // done as in vaapi
728
-+    pic_descriptor->sps_info.vc1.pulldown                   = v->broadcast;
729
-+    pic_descriptor->sps_info.vc1.interlace                  = v->interlace;
730
-+    pic_descriptor->sps_info.vc1.tfcntrflag                 = v->tfcntrflag;
731
-+    pic_descriptor->sps_info.vc1.finterpflag                = v->finterpflag;
732
-+    pic_descriptor->sps_info.vc1.reserved                   = 1;
733
-+    // eventually check if this makes sense together with interlace
734
-+    pic_descriptor->sps_info.vc1.psf                        = v->psf;
735
-+    // what about if it is a frame (page 31)
736
-+    // looked at xvba-driver
737
-+    pic_descriptor->sps_info.vc1.second_field               = v->interlace && v->second_field && (v->fcm == ILACE_FIELD);
738
-+    pic_descriptor->sps_info.vc1.xvba_vc1_sps_reserved      = 0;
739
-+    
740
-+    // VC-1 explicit parameters see page 30 of sdk
741
-+    // pps_info
742
-+    pic_descriptor->pps_info.vc1.panscan_flag               = v->panscanflag;
743
-+    pic_descriptor->pps_info.vc1.refdist_flag               = v->refdist_flag;
744
-+    pic_descriptor->pps_info.vc1.loopfilter                 = s->loop_filter;
745
-+    pic_descriptor->pps_info.vc1.fastuvmc                   = v->fastuvmc;
746
-+    pic_descriptor->pps_info.vc1.extended_mv                = v->extended_mv;
747
-+    pic_descriptor->pps_info.vc1.dquant                     = v->dquant;
748
-+    pic_descriptor->pps_info.vc1.vstransform                = v->vstransform;
749
-+    pic_descriptor->pps_info.vc1.overlap                    = v->overlap;
750
-+    pic_descriptor->pps_info.vc1.quantizer                  = v->quantizer_mode;
751
-+    pic_descriptor->pps_info.vc1.extended_dmv               = v->extended_dmv;   
752
-+    pic_descriptor->pps_info.vc1.maxbframes                 = s->avctx->max_b_frames;
753
-+    pic_descriptor->pps_info.vc1.rangered                   = (pic_descriptor->profile == PROFILE_SIMPLE) ? 0 : v->rangered;   
754
-+    pic_descriptor->pps_info.vc1.syncmarker                 = (pic_descriptor->profile == PROFILE_SIMPLE) ? 0 : s->resync_marker;
755
-+    pic_descriptor->pps_info.vc1.multires                   = v->multires;
756
-+    pic_descriptor->pps_info.vc1.reserved                   = 1;
757
-+    pic_descriptor->pps_info.vc1.range_mapy_flag            = v->range_mapy_flag;
758
-+    pic_descriptor->pps_info.vc1.range_mapy                 = v->range_mapy;
759
-+    pic_descriptor->pps_info.vc1.range_mapuv_flag           = v->range_mapuv_flag;
760
-+    pic_descriptor->pps_info.vc1.range_mapuv                = v->range_mapuv;
761
-+    pic_descriptor->pps_info.vc1.xvba_vc1_pps_reserved      = 0;
762
-+    
763
-+    pic_descriptor->past_surface                            = 0;
764
-+    pic_descriptor->future_surface                          = 0;
765
-+    switch (s->pict_type) {
766
-+    case AV_PICTURE_TYPE_B:
767
-+        next = (struct xvba_render_state *)s->next_picture.f.data[0];
768
-+        assert(next);
769
-+        if (next)
770
-+          pic_descriptor->past_surface = next->surface;
771
-+        // fall-through
772
-+    case AV_PICTURE_TYPE_P:
773
-+        last = (struct xvba_render_state *)s->last_picture.f.data[0];
774
-+        assert(last);
775
-+        if (last)
776
-+          pic_descriptor->future_surface = last->surface;
777
-+        break;
778
-+    }
779
-+    render->psf = v->psf;
780
-+
781
-+    ff_mpeg_draw_horiz_band(s, 0, s->avctx->height);
782
-+
783
-+    return 0;
784
-+}
785
-+
786
-+static int decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
787
-+{
788
-+  VC1Context* const v = avctx->priv_data;
789
-+  MpegEncContext* const s = &v->s;
790
-+  struct xvba_render_state *render;
791
-+
792
-+  render = (struct xvba_render_state *)s->current_picture_ptr->f.data[0];
793
-+  assert(render);
794
-+
795
-+  if (avctx->codec_id == CODEC_ID_VC1 &&
796
-+      size >= 4 && IS_MARKER(AV_RB32(buffer))) {
797
-+      buffer += 4;
798
-+      size   -= 4;
799
-+  }
800
-+
801
-+  ff_xvba_add_slice_data(render, buffer, size);
802
-+
803
-+  return 0;
804
-+}
805
-+
806
-+#if CONFIG_WMV3_XVBA_HWACCEL
807
-+AVHWAccel ff_wmv3_xvba_hwaccel = {
808
-+    .name           = "wmv3_xvba",
809
-+    .type           = AVMEDIA_TYPE_VIDEO,
810
-+    .id             = CODEC_ID_WMV3,
811
-+    .pix_fmt        = AV_PIX_FMT_XVBA_VLD,
812
-+    .start_frame    = start_frame,
813
-+    .end_frame      = end_frame,
814
-+    .decode_slice   = decode_slice,
815
-+};
816
-+#endif
817
-+
818
-+AVHWAccel ff_vc1_xvba_hwaccel = {
819
-+    .name           = "vc1_xvba",
820
-+    .type           = AVMEDIA_TYPE_VIDEO,
821
-+    .id             = CODEC_ID_VC1,
822
-+    .pix_fmt        = AV_PIX_FMT_XVBA_VLD,
823
-+    .start_frame    = start_frame,
824
-+    .end_frame      = end_frame,
825
-+    .decode_slice   = decode_slice,
826
-+};
827
-diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
828
-index 1016dba..53dfec1 100644
829
---- a/libavutil/pixdesc.c
830
-+++ b/libavutil/pixdesc.c
831
-@@ -1141,6 +1141,12 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
832
-         .log2_chroma_h = 1,
833
-         .flags = PIX_FMT_HWACCEL,
834
-     },
835
-+    [AV_PIX_FMT_XVBA_VLD] = {
836
-+        .name = "xvba_vld",
837
-+        .log2_chroma_w = 1,
838
-+        .log2_chroma_h = 1,
839
-+        .flags = PIX_FMT_HWACCEL,
840
-+    },
841
-     [AV_PIX_FMT_YUV420P9LE] = {
842
-         .name = "yuv420p9le",
843
-         .nb_components = 3,
844
-diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
845
-index 1c00ac4..6437e29 100644
846
---- a/libavutil/pixfmt.h
847
-+++ b/libavutil/pixfmt.h
848
-@@ -124,6 +124,7 @@ enum AVPixelFormat {
849
-     AV_PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers
850
-     AV_PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers
851
-     AV_PIX_FMT_VAAPI_VLD,  ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
852
-+    AV_PIX_FMT_XVBA_VLD,  ///< HW decoding through xvba, Picture.data[3] contains a xvba_rander_state struct which contains the bitstream of the slices
853
- 
854
-     AV_PIX_FMT_YUV420P16LE,  ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
855
-     AV_PIX_FMT_YUV420P16BE,  ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
856
avidemux_2.6.12.tar.gz -> avidemux_2.6.13.tar.gz Changed
ffmpeg-2.8.6.tar.bz2 Deleted
Refresh

No build results available

Refresh

No rpmlint results available

Request History
enzokiel's avatar

enzokiel created request over 8 years ago

Update to version 2.6.13


enzokiel's avatar

enzokiel accepted request over 8 years ago

Please add a comment