We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Overview
avidemux3.changes
Changed
x
1
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Login required, please
login
or
signup
in order to comment
Request History
enzokiel created request over 8 years ago
Update to version 2.6.13
enzokiel accepted request over 8 years ago
Please add a comment