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
+Fri Feb 05 21:02:11 UTC 2016 - joerg.lorenzen@ki.tng.de
4
+
5
+- Update to version 2.6.11
6
+ + Better support for H265
7
+ + Fix off-by-one keyframe cutting
8
+ + Basic support for Opus
9
+ + Try to cope better with decoding error
10
+ + Extract keyframes from non Mpeg video in mkv
11
+ + Cap refresh rate for large video or slow machines
12
+ + Fix nv12 to yv12 mmx code
13
+- Update internal ffmpeg to version 2.8.6
14
+- Build against qt5 for openSUSE > 13.2 and Leap 42.1
15
+- Don't build gtk frontend because build currently fails and it
16
+ hasn't been maintained for a long time (information from
17
+ developer)
18
+
19
+-------------------------------------------------------------------
20
Mon Jan 18 09:44:37 UTC 2016 - joerg.lorenzen@ki.tng.de
21
22
- update internal ffmpeg to version 2.8.5
23
avidemux3.spec
Changed
388
1
2
#
3
4
5
-%define ffmpeg_version 2.8.5
6
+%if 0%{?suse_version} > 1320 || 0%{?is_opensuse}
7
+%bcond_without build_qt5
8
+%define qtversion 5
9
+%else
10
+%define qtversion 4
11
+%endif
12
+
13
+%define ffmpeg_version 2.8.6
14
15
Name: avidemux3
16
Summary: Graphical video editing and transcoding tool
17
-Version: 2.6.10
18
+Version: 2.6.11
19
Release: 1
20
Url: http://avidemux.sourceforge.net/
21
Source0: avidemux_%{version}.tar.gz
22
-Source1: avidemux3-qt4.desktop
23
-Source2: avidemux3-gtk.desktop
24
-Source3: ffmpeg-%{ffmpeg_version}.tar.bz2
25
-Source4: config.mak.diff
26
-Source5: libavcodec_put_bits.h.patch
27
-Source6: xvba_support_from_xbmc_xvba.patch
28
-Source7: libavcodec_x86_fmtconvert_init.c.patch
29
-Source8: libavcodec_mpegvideo_enc.c.patch
30
-Source9: libavcodec_mpeg12enc.c.patch
31
-Source10: libavcodec_avcodec.h.patch
32
-Source11: libavcodec_nvenc.patch
33
+Source1: avidemux3-qt.desktop
34
+Source2: ffmpeg-%{ffmpeg_version}.tar.bz2
35
+Source3: config.mak.diff
36
+Source4: libavcodec_put_bits.h.patch
37
+Source5: xvba_support_from_xbmc_xvba.patch
38
+Source6: libavcodec_x86_fmtconvert_init.c.patch
39
+Source7: libavcodec_mpegvideo_enc.c.patch
40
+Source8: libavcodec_mpeg12enc.c.patch
41
+Source9: libavcodec_avcodec.h.patch
42
+Source10: libavcodec_nvenc.patch
43
Patch0: avidemux-cmake-2.8.8.patch
44
Patch1: avidemux-linking.patch
45
Patch2: avidemux-x264_plugins.patch
46
47
Patch6: avidemux-cpu_armel.patch
48
Patch7: avidemux-ADM_VERSION.patch
49
Patch8: avidemux-cmake-permissions.patch
50
+Patch9: avidemux-find-lrelease-qt5.patch
51
License: GPL-2.0
52
Group: Productivity/Multimedia/Video/Editors and Convertors
53
54
55
%endif
56
57
%if ! 0%{?sles_version}
58
+%if %{with build_qt5}
59
+# QT5-GUI
60
+BuildRequires: cmake(Qt5Core)
61
+BuildRequires: cmake(Qt5LinguistTools)
62
+BuildRequires: cmake(Qt5OpenGL)
63
+BuildRequires: cmake(Qt5Script)
64
+BuildRequires: cmake(Qt5Widgets)
65
+%else
66
# QT4-GUI
67
BuildRequires: pkgconfig(QtCore) >= 4.7
68
-
69
-# GTK-GUI
70
-BuildRequires: pkgconfig(gtk+-3.0)
71
-BuildRequires: pkgconfig(cairo)
72
+%endif
73
%endif
74
75
# Main package requires at least one frontend (cli, gtk or qt4)
76
77
This package provides a command-line interface to editing videos with avidemux.
78
79
%if ! 0%{?sles_version}
80
-%package gtk
81
-Summary: GTK interface for avidemux
82
-Group: Productivity/Multimedia/Video/Editors and Convertors
83
-Provides: avidemux3-frontend = %{version}-%{release}
84
-Requires: avidemux3 = %{version}-%{release}
85
-Requires: avidemux3-help = %{version}-%{release}
86
-
87
-%description gtk
88
-Avidemux is a free video editor designed for simple cutting, filtering and
89
-encoding tasks. It supports many file types, including AVI, DVD compatible
90
-MPEG files, MP4 and ASF, using a variety of codecs. Tasks can be automated
91
-using projects, job queue and powerful scripting capabilities.
92
-
93
-Avidemux is available for Linux, BSD, Mac OS X and Microsoft Windows under
94
-the GNU GPL license. The program was written from scratch by Mean, but code
95
-from other people and projects has been used as well. Patches, translations
96
-and even bug reports are always welcome.
97
-
98
-This package provides the GTK graphical interface for avidemux.
99
-
100
-%package qt4
101
+%package qt%{qtversion}
102
Summary: Qt interface for avidemux
103
Group: Productivity/Multimedia/Video/Editors and Convertors
104
Provides: avidemux3-frontend = %{version}-%{release}
105
Requires: avidemux3 = %{version}-%{release}
106
Requires: avidemux3-help = %{version}-%{release}
107
-Recommends: avidemux3-qt4-lang = %{version}-%{release}
108
+Recommends: avidemux3-qt%{qtversion}-lang = %{version}-%{release}
109
110
-%description qt4
111
+%description qt%{qtversion}
112
Avidemux is a free video editor designed for simple cutting, filtering and
113
encoding tasks. It supports many file types, including AVI, DVD compatible
114
MPEG files, MP4 and ASF, using a variety of codecs. Tasks can be automated
115
116
117
This package contains the Qt graphical interface for avidemux.
118
119
-%package qt4-lang
120
-Summary: Languages for package avidemux3-qt4
121
+%package qt%{qtversion}-lang
122
+Summary: Languages for package avidemux3-qt%{qtversion}
123
Group: System/Localization
124
-Requires: avidemux3-qt4 = %{version}-%{release}
125
+Requires: avidemux3-qt%{qtversion} = %{version}-%{release}
126
BuildArch: noarch
127
128
-%description qt4-lang
129
+%description qt%{qtversion}-lang
130
Avidemux is a free video editor designed for simple cutting, filtering and
131
encoding tasks. It supports many file types, including AVI, DVD compatible
132
MPEG files, MP4 and ASF, using a variety of codecs. Tasks can be automated
133
134
from other people and projects has been used as well. Patches, translations
135
and even bug reports are always welcome.
136
137
-This package provides translations for package avidemux3-qt4.
138
+This package provides translations for package avidemux3-qt%{qtversion}.
139
140
%package help
141
Summary: Help files for avidemux
142
143
find ./ -name '*.sql' -exec dos2unix -q {} \;
144
find ./ -name '*.txt' -exec dos2unix -q {} \;
145
find . -type f -exec sed -i -e 's|intfloat_readwrite.h|intfloat.h|g' {} \;
146
-sed -i -e 's|set(FFMPEG_VERSION "2.6.1")|set(FFMPEG_VERSION "%{ffmpeg_version}")|g' cmake/admFFmpegBuild.cmake
147
-rm -f avidemux_core/ffmpeg_package/ffmpeg-2.6.1.tar.bz2
148
-cp %{S:3} avidemux_core/ffmpeg_package/
149
+sed -i -e 's|set(FFMPEG_VERSION "2.7.2")|set(FFMPEG_VERSION "%{ffmpeg_version}")|g' cmake/admFFmpegBuild.cmake
150
+rm -f avidemux_core/ffmpeg_package/ffmpeg-2.7.2.tar.bz2
151
+cp %{S:2} avidemux_core/ffmpeg_package/
152
pushd avidemux_core/ffmpeg_package/patches
153
rm -f config.mak.diff
154
rm -f libavcodec_put_bits.h.patch
155
156
rm -f libavcodec_mpeg12enc.c.patch
157
rm -f libavcodec_avcodec.h.patch
158
rm -f libavcodec_nvenc.patch
159
+cp %{S:3} .
160
cp %{S:4} .
161
-cp %{S:5} .
162
+cp %{S:6} .
163
cp %{S:7} .
164
cp %{S:8} .
165
cp %{S:9} .
166
cp %{S:10} .
167
-cp %{S:11} .
168
pushd xvba
169
rm -f xvba_support_from_xbmc_xvba.patch
170
-cp %{S:6} .
171
+cp %{S:5} .
172
popd
173
popd
174
%patch0 -p0
175
176
%patch6 -p0
177
%patch7 -p0
178
%patch8 -p1
179
+%if %{with build_qt5}
180
+%patch9 -p0
181
+%endif
182
chmod 755 bootStrap.bash
183
chmod 644 AUTHORS COPYING README
184
185
186
export CXXFLAGS="%optflags -D__STDC_CONSTANT_MACROS -fno-strict-aliasing"
187
%endif
188
189
-%if ! 0%{?sles_version}
190
-./bootStrap.bash --with-cli --with-gtk
191
+
192
+options+="--with-cli "
193
+%if 0%{?sles_version}
194
+options+="--without-qt4 "
195
%else
196
-./bootStrap.bash --with-cli --without-qt4
197
+%if %{with build_qt5}
198
+options+="--with-qt4 --enable-qt5 "
199
+%else
200
+options+="--with-qt4 "
201
+%endif
202
%endif
203
+./bootStrap.bash $options
204
205
%install
206
cp -r install/* %{buildroot}
207
208
%if ! 0%{?sles_version}
209
-# Install desktop files
210
-install -D -m644 %{S:1} %{buildroot}%{_datadir}/applications/avidemux3-qt4.desktop
211
-install -D -m644 %{S:2} %{buildroot}%{_datadir}/applications/avidemux3-gtk.desktop
212
+# Install desktop file
213
+install -D -m644 %{S:1} %{buildroot}%{_datadir}/applications/avidemux3-qt%{qtversion}.desktop
214
+sed -i -e 's|qtversion|%{qtversion}|g' %{buildroot}%{_datadir}/applications/avidemux3-qt%{qtversion}.desktop
215
216
# Install icon
217
install -D -m644 avidemux_icon.png %{buildroot}%{_datadir}/pixmaps/avidemux3.png
218
219
# delete devel file (only needed for build)
220
rm -rf %{buildroot}%{_includedir}
221
222
-## find . -name "config.mak" -exec install -D -m644 {} %{buildroot}%{_datadir}/avidemux3/help/config.mak \;
223
-
224
%fdupes %buildroot
225
226
%post -p /sbin/ldconfig
227
228
%postun cli -p /sbin/ldconfig
229
230
%if ! 0%{?sles_version}
231
-%post gtk -p /sbin/ldconfig
232
-
233
-%postun gtk -p /sbin/ldconfig
234
+%post qt%{qtversion} -p /sbin/ldconfig
235
236
-%post qt4 -p /sbin/ldconfig
237
-
238
-%postun qt4 -p /sbin/ldconfig
239
+%postun qt%{qtversion} -p /sbin/ldconfig
240
%endif
241
242
%files
243
244
%{_libdir}/ADM_plugins6/videoFilters/libADM_hf_hflip.so
245
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_addBorders.so
246
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_avsfilter.so
247
+%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_black.so
248
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_blackenBorders.so
249
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_changeFps.so
250
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_colorYuv.so
251
252
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_denoise3dhq.so
253
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_DgBob.so
254
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_dummy.so
255
+%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_fadeTo.so
256
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_fadeToBlack.so
257
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_FluxSmooth.so
258
%{_libdir}/ADM_plugins6/videoFilters/libADM_vf_gauss.so
259
260
%{_libdir}/ADM_plugins6/videoFilters/cli/libADM_vf_swscaleResize_cli.so
261
262
%if ! 0%{?sles_version}
263
-%files gtk
264
-%defattr(-,root,root)
265
-%{_bindir}/avidemux3_gtk
266
-%{_libdir}/libADM_render6_gtk.so
267
-%{_libdir}/libADM_toolkitGtk.so
268
-%{_libdir}/libADM_UIGtk6.so
269
-%dir %{_libdir}/ADM_glade
270
-%dir %{_libdir}/ADM_glade/main
271
-%dir %{_libdir}/ADM_glade/videoFilter
272
-%{_libdir}/ADM_glade/about.gtkBuilder
273
-%{_libdir}/ADM_glade/avidemux_icon.png
274
-%{_libdir}/ADM_glade/calculator.gtkBuilder
275
-%{_libdir}/ADM_glade/DIA_alternate.gtkBuilder
276
-%{_libdir}/ADM_glade/encoding.gtkBuilder
277
-%{_libdir}/ADM_glade/main/avidemux_icon_small.png
278
-%{_libdir}/ADM_glade/main/first-frame.png
279
-%{_libdir}/ADM_glade/main/gtk2_build.gtkBuilder
280
-%{_libdir}/ADM_glade/main/last-frame.png
281
-%{_libdir}/ADM_glade/main/markA.png
282
-%{_libdir}/ADM_glade/main/markB.png
283
-%{_libdir}/ADM_glade/main/next-black-frame.png
284
-%{_libdir}/ADM_glade/main/next-frame.png
285
-%{_libdir}/ADM_glade/main/next-key-frame.png
286
-%{_libdir}/ADM_glade/main/play.png
287
-%{_libdir}/ADM_glade/main/previous-black-frame.png
288
-%{_libdir}/ADM_glade/main/previous-frame.png
289
-%{_libdir}/ADM_glade/main/previous-key-frame.png
290
-%{_libdir}/ADM_glade/main/stop.png
291
-%{_libdir}/ADM_glade/properties.gtkBuilder
292
-%{_libdir}/ADM_glade/videoFilter/1.png
293
-%{_libdir}/ADM_glade/videoFilter/2.png
294
-%{_libdir}/ADM_glade/videoFilter/3.png
295
-%{_libdir}/ADM_glade/videoFilter/4.png
296
-%{_libdir}/ADM_glade/videoFilter/5.png
297
-%{_libdir}/ADM_glade/videoFilter/6.png
298
-%{_libdir}/ADM_glade/videoFilter/7.png
299
-%{_libdir}/ADM_glade/videoFilter/add.png
300
-%{_libdir}/ADM_glade/videoFilter/cd.png
301
-%{_libdir}/ADM_glade/videoFilter/close.png
302
-%{_libdir}/ADM_glade/videoFilter/down.png
303
-%{_libdir}/ADM_glade/videoFilter/exec.png
304
-%{_libdir}/ADM_glade/videoFilter/fileopen.png
305
-%{_libdir}/ADM_glade/videoFilter/filesave.png
306
-%{_libdir}/ADM_glade/videoFilter/filesaveas.png
307
-%{_libdir}/ADM_glade/videoFilter/gl.png
308
-%{_libdir}/ADM_glade/videoFilter/remove.png
309
-%{_libdir}/ADM_glade/videoFilter/thumbnail.png
310
-%{_libdir}/ADM_glade/videoFilter/up.png
311
-%{_libdir}/ADM_glade/videoFilter/videoFilter.gtkBuilder
312
-%{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_x264_gtk.so
313
-%{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_x265_gtk.so
314
-%dir %{_libdir}/ADM_plugins6/videoFilters/gtk
315
-%{_libdir}/ADM_plugins6/videoFilters/gtk/libADM_vf_asharpGtk.so
316
-%{_libdir}/ADM_plugins6/videoFilters/gtk/libADM_vf_chromaShiftGtk.so
317
-%{_libdir}/ADM_plugins6/videoFilters/gtk/libADM_vf_contrastGtk.so
318
-%{_libdir}/ADM_plugins6/videoFilters/gtk/libADM_vf_cropGtk.so
319
-%{_libdir}/ADM_plugins6/videoFilters/gtk/libADM_vf_eq2Gtk.so
320
-%{_libdir}/ADM_plugins6/videoFilters/gtk/libADM_vf_HueGtk.so
321
-%{_libdir}/ADM_plugins6/videoFilters/gtk/libADM_vf_swscaleResize_gtk.so
322
-%{_datadir}/applications/avidemux3-gtk.desktop
323
-
324
-%files qt4
325
+%files qt%{qtversion}
326
%defattr(-,root,root)
327
-%{_bindir}/avidemux3_jobs_qt4
328
-%{_bindir}/avidemux3_qt4
329
-%{_libdir}/libADM_render6_QT4.so
330
-%{_libdir}/libADM_UIQT46.so
331
-%dir %{_libdir}/ADM_plugins6/scriptEngines/qt4
332
-%dir %{_libdir}/ADM_plugins6/videoEncoders/qt4
333
-%dir %{_libdir}/ADM_plugins6/videoFilters/qt4
334
-%{_libdir}/ADM_plugins6/scriptEngines/qt4/libadm_script_QT4.so
335
-%{_libdir}/ADM_plugins6/videoEncoders/qt4/libADM_ve_x264_QT4.so
336
-%{_libdir}/ADM_plugins6/videoEncoders/qt4/libADM_ve_x265_QT4.so
337
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_asharpQT4.so
338
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_chromaShiftQT4.so
339
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_contrastQT4.so
340
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_cropQT4.so
341
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_eq2QT4.so
342
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_glBenchmark.so
343
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_glResize.so
344
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_HueQT4.so
345
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_mpdelogoQT4.so
346
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_rotateGlFrag2.so
347
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_sampleGlFrag2.so
348
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_sampleGlVertex.so
349
-%{_libdir}/ADM_plugins6/videoFilters/qt4/libADM_vf_swscaleResizeQT4.so
350
-%{_datadir}/applications/avidemux3-qt4.desktop
351
-
352
-%files -n avidemux3-qt4-lang
353
+%{_bindir}/avidemux3_jobs_qt%{qtversion}
354
+%{_bindir}/avidemux3_qt%{qtversion}
355
+%{_libdir}/libADM_openGLQT%{qtversion}6.so
356
+%{_libdir}/libADM_render6_QT%{qtversion}.so
357
+%{_libdir}/libADM_UIQT%{qtversion}6.so
358
+%dir %{_libdir}/ADM_plugins6/scriptEngines/qt%{qtversion}
359
+%dir %{_libdir}/ADM_plugins6/videoEncoders/qt%{qtversion}
360
+%dir %{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}
361
+%{_libdir}/ADM_plugins6/scriptEngines/qt%{qtversion}/libadm_script_QT%{qtversion}.so
362
+%{_libdir}/ADM_plugins6/videoEncoders/qt%{qtversion}/libADM_ve_x264_QT%{qtversion}.so
363
+%{_libdir}/ADM_plugins6/videoEncoders/qt%{qtversion}/libADM_ve_x265_QT%{qtversion}.so
364
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_asharpQT%{qtversion}.so
365
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_chromaShiftQT%{qtversion}.so
366
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_contrastQT%{qtversion}.so
367
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_cropQT%{qtversion}.so
368
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_eq2QT%{qtversion}.so
369
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_glBenchmark.so
370
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_glResize.so
371
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_HueQT%{qtversion}.so
372
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_mpdelogoQT%{qtversion}.so
373
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_rotateGlFrag2.so
374
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_sampleGlFrag2.so
375
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_sampleGlVertex.so
376
+%{_libdir}/ADM_plugins6/videoFilters/qt%{qtversion}/libADM_vf_swscaleResizeQT%{qtversion}.so
377
+%{_datadir}/applications/avidemux3-qt%{qtversion}.desktop
378
+
379
+%files -n avidemux3-qt%{qtversion}-lang
380
%defattr(-,root,root)
381
-%dir %{_datadir}/avidemux3/qt4
382
-%{_datadir}/avidemux3/qt4/i18n/
383
+%dir %{_datadir}/avidemux3/qt%{qtversion}
384
+%{_datadir}/avidemux3/qt%{qtversion}/i18n/
385
386
%files help
387
%defattr(-,root,root)
388
avidemux-find-lrelease-qt5.patch
Added
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
27
1
2
# External libs
3
###########################################
4
# gettext
5
---- avidemux/gtk/CMakeLists.txt.orig 2014-11-28 22:27:34.739989392 +0100
6
-+++ avidemux/gtk/CMakeLists.txt 2014-11-28 22:27:19.744246523 +0100
7
-@@ -102,6 +102,16 @@
8
- )
9
-
10
- ###########################################
11
-+# Missing libs
12
-+###########################################
13
-+TARGET_LINK_LIBRARIES(avidemux3_gtk
14
-+ ADM_coreSqlLight3
15
-+ ADM_libswscale
16
-+ ADM_libpostproc
17
-+ ADM_libavformat
18
-+)
19
-+
20
-+###########################################
21
- # External libs
22
- ###########################################
23
- # gettext
24
--- avidemux/qt4/CMakeLists.txt.orig 2014-11-28 22:27:34.741989405 +0100
25
+++ avidemux/qt4/CMakeLists.txt 2014-11-28 22:27:19.746246489 +0100
26
@@ -118,6 +118,16 @@
27
avidemux-x264_plugins.patch
Changed
26
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
-@@ -27,15 +27,26 @@
5
+@@ -27,15 +27,16 @@
6
INSTALL_VIDEO_ENCODER_QT4(ADM_ve_x264_${QT_LIBRARY_EXTENSION})
7
endif(DO_QT4)
8
#-----------------------/QT4 VERSION---------------------
9
10
+ INSTALL_VIDEO_ENCODER(ADM_ve_x264_cli)
11
+ endif(DO_CLI)
12
+ #-----------------------/CLI VERSION---------------------
13
-+ #-----------------------GTK VERSION----------------------
14
-+ if(DO_GTK)
15
-+ ADD_VIDEO_ENCODER(ADM_ve_x264_gtk ADM_x264_noui.cpp ${x264_SRCS})
16
-+ ADD_TARGET_CFLAGS(ADM_ve_x264_gtk "-DADM_UI_TYPE_BUILD=1") # GTK!
17
-+ TARGET_LINK_LIBRARIES(ADM_ve_x264_gtk "${X264_LIBRARY_DIR}")
18
-+ TARGET_LINK_LIBRARIES(ADM_ve_x264_gtk ADM_core6)
19
-+ INIT_VIDEO_ENCODER(ADM_ve_x264_gtk)
20
-+ INSTALL_VIDEO_ENCODER(ADM_ve_x264_gtk)
21
-+ endif(DO_GTK)
22
-+ #-----------------------/GTK VERSION---------------------
23
# ------------- PRESET -----------
24
if(DO_SETTINGS)
25
FILE(GLOB json_files ${CMAKE_CURRENT_SOURCE_DIR}/preset/*.json)
26
avidemux-x265_plugins.patch
Changed
26
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
-@@ -27,15 +27,26 @@
5
+@@ -27,15 +27,16 @@
6
INSTALL_VIDEO_ENCODER_QT4(ADM_ve_x265_${QT_LIBRARY_EXTENSION})
7
endif(DO_QT4)
8
#-----------------------/QT4 VERSION---------------------
9
10
+ INSTALL_VIDEO_ENCODER(ADM_ve_x265_cli)
11
+ endif(DO_CLI)
12
+ #-----------------------/CLI VERSION---------------------
13
-+ #-----------------------GTK VERSION----------------------
14
-+ if(DO_GTK)
15
-+ ADD_VIDEO_ENCODER(ADM_ve_x265_gtk ADM_x265_noui.cpp ${x265_SRCS})
16
-+ ADD_TARGET_CFLAGS(ADM_ve_x265_gtk "-DADM_UI_TYPE_BUILD=1") # GTK!
17
-+ TARGET_LINK_LIBRARIES(ADM_ve_x265_gtk "${X265_LIBRARY_DIR}")
18
-+ TARGET_LINK_LIBRARIES(ADM_ve_x265_gtk ADM_core6)
19
-+ INIT_VIDEO_ENCODER(ADM_ve_x265_gtk)
20
-+ INSTALL_VIDEO_ENCODER(ADM_ve_x265_gtk)
21
-+ endif(DO_GTK)
22
-+ #-----------------------/GTK VERSION---------------------
23
# ------------- PRESET -----------
24
if(DO_SETTINGS)
25
FILE(GLOB json_files ${CMAKE_CURRENT_SOURCE_DIR}/preset/*.json)
26
avidemux3-gtk.desktop
Deleted
14
1
2
-[Desktop Entry]
3
-Name=Avidemux3-gtk
4
-GenericName=Avidemux3-GTK
5
-Comment=Video Editor
6
-Exec=avidemux3_gtk
7
-MimeType=video/mpeg;video/quicktime;video/x-msvideo;video/x-anim;audio/x-mp3;audio/x-mp2;
8
-Icon=avidemux3
9
-Terminal=false
10
-Type=Application
11
-Categories=AudioVideo;AudioVideoEditing;
12
-X-KDE-StartupNotify=true
13
-X-SuSE-translate=true
14
avidemux3-qt.desktop
Added
14
1
2
+[Desktop Entry]
3
+Name=Avidemux3-qtqtversion
4
+GenericName=Avidemux3-QTqtversion
5
+Comment=Video Editor
6
+Exec=avidemux3_qtqtversion
7
+MimeType=video/mpeg;video/quicktime;video/x-msvideo;video/x-anim;audio/x-mp3;audio/x-mp2;
8
+Icon=avidemux3
9
+Terminal=false
10
+Type=Application
11
+Categories=AudioVideo;AudioVideoEditing;
12
+X-KDE-StartupNotify=true
13
+X-SuSE-translate=true
14
avidemux3-qt4.desktop
Deleted
14
1
2
-[Desktop Entry]
3
-Name=Avidemux3-qt4
4
-GenericName=Avidemux3-QT4
5
-Comment=Video Editor
6
-Exec=avidemux3_qt4
7
-MimeType=video/mpeg;video/quicktime;video/x-msvideo;video/x-anim;audio/x-mp3;audio/x-mp2;
8
-Icon=avidemux3
9
-Terminal=false
10
-Type=Application
11
-Categories=AudioVideo;AudioVideoEditing;
12
-X-KDE-StartupNotify=true
13
-X-SuSE-translate=true
14
avidemux_2.6.10.tar.gz -> avidemux_2.6.11.tar.gz
Changed
ffmpeg-2.8.5.tar.bz2/Changelog -> ffmpeg-2.8.6.tar.bz2/Changelog
Changed
53
1
2
releases are sorted from youngest to oldest.
3
4
5
+version 2.8.6
6
+- avcodec/jpeg2000dec: More completely check cdef
7
+- avutil/opt: check for and handle errors in av_opt_set_dict2()
8
+- avcodec/flacenc: fix calculation of bits required in case of custom sample rate
9
+- avformat: Document urls a bit
10
+- avformat/libquvi: Set default demuxer and protocol limitations
11
+- avformat/concat: Check protocol prefix
12
+- doc/demuxers: Document enable_drefs and use_absolute_path
13
+- avcodec/mjpegdec: Check for end for both bytes in unescaping
14
+- avcodec/mpegvideo_enc: Check for integer overflow in ff_mpv_reallocate_putbitbuffer()
15
+- avformat/avformat: Replace some references to filenames by urls
16
+- avcodec/wmaenc: Check ff_wma_init() for failure
17
+- avcodec/mpeg12enc: Move high resolution thread check to before initializing threads
18
+- avformat/img2dec: Use AVOpenCallback
19
+- avformat/avio: Limit url option parsing to the documented cases
20
+- avformat/img2dec: do not interpret the filename by default if a IO context has been opened
21
+- avcodec/ass_split: Fix null pointer dereference in ff_ass_style_get()
22
+- mov: Add an option to toggle dref opening
23
+- avcodec/gif: Fix lzw buffer size
24
+- avcodec/put_bits: Assert buf_ptr in flush_put_bits()
25
+- avcodec/tiff: Check subsample & rps values more completely
26
+- swscale/swscale: Add some sanity checks for srcSlice* parameters
27
+- swscale/x86/rgb2rgb_template: Fix planar2x() for short width
28
+- swscale/swscale_unscaled: Fix odd height inputs for bayer_to_yv12_wrapper()
29
+- swscale/swscale_unscaled: Fix odd height inputs for bayer_to_rgb24_wrapper()
30
+- avcodec/aacenc: Check both channels for finiteness
31
+- asfdec_o: check for too small size in asf_read_unknown
32
+- asfdec_o: break if EOF is reached after asf_read_packet_header
33
+- asfdec_o: make sure packet_size is non-zero before seeking
34
+- asfdec_o: prevent overflow causing seekback
35
+- asfdec_o: check avio_skip in asf_read_simple_index
36
+- asfdec_o: reject size > INT64_MAX in asf_read_unknown
37
+- asfdec_o: only set asf_pkt->data_size after sanity checks
38
+- Merge commit '8375dc1dd101d51baa430f34c0bcadfa37873896'
39
+- dca: fix misaligned access in avpriv_dca_convert_bitstream
40
+- brstm: fix missing closing brace
41
+- brstm: also allocate b->table in read_packet
42
+- brstm: make sure an ADPC chunk was read for adpcm_thp
43
+- vorbisdec: reject rangebits 0 with non-0 partitions
44
+- vorbisdec: reject channel mapping with less than two channels
45
+- ffmdec: reset packet_end in case of failure
46
+- avformat/ipmovie: put video decoding_map_size into packet and use it in decoder
47
+- avformat/brstm: fix overflow
48
+
49
+
50
version 2.8.5
51
- avformat/hls: Even stricter URL checks
52
- avformat/hls: More strict url checks
53
ffmpeg-2.8.5.tar.bz2/RELEASE -> ffmpeg-2.8.6.tar.bz2/RELEASE
Changed
4
1
2
-2.8.5
3
+2.8.6
4
ffmpeg-2.8.5.tar.bz2/VERSION -> ffmpeg-2.8.6.tar.bz2/VERSION
Changed
4
1
2
-2.8.5
3
+2.8.6
4
ffmpeg-2.8.5.tar.bz2/doc/Doxyfile -> ffmpeg-2.8.6.tar.bz2/doc/Doxyfile
Changed
10
1
2
# This could be handy for archiving the generated documentation or
3
# if some version control system is used.
4
5
-PROJECT_NUMBER = 2.8.5
6
+PROJECT_NUMBER = 2.8.6
7
8
# With the PROJECT_LOGO tag one can specify a logo or icon that is included
9
# in the documentation. The maximum height of the logo should not exceed 55
10
ffmpeg-2.8.5.tar.bz2/doc/demuxers.texi -> ffmpeg-2.8.6.tar.bz2/doc/demuxers.texi
Changed
25
1
2
@end example
3
@end itemize
4
5
+@section mov/mp4/3gp/Quicktme
6
+
7
+Quicktime / MP4 demuxer.
8
+
9
+This demuxer accepts the following options:
10
+@table @option
11
+@item enable_drefs
12
+Enable loading of external tracks, disabled by default.
13
+Enabling this can theoretically leak information in some use cases.
14
+
15
+@item use_absolute_path
16
+Allows loading of external tracks via absolute paths, disabled by default.
17
+Enabling this poses a security risk. It should only be enabled if the source
18
+is known to be non malicious.
19
+
20
+@end table
21
+
22
@section mpegts
23
24
MPEG-2 transport stream demuxer.
25
ffmpeg-2.8.5.tar.bz2/libavcodec/aacenc.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/aacenc.c
Changed
20
1
2
}
3
4
apply_window_and_mdct(s, &cpe->ch[ch], overlap);
5
- if (isnan(cpe->ch->coeffs[0])) {
6
- av_log(avctx, AV_LOG_ERROR, "Input contains NaN\n");
7
+
8
+ if (isnan(cpe->ch[ch].coeffs[ 0]) || isinf(cpe->ch[ch].coeffs[ 0]) ||
9
+ isnan(cpe->ch[ch].coeffs[ 128]) || isinf(cpe->ch[ch].coeffs[ 128]) ||
10
+ isnan(cpe->ch[ch].coeffs[2*128]) || isinf(cpe->ch[ch].coeffs[2*128]) ||
11
+ isnan(cpe->ch[ch].coeffs[3*128]) || isinf(cpe->ch[ch].coeffs[3*128]) ||
12
+ isnan(cpe->ch[ch].coeffs[4*128]) || isinf(cpe->ch[ch].coeffs[4*128]) ||
13
+ isnan(cpe->ch[ch].coeffs[5*128]) || isinf(cpe->ch[ch].coeffs[5*128]) ||
14
+ isnan(cpe->ch[ch].coeffs[6*128]) || isinf(cpe->ch[ch].coeffs[6*128]) ||
15
+ isnan(cpe->ch[ch].coeffs[7*128]) || isinf(cpe->ch[ch].coeffs[7*128])) {
16
+ av_log(avctx, AV_LOG_ERROR, "Input contains NaN/+-Inf\n");
17
return AVERROR(EINVAL);
18
}
19
avoid_clipping(s, &cpe->ch[ch]);
20
ffmpeg-2.8.5.tar.bz2/libavcodec/ass_split.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/ass_split.c
Changed
10
1
2
if (!style || !*style)
3
style = "Default";
4
for (i=0; i<ass->styles_count; i++)
5
- if (!strcmp(ass->styles[i].name, style))
6
+ if (ass->styles[i].name && !strcmp(ass->styles[i].name, style))
7
return ass->styles + i;
8
return NULL;
9
}
10
ffmpeg-2.8.5.tar.bz2/libavcodec/dca.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/dca.c
Changed
24
1
2
{
3
uint32_t mrk;
4
int i, tmp;
5
- const uint16_t *ssrc = (const uint16_t *) src;
6
- uint16_t *sdst = (uint16_t *) dst;
7
PutBitContext pb;
8
9
if ((unsigned) src_size > (unsigned) max_size)
10
11
memcpy(dst, src, src_size);
12
return src_size;
13
case DCA_SYNCWORD_CORE_LE:
14
- for (i = 0; i < (src_size + 1) >> 1; i++)
15
- *sdst++ = av_bswap16(*ssrc++);
16
+ for (i = 0; i < (src_size + 1) >> 1; i++) {
17
+ AV_WB16(dst, AV_RL16(src));
18
+ src += 2;
19
+ dst += 2;
20
+ }
21
return src_size;
22
case DCA_SYNCWORD_CORE_14B_BE:
23
case DCA_SYNCWORD_CORE_14B_LE:
24
ffmpeg-2.8.5.tar.bz2/libavcodec/flacenc.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/flacenc.c
Changed
10
1
2
count += 16;
3
4
/* explicit sample rate */
5
- count += ((s->sr_code[0] == 12) + (s->sr_code[0] > 12)) * 8;
6
+ count += ((s->sr_code[0] == 12) + (s->sr_code[0] > 12) * 2) * 8;
7
8
/* frame header CRC-8 */
9
count += 8;
10
ffmpeg-2.8.5.tar.bz2/libavcodec/gif.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/gif.c
Changed
36
1
2
const AVClass *class;
3
LZWState *lzw;
4
uint8_t *buf;
5
+ int buf_size;
6
AVFrame *last_frame;
7
int flags;
8
uint32_t palette[AVPALETTE_COUNT]; ///< local reference palette for !pal8
9
10
11
bytestream_put_byte(bytestream, 0x08);
12
13
- ff_lzw_encode_init(s->lzw, s->buf, 2 * width * height,
14
+ ff_lzw_encode_init(s->lzw, s->buf, s->buf_size,
15
12, FF_LZW_GIF, put_bits);
16
17
ptr = buf + y_start*linesize + x_start;
18
19
s->transparent_index = -1;
20
21
s->lzw = av_mallocz(ff_lzw_encode_state_size);
22
- s->buf = av_malloc(avctx->width*avctx->height*2);
23
+ s->buf_size = avctx->width*avctx->height*2 + 1000;
24
+ s->buf = av_malloc(s->buf_size);
25
s->tmpl = av_malloc(avctx->width);
26
if (!s->tmpl || !s->buf || !s->lzw)
27
return AVERROR(ENOMEM);
28
29
30
av_freep(&s->lzw);
31
av_freep(&s->buf);
32
+ s->buf_size = 0;
33
av_frame_free(&s->last_frame);
34
av_freep(&s->tmpl);
35
return 0;
36
ffmpeg-2.8.5.tar.bz2/libavcodec/interplayvideo.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/interplayvideo.c
Changed
47
1
2
#include <stdlib.h>
3
#include <string.h>
4
5
+#include "libavutil/intreadwrite.h"
6
#include "avcodec.h"
7
#include "bytestream.h"
8
#include "hpeldsp.h"
9
10
}
11
}
12
if (bytestream2_get_bytes_left(&s->stream_ptr) > 1) {
13
- av_log(s->avctx, AV_LOG_ERROR,
14
+ av_log(s->avctx, AV_LOG_DEBUG,
15
"decode finished with %d bytes left over\n",
16
bytestream2_get_bytes_left(&s->stream_ptr));
17
}
18
19
AVFrame *frame = data;
20
int ret;
21
22
+ if (buf_size < 2)
23
+ return AVERROR_INVALIDDATA;
24
+
25
/* decoding map contains 4 bits of information per 8x8 block */
26
- s->decoding_map_size = avctx->width * avctx->height / (8 * 8 * 2);
27
+ s->decoding_map_size = AV_RL16(avpkt->data);
28
29
/* compressed buffer needs to be large enough to at least hold an entire
30
* decoding map */
31
- if (buf_size < s->decoding_map_size)
32
+ if (buf_size < s->decoding_map_size + 2)
33
return buf_size;
34
35
if (av_packet_get_side_data(avpkt, AV_PKT_DATA_PARAM_CHANGE, NULL)) {
36
37
av_frame_unref(s->second_last_frame);
38
}
39
40
- s->decoding_map = buf;
41
- bytestream2_init(&s->stream_ptr, buf + s->decoding_map_size,
42
+ s->decoding_map = buf + 2;
43
+ bytestream2_init(&s->stream_ptr, buf + 2 + s->decoding_map_size,
44
buf_size - s->decoding_map_size);
45
46
if ((ret = ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0)
47
ffmpeg-2.8.5.tar.bz2/libavcodec/jpeg2000dec.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/jpeg2000dec.c
Changed
22
1
2
if (tile->codsty[0].mct)
3
mct_decode(s, tile);
4
5
- if (s->cdef[0] < 0) {
6
- for (x = 0; x < s->ncomponents; x++)
7
- s->cdef[x] = x + 1;
8
- if ((s->ncomponents & 1) == 0)
9
- s->cdef[s->ncomponents-1] = 0;
10
+ for (x = 0; x < s->ncomponents; x++) {
11
+ if (s->cdef[x] < 0) {
12
+ for (x = 0; x < s->ncomponents; x++) {
13
+ s->cdef[x] = x + 1;
14
+ }
15
+ if ((s->ncomponents & 1) == 0)
16
+ s->cdef[s->ncomponents-1] = 0;
17
+ break;
18
+ }
19
}
20
21
if (s->precision <= 8) {
22
ffmpeg-2.8.5.tar.bz2/libavcodec/mjpegdec.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/mjpegdec.c
Changed
10
1
2
while (b < t) {
3
uint8_t x = src[b++];
4
put_bits(&pb, 8, x);
5
- if (x == 0xFF) {
6
+ if (x == 0xFF && b < t) {
7
x = src[b++];
8
if (x & 0x80) {
9
av_log(s->avctx, AV_LOG_WARNING, "Invalid escape sequence\n");
10
ffmpeg-2.8.5.tar.bz2/libavcodec/mpeg12enc.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/mpeg12enc.c
Changed
11
1
2
{
3
MpegEncContext *s = avctx->priv_data;
4
5
- if (avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO && avctx->height > 2800)
6
- avctx->thread_count = 1;
7
-
8
if (ff_mpv_encode_init(avctx) < 0)
9
return -1;
10
11
ffmpeg-2.8.5.tar.bz2/libavcodec/mpegvideo_enc.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/mpegvideo_enc.c
Changed
13
1
2
uint8_t *new_buffer = NULL;
3
int new_buffer_size = 0;
4
5
+ if ((s->avctx->internal->byte_buffer_size + size_increase) >= INT_MAX/8) {
6
+ av_log(s->avctx, AV_LOG_ERROR, "Cannot reallocate putbit buffer\n");
7
+ return AVERROR(ENOMEM);
8
+ }
9
+
10
av_fast_padded_malloc(&new_buffer, &new_buffer_size,
11
s->avctx->internal->byte_buffer_size + size_increase);
12
if (!new_buffer)
13
ffmpeg-2.8.5.tar.bz2/libavcodec/pthread_slice.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/pthread_slice.c
Changed
14
1
2
w32thread_init();
3
#endif
4
5
+ // We cannot do this in the encoder init as the threads are created before
6
+ if (av_codec_is_encoder(avctx->codec) &&
7
+ avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO &&
8
+ avctx->height > 2800)
9
+ thread_count = avctx->thread_count = 1;
10
+
11
if (!thread_count) {
12
int nb_cpus = av_cpu_count();
13
if (avctx->height)
14
ffmpeg-2.8.5.tar.bz2/libavcodec/put_bits.h -> ffmpeg-2.8.6.tar.bz2/libavcodec/put_bits.h
Changed
10
1
2
s->bit_buf <<= s->bit_left;
3
#endif
4
while (s->bit_left < 32) {
5
- /* XXX: should test end of buffer */
6
+ av_assert0(s->buf_ptr < s->buf_end);
7
#ifdef BITSTREAM_WRITER_LE
8
*s->buf_ptr++ = s->bit_buf;
9
s->bit_buf >>= 8;
10
ffmpeg-2.8.5.tar.bz2/libavcodec/tiff.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/tiff.c
Changed
25
1
2
av_log(s->avctx, AV_LOG_ERROR, "subsample count invalid\n");
3
return AVERROR_INVALIDDATA;
4
}
5
- for (i = 0; i < count; i++)
6
+ for (i = 0; i < count; i++) {
7
s->subsampling[i] = ff_tget(&s->gb, type, s->le);
8
+ if (s->subsampling[i] <= 0) {
9
+ av_log(s->avctx, AV_LOG_ERROR, "subsampling %d is invalid\n", s->subsampling[i]);
10
+ return AVERROR_INVALIDDATA;
11
+ }
12
+ }
13
break;
14
case TIFF_T4OPTIONS:
15
if (s->compr == TIFF_G3)
16
17
avpkt->size - s->strippos);
18
}
19
20
- if (s->rps <= 0) {
21
+ if (s->rps <= 0 || s->rps % s->subsampling[1]) {
22
av_log(avctx, AV_LOG_ERROR, "rps %d invalid\n", s->rps);
23
return AVERROR_INVALIDDATA;
24
}
25
ffmpeg-2.8.5.tar.bz2/libavcodec/vorbisdec.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/vorbisdec.c
Changed
25
1
2
return AVERROR(ENOMEM);
3
4
rangebits = get_bits(gb, 4);
5
+ if (!rangebits && floor_setup->data.t1.partitions) {
6
+ av_log(vc->avctx, AV_LOG_ERROR,
7
+ "A rangebits value of 0 is not compliant with the Vorbis I specification.\n");
8
+ return AVERROR_INVALIDDATA;
9
+ }
10
rangemax = (1 << rangebits);
11
if (rangemax > vc->blocksize[1] / 2) {
12
av_log(vc->avctx, AV_LOG_ERROR,
13
14
15
if (get_bits1(gb)) {
16
mapping_setup->coupling_steps = get_bits(gb, 8) + 1;
17
+ if (vc->audio_channels < 2) {
18
+ av_log(vc->avctx, AV_LOG_ERROR,
19
+ "Square polar channel mapping with less than two channels is not compliant with the Vorbis I specification.\n");
20
+ return AVERROR_INVALIDDATA;
21
+ }
22
mapping_setup->magnitude = av_mallocz(mapping_setup->coupling_steps *
23
sizeof(*mapping_setup->magnitude));
24
mapping_setup->angle = av_mallocz(mapping_setup->coupling_steps *
25
ffmpeg-2.8.5.tar.bz2/libavcodec/wmaenc.c -> ffmpeg-2.8.6.tar.bz2/libavcodec/wmaenc.c
Changed
19
1
2
WMACodecContext *s = avctx->priv_data;
3
int i, flags1, flags2, block_align;
4
uint8_t *extradata;
5
+ int ret;
6
7
s->avctx = avctx;
8
9
10
if (avctx->channels == 2)
11
s->ms_stereo = 1;
12
13
- ff_wma_init(avctx, flags2);
14
+ if ((ret = ff_wma_init(avctx, flags2)) < 0)
15
+ return ret;
16
17
/* init MDCT */
18
for (i = 0; i < s->nb_block_sizes; i++)
19
ffmpeg-2.8.5.tar.bz2/libavformat/asfdec_o.c -> ffmpeg-2.8.6.tar.bz2/libavformat/asfdec_o.c
Changed
143
1
2
3
static void align_position(AVIOContext *pb, int64_t offset, uint64_t size)
4
{
5
- if (avio_tell(pb) != offset + size)
6
+ if (size < INT64_MAX - offset && avio_tell(pb) != offset + size)
7
avio_seek(pb, offset + size, SEEK_SET);
8
}
9
10
11
uint64_t size = avio_rl64(pb);
12
int ret;
13
14
+ if (size > INT64_MAX)
15
+ return AVERROR_INVALIDDATA;
16
+
17
if (asf->is_header)
18
asf->unknown_size = size;
19
asf->is_header = 0;
20
21
if ((ret = detect_unknown_subobject(s, asf->unknown_offset,
22
asf->unknown_size)) < 0)
23
return ret;
24
- } else
25
+ } else {
26
+ if (size < 24) {
27
+ av_log(s, AV_LOG_ERROR, "Too small size %"PRIu64" (< 24).\n", size);
28
+ return AVERROR_INVALIDDATA;
29
+ }
30
avio_skip(pb, size - 24);
31
+ }
32
33
return 0;
34
}
35
36
uint64_t interval; // index entry time interval in 100 ns units, usually it's 1s
37
uint32_t pkt_num, nb_entries;
38
int32_t prev_pkt_num = -1;
39
- int i;
40
+ int i, ret;
41
uint64_t size = avio_rl64(pb);
42
43
// simple index objects should be ordered by stream number, this loop tries to find
44
45
nb_entries = avio_rl32(pb);
46
for (i = 0; i < nb_entries; i++) {
47
pkt_num = avio_rl32(pb);
48
- avio_skip(pb, 2);
49
+ ret = avio_skip(pb, 2);
50
+ if (ret < 0) {
51
+ av_log(s, AV_LOG_ERROR, "Skipping failed in asf_read_simple_index.\n");
52
+ return ret;
53
+ }
54
if (prev_pkt_num != pkt_num) {
55
av_add_index_entry(st, asf->first_packet_offset + asf->packet_size *
56
pkt_num, av_rescale(interval, i, 10000),
57
58
{
59
ASFContext *asf = s->priv_data;
60
AVIOContext *pb = s->pb;
61
- int ret;
62
+ int ret, data_size;
63
64
if (!asf_pkt->data_size) {
65
- asf_pkt->data_size = asf_pkt->size_left = avio_rl32(pb); // read media object size
66
- if (asf_pkt->data_size <= 0)
67
+ data_size = avio_rl32(pb); // read media object size
68
+ if (data_size <= 0)
69
return AVERROR_INVALIDDATA;
70
- if ((ret = av_new_packet(&asf_pkt->avpkt, asf_pkt->data_size)) < 0)
71
+ if ((ret = av_new_packet(&asf_pkt->avpkt, data_size)) < 0)
72
return ret;
73
+ asf_pkt->data_size = asf_pkt->size_left = data_size;
74
} else
75
avio_skip(pb, 4); // reading of media object size is already done
76
asf_pkt->dts = avio_rl32(pb); // read presentation time
77
78
int64_t offset;
79
uint64_t size;
80
unsigned char *p;
81
- int ret;
82
+ int ret, data_size;
83
84
if (!asf_pkt->data_size) {
85
- asf_pkt->data_size = asf_pkt->size_left = avio_rl32(pb); // read media object size
86
- if (asf_pkt->data_size <= 0)
87
+ data_size = avio_rl32(pb); // read media object size
88
+ if (data_size <= 0)
89
return AVERROR_EOF;
90
- if ((ret = av_new_packet(&asf_pkt->avpkt, asf_pkt->data_size)) < 0)
91
+ if ((ret = av_new_packet(&asf_pkt->avpkt, data_size)) < 0)
92
return ret;
93
+ asf_pkt->data_size = asf_pkt->size_left = data_size;
94
} else
95
avio_skip(pb, 4); // skip media object size
96
asf_pkt->dts = avio_rl32(pb); // read presentation time
97
98
break;
99
}
100
}
101
- if (!asf_pkt)
102
- return AVERROR_INVALIDDATA;
103
+ if (!asf_pkt) {
104
+ if (asf->packet_offset + asf->packet_size <= asf->data_offset + asf->data_size) {
105
+ if (!asf->packet_size) {
106
+ av_log(s, AV_LOG_ERROR, "Invalid packet size 0.\n");
107
+ return AVERROR_INVALIDDATA;
108
+ }
109
+ avio_seek(pb, asf->packet_offset + asf->packet_size, SEEK_SET);
110
+ av_log(s, AV_LOG_WARNING, "Skipping the stream with the invalid stream index %d.\n",
111
+ asf->stream_index);
112
+ return AVERROR(EAGAIN);
113
+ } else
114
+ return AVERROR_INVALIDDATA;
115
+ }
116
+
117
if (stream_num >> 7)
118
asf_pkt->flags |= AV_PKT_FLAG_KEY;
119
READ_LEN(asf->prop_flags & ASF_PL_MASK_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_SIZE,
120
121
while (!pb->eof_reached) {
122
if (asf->state == PARSE_PACKET_HEADER) {
123
asf_read_packet_header(s);
124
+ if (pb->eof_reached)
125
+ break;
126
if (!asf->nb_mult_left)
127
asf->state = READ_SINGLE;
128
else
129
asf->state = READ_MULTI;
130
}
131
- if ((ret = asf_read_payload(s, pkt)) < 0)
132
+ ret = asf_read_payload(s, pkt);
133
+ if (ret == AVERROR(EAGAIN)) {
134
+ asf->state = PARSE_PACKET_HEADER;
135
+ continue;
136
+ }
137
+ else if (ret < 0)
138
return ret;
139
+
140
switch (asf->state) {
141
case READ_SINGLE:
142
if (!asf->sub_left)
143
ffmpeg-2.8.5.tar.bz2/libavformat/avformat.h -> ffmpeg-2.8.6.tar.bz2/libavformat/avformat.h
Changed
77
1
2
* if its AVClass is non-NULL, and the protocols layer. See the discussion on
3
* nesting in @ref avoptions documentation to learn how to access those.
4
*
5
+ * @section urls
6
+ * URL strings in libavformat are made of a scheme/protocol, a ':', and a
7
+ * scheme specific string. URLs without a scheme and ':' used for local files
8
+ * are supported but deprecated. "file:" should be used for local files.
9
+ *
10
+ * It is important that the scheme string is not taken from untrusted
11
+ * sources without checks.
12
+ *
13
+ * Note that some schemes/protocols are quite powerful, allowing access to
14
+ * both local and remote files, parts of them, concatenations of them, local
15
+ * audio and video devices and so on.
16
+ *
17
* @defgroup lavf_decoding Demuxing
18
* @{
19
* Demuxers read a media file and split it into chunks of data (@em packets). A
20
21
* cleanup.
22
*
23
* @section lavf_decoding_open Opening a media file
24
- * The minimum information required to open a file is its URL or filename, which
25
+ * The minimum information required to open a file is its URL, which
26
* is passed to avformat_open_input(), as in the following code:
27
* @code
28
- * const char *url = "in.mp3";
29
+ * const char *url = "file:in.mp3";
30
* AVFormatContext *s = NULL;
31
* int ret = avformat_open_input(&s, url, NULL, NULL);
32
* if (ret < 0)
33
34
*
35
* @param pb the bytestream to probe
36
* @param fmt the input format is put here
37
- * @param filename the filename of the stream
38
+ * @param url the url of the stream
39
* @param logctx the log context
40
* @param offset the offset within the bytestream to probe from
41
* @param max_probe_size the maximum probe buffer size (zero for default)
42
43
* AVERROR code otherwise
44
*/
45
int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt,
46
- const char *filename, void *logctx,
47
+ const char *url, void *logctx,
48
unsigned int offset, unsigned int max_probe_size);
49
50
/**
51
* Like av_probe_input_buffer2() but returns 0 on success
52
*/
53
int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
54
- const char *filename, void *logctx,
55
+ const char *url, void *logctx,
56
unsigned int offset, unsigned int max_probe_size);
57
58
/**
59
60
* May be a pointer to NULL, in which case an AVFormatContext is allocated by this
61
* function and written into ps.
62
* Note that a user-supplied AVFormatContext will be freed on failure.
63
- * @param filename Name of the stream to open.
64
+ * @param url URL of the stream to open.
65
* @param fmt If non-NULL, this parameter forces a specific input format.
66
* Otherwise the format is autodetected.
67
* @param options A dictionary filled with AVFormatContext and demuxer-private options.
68
69
*
70
* @note If you want to use custom IO, preallocate the format context and set its pb field.
71
*/
72
-int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options);
73
+int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options);
74
75
attribute_deprecated
76
int av_demuxer_open(AVFormatContext *ic);
77
ffmpeg-2.8.5.tar.bz2/libavformat/avio.c -> ffmpeg-2.8.6.tar.bz2/libavformat/avio.c
Changed
28
1
2
char sep= *++p;
3
char *key, *val;
4
p++;
5
+
6
+ if (strcmp(up->name, "subfile"))
7
+ ret = AVERROR(EINVAL);
8
+
9
while(ret >= 0 && (key= strchr(p, sep)) && p<key && (val = strchr(key+1, sep))){
10
*val= *key= 0;
11
- ret= av_opt_set(uc->priv_data, p, key+1, 0);
12
+ if (strcmp(p, "start") && strcmp(p, "end")) {
13
+ ret = AVERROR_OPTION_NOT_FOUND;
14
+ } else
15
+ ret= av_opt_set(uc->priv_data, p, key+1, 0);
16
if (ret == AVERROR_OPTION_NOT_FOUND)
17
av_log(uc, AV_LOG_ERROR, "Key '%s' not found.\n", p);
18
*val= *key= sep;
19
20
size_t proto_len = strspn(filename, URL_SCHEME_CHARS);
21
22
if (filename[proto_len] != ':' &&
23
- (filename[proto_len] != ',' || !strchr(filename + proto_len + 1, ':')) ||
24
+ (strncmp(filename, "subfile,", 8) || !strchr(filename + proto_len + 1, ':')) ||
25
is_dos_path(filename))
26
strcpy(proto_str, "file");
27
else
28
ffmpeg-2.8.5.tar.bz2/libavformat/brstm.c -> ffmpeg-2.8.6.tar.bz2/libavformat/brstm.c
Changed
22
1
2
codec->codec_id == AV_CODEC_ID_ADPCM_THP_LE) {
3
uint8_t *dst;
4
5
+ if (!b->adpc) {
6
+ av_log(s, AV_LOG_ERROR, "adpcm_thp requires ADPC chunk, but none was found.\n");
7
+ return AVERROR_INVALIDDATA;
8
+ }
9
+ if (!b->table) {
10
+ b->table = av_mallocz(32 * codec->channels);
11
+ if (!b->table)
12
+ return AVERROR(ENOMEM);
13
+ }
14
+
15
+ if (size > (INT_MAX - 32 - 4) ||
16
+ (32 + 4 + size) > (INT_MAX / codec->channels) ||
17
+ (32 + 4 + size) * codec->channels > INT_MAX - 8)
18
+ return AVERROR_INVALIDDATA;
19
if (av_new_packet(pkt, 8 + (32 + 4 + size) * codec->channels) < 0)
20
return AVERROR(ENOMEM);
21
dst = pkt->data;
22
ffmpeg-2.8.5.tar.bz2/libavformat/concat.c -> ffmpeg-2.8.6.tar.bz2/libavformat/concat.c
Changed
13
1
2
struct concat_data *data = h->priv_data;
3
struct concat_nodes *nodes;
4
5
- av_strstart(uri, "concat:", &uri);
6
+ if (!av_strstart(uri, "concat:", &uri)) {
7
+ av_log(h, AV_LOG_ERROR, "URL %s lacks prefix\n", uri);
8
+ return AVERROR(EINVAL);
9
+ }
10
11
for (i = 0, len = 1; uri[i]; i++) {
12
if (uri[i] == *AV_CAT_SEPARATOR) {
13
ffmpeg-2.8.5.tar.bz2/libavformat/ffmdec.c -> ffmpeg-2.8.6.tar.bz2/libavformat/ffmdec.c
Changed
26
1
2
ffm->dts = avio_rb64(pb);
3
frame_offset = avio_rb16(pb);
4
avio_read(pb, ffm->packet, ffm->packet_size - FFM_HEADER_SIZE);
5
- ffm->packet_end = ffm->packet + (ffm->packet_size - FFM_HEADER_SIZE - fill_size);
6
- if (ffm->packet_end < ffm->packet || frame_offset < 0)
7
+ if (ffm->packet_size < FFM_HEADER_SIZE + fill_size || frame_offset < 0) {
8
return -1;
9
+ }
10
+ ffm->packet_end = ffm->packet + (ffm->packet_size - FFM_HEADER_SIZE - fill_size);
11
/* if first packet or resynchronization packet, we must
12
handle it specifically */
13
if (ffm->first_packet || (frame_offset & 0x8000)) {
14
15
return 0;
16
}
17
ffm->first_packet = 0;
18
- if ((frame_offset & 0x7fff) < FFM_HEADER_SIZE)
19
+ if ((frame_offset & 0x7fff) < FFM_HEADER_SIZE) {
20
+ ffm->packet_end = ffm->packet_ptr;
21
return -1;
22
+ }
23
ffm->packet_ptr = ffm->packet + (frame_offset & 0x7fff) - FFM_HEADER_SIZE;
24
if (!header)
25
break;
26
ffmpeg-2.8.5.tar.bz2/libavformat/img2.h -> ffmpeg-2.8.6.tar.bz2/libavformat/img2.h
Changed
11
1
2
PT_GLOB_SEQUENCE,
3
PT_GLOB,
4
PT_SEQUENCE,
5
- PT_NONE
6
+ PT_NONE,
7
+ PT_DEFAULT
8
};
9
10
typedef struct VideoDemuxData {
11
ffmpeg-2.8.5.tar.bz2/libavformat/img2dec.c -> ffmpeg-2.8.6.tar.bz2/libavformat/img2dec.c
Changed
44
1
2
}
3
4
if (!s->is_pipe) {
5
+ if (s->pattern_type == PT_DEFAULT) {
6
+ if (s1->pb) {
7
+ s->pattern_type = PT_NONE;
8
+ } else
9
+ s->pattern_type = PT_GLOB_SEQUENCE;
10
+ }
11
+
12
if (s->pattern_type == PT_GLOB_SEQUENCE) {
13
s->use_glob = is_glob(s->path);
14
if (s->use_glob) {
15
16
int size[3] = { 0 }, ret[3] = { 0 };
17
AVIOContext *f[3] = { NULL };
18
AVCodecContext *codec = s1->streams[0]->codec;
19
+ AVOpenCallback open_func = s1->open_cb;
20
+
21
+ if (!open_func)
22
+ open_func = ffio_open2_wrapper;
23
24
if (!s->is_pipe) {
25
/* loop over input */
26
27
return AVERROR(EIO);
28
}
29
for (i = 0; i < 3; i++) {
30
- if (avio_open2(&f[i], filename, AVIO_FLAG_READ,
31
+ if (open_func(s1, &f[i], filename, AVIO_FLAG_READ,
32
&s1->interrupt_callback, NULL) < 0) {
33
if (i >= 1)
34
break;
35
36
{ "framerate", "set the video framerate", OFFSET(framerate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, 0, DEC },
37
{ "loop", "force loop over input file sequence", OFFSET(loop), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, DEC },
38
39
- { "pattern_type", "set pattern type", OFFSET(pattern_type), AV_OPT_TYPE_INT, {.i64=PT_GLOB_SEQUENCE}, 0, INT_MAX, DEC, "pattern_type"},
40
+ { "pattern_type", "set pattern type", OFFSET(pattern_type), AV_OPT_TYPE_INT, {.i64=PT_DEFAULT}, 0, INT_MAX, DEC, "pattern_type"},
41
{ "glob_sequence","select glob/sequence pattern type", 0, AV_OPT_TYPE_CONST, {.i64=PT_GLOB_SEQUENCE}, INT_MIN, INT_MAX, DEC, "pattern_type" },
42
{ "glob", "select glob pattern type", 0, AV_OPT_TYPE_CONST, {.i64=PT_GLOB }, INT_MIN, INT_MAX, DEC, "pattern_type" },
43
{ "sequence", "select sequence pattern type", 0, AV_OPT_TYPE_CONST, {.i64=PT_SEQUENCE }, INT_MIN, INT_MAX, DEC, "pattern_type" },
44
ffmpeg-2.8.5.tar.bz2/libavformat/ipmovie.c -> ffmpeg-2.8.6.tar.bz2/libavformat/ipmovie.c
Changed
29
1
2
3
/* send both the decode map and the video data together */
4
5
- if (av_new_packet(pkt, s->decode_map_chunk_size + s->video_chunk_size))
6
+ if (av_new_packet(pkt, 2 + s->decode_map_chunk_size + s->video_chunk_size))
7
return CHUNK_NOMEM;
8
9
if (s->has_palette) {
10
11
avio_seek(pb, s->decode_map_chunk_offset, SEEK_SET);
12
s->decode_map_chunk_offset = 0;
13
14
- if (avio_read(pb, pkt->data, s->decode_map_chunk_size) !=
15
+ AV_WL16(pkt->data, s->decode_map_chunk_size);
16
+ if (avio_read(pb, pkt->data + 2, s->decode_map_chunk_size) !=
17
s->decode_map_chunk_size) {
18
av_free_packet(pkt);
19
return CHUNK_EOF;
20
21
avio_seek(pb, s->video_chunk_offset, SEEK_SET);
22
s->video_chunk_offset = 0;
23
24
- if (avio_read(pb, pkt->data + s->decode_map_chunk_size,
25
+ if (avio_read(pb, pkt->data + 2 + s->decode_map_chunk_size,
26
s->video_chunk_size) != s->video_chunk_size) {
27
av_free_packet(pkt);
28
return CHUNK_EOF;
29
ffmpeg-2.8.5.tar.bz2/libavformat/isom.h -> ffmpeg-2.8.6.tar.bz2/libavformat/isom.h
Changed
9
1
2
void *audible_fixed_key;
3
int audible_fixed_key_size;
4
struct AVAES *aes_decrypt;
5
+ int enable_drefs;
6
} MOVContext;
7
8
int ff_mp4_read_descr_len(AVIOContext *pb);
9
ffmpeg-2.8.5.tar.bz2/libavformat/libquvi.c -> ffmpeg-2.8.6.tar.bz2/libavformat/libquvi.c
Changed
22
1
2
goto err_quvi_cleanup;
3
}
4
5
+ if (!qc->fmtctx->format_whitelist) {
6
+ qc->fmtctx->format_whitelist = av_strdup("avi,asf,flv,mov,mpeg,mpegts,aac,h264,hevc,mp3,ogg,matroska,mxf,mp2");
7
+ if (!qc->fmtctx->format_whitelist) {
8
+ avformat_free_context(qc->fmtctx);
9
+ qc->fmtctx = NULL;
10
+ goto err_quvi_cleanup;
11
+ }
12
+ }
13
+ if (strncmp(media_url, "http:", 5) && strncmp(media_url, "https:", 6)) {
14
+ avformat_free_context(qc->fmtctx);
15
+ qc->fmtctx = NULL;
16
+ goto err_quvi_cleanup;
17
+ }
18
+
19
ret = avformat_open_input(&qc->fmtctx, media_url, NULL, NULL);
20
if (ret < 0)
21
goto err_quvi_cleanup;
22
ffmpeg-2.8.5.tar.bz2/libavformat/mov.c -> ffmpeg-2.8.6.tar.bz2/libavformat/mov.c
Changed
39
1
2
3
if (sc->dref_id-1 < sc->drefs_count && sc->drefs[sc->dref_id-1].path) {
4
MOVDref *dref = &sc->drefs[sc->dref_id - 1];
5
- if (mov_open_dref(c, &sc->pb, c->fc->filename, dref,
6
- &c->fc->interrupt_callback) < 0)
7
- av_log(c->fc, AV_LOG_ERROR,
8
- "stream %d, error opening alias: path='%s', dir='%s', "
9
- "filename='%s', volume='%s', nlvl_from=%d, nlvl_to=%d\n",
10
+ if (c->enable_drefs) {
11
+ if (mov_open_dref(c, &sc->pb, c->fc->filename, dref,
12
+ &c->fc->interrupt_callback) < 0)
13
+ av_log(c->fc, AV_LOG_ERROR,
14
+ "stream %d, error opening alias: path='%s', dir='%s', "
15
+ "filename='%s', volume='%s', nlvl_from=%d, nlvl_to=%d\n",
16
+ st->index, dref->path, dref->dir, dref->filename,
17
+ dref->volume, dref->nlvl_from, dref->nlvl_to);
18
+ } else {
19
+ av_log(c->fc, AV_LOG_WARNING,
20
+ "Skipped opening external track: "
21
+ "stream %d, alias: path='%s', dir='%s', "
22
+ "filename='%s', volume='%s', nlvl_from=%d, nlvl_to=%d."
23
+ "Set enable_drefs to allow this.\n",
24
st->index, dref->path, dref->dir, dref->filename,
25
dref->volume, dref->nlvl_from, dref->nlvl_to);
26
+ }
27
} else {
28
sc->pb = c->fc->pb;
29
sc->pb_is_copied = 1;
30
31
"Fixed key used for handling Audible AAX files", OFFSET(audible_fixed_key),
32
AV_OPT_TYPE_BINARY, {.str="77214d4b196a87cd520045fd20a51d67"},
33
.flags = AV_OPT_FLAG_DECODING_PARAM },
34
+ { "enable_drefs", "Enable external track support.", OFFSET(enable_drefs), AV_OPT_TYPE_INT,
35
+ {.i64 = 0}, 0, 1, FLAGS },
36
{ NULL },
37
};
38
39
ffmpeg-2.8.5.tar.bz2/libavutil/opt.c -> ffmpeg-2.8.6.tar.bz2/libavutil/opt.c
Changed
16
1
2
while ((t = av_dict_get(*options, "", t, AV_DICT_IGNORE_SUFFIX))) {
3
ret = av_opt_set(obj, t->key, t->value, search_flags);
4
if (ret == AVERROR_OPTION_NOT_FOUND)
5
- av_dict_set(&tmp, t->key, t->value, 0);
6
- else if (ret < 0) {
7
+ ret = av_dict_set(&tmp, t->key, t->value, 0);
8
+ if (ret < 0) {
9
av_log(obj, AV_LOG_ERROR, "Error setting option %s to value %s.\n", t->key, t->value);
10
- break;
11
+ av_dict_free(&tmp);
12
+ return ret;
13
}
14
ret = 0;
15
}
16
ffmpeg-2.8.5.tar.bz2/libswscale/swscale.c -> ffmpeg-2.8.6.tar.bz2/libswscale/swscale.c
Changed
22
1
2
const uint8_t *src2[4];
3
uint8_t *dst2[4];
4
uint8_t *rgb0_tmp = NULL;
5
+ int macro_height = isBayer(c->srcFormat) ? 2 : (1 << c->chrSrcVSubSample);
6
7
if (!srcStride || !dstStride || !dst || !srcSlice) {
8
av_log(c, AV_LOG_ERROR, "One of the input parameters to sws_scale() is NULL, please check the calling code\n");
9
return 0;
10
}
11
12
+ if ((srcSliceY & (macro_height-1)) ||
13
+ ((srcSliceH& (macro_height-1)) && srcSliceY + srcSliceH != c->srcH) ||
14
+ srcSliceY + srcSliceH > c->srcH) {
15
+ av_log(c, AV_LOG_ERROR, "Slice parameters %d, %d are invalid\n", srcSliceY, srcSliceH);
16
+ return AVERROR(EINVAL);
17
+ }
18
+
19
if (c->gamma_flag && c->cascaded_context[0]) {
20
21
22
ffmpeg-2.8.5.tar.bz2/libswscale/swscale_unscaled.c -> ffmpeg-2.8.6.tar.bz2/libswscale/swscale_unscaled.c
Changed
43
1
2
default: return 0;
3
}
4
5
+ av_assert0(srcSliceH > 1);
6
+
7
copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
8
srcPtr += 2 * srcStride[0];
9
dstPtr += 2 * dstStride[0];
10
11
dstPtr += 2 * dstStride[0];
12
}
13
14
- copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
15
+ if (i + 1 == srcSliceH) {
16
+ copy(srcPtr, -srcStride[0], dstPtr, -dstStride[0], c->srcW);
17
+ } else if (i < srcSliceH)
18
+ copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
19
return srcSliceH;
20
}
21
22
23
default: return 0;
24
}
25
26
+ av_assert0(srcSliceH > 1);
27
+
28
copy(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->srcW, c->input_rgb2yuv_table);
29
srcPtr += 2 * srcStride[0];
30
dstY += 2 * dstStride[0];
31
32
dstV += dstStride[1];
33
}
34
35
- copy(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->srcW, c->input_rgb2yuv_table);
36
+ if (i + 1 == srcSliceH) {
37
+ copy(srcPtr, -srcStride[0], dstY, dstU, dstV, -dstStride[0], c->srcW, c->input_rgb2yuv_table);
38
+ } else if (i < srcSliceH)
39
+ copy(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->srcW, c->input_rgb2yuv_table);
40
return srcSliceH;
41
}
42
43
ffmpeg-2.8.5.tar.bz2/libswscale/x86/rgb2rgb_template.c -> ffmpeg-2.8.6.tar.bz2/libswscale/x86/rgb2rgb_template.c
Changed
24
1
2
dst+= dstStride;
3
4
for (y=1; y<srcHeight; y++) {
5
- const x86_reg mmxSize= srcWidth&~15;
6
+ x86_reg mmxSize= srcWidth&~15;
7
+
8
+ if (mmxSize) {
9
__asm__ volatile(
10
"mov %4, %%"REG_a" \n\t"
11
"movq "MANGLE(mmx_ff)", %%mm0 \n\t"
12
13
NAMED_CONSTRAINTS_ADD(mmx_ff)
14
: "%"REG_a
15
);
16
+ } else {
17
+ mmxSize = 1;
18
+ dst[0] = (src[0] * 3 + src[srcStride]) >> 2;
19
+ dst[dstStride] = (src[0] + 3 * src[srcStride]) >> 2;
20
+ }
21
22
for (x=mmxSize-1; x<srcWidth-1; x++) {
23
dst[2*x +1]= (3*src[x+0] + src[x+srcStride+1])>>2;
24
Refresh
No build results available
Refresh
No rpmlint results available
Request History
enzokiel created request about 9 years ago
Update to version 2.6.11
enzokiel accepted request about 9 years ago
OK
ismdon wrote about 9 years ago
Awesome!