Overview

Request 2436 (accepted)

Update to version 2.6.11

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

avidemux3.changes Changed
x
 
1
@@ -1,4 +1,21 @@
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
@@ -16,25 +16,31 @@
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
@@ -44,6 +50,7 @@
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
@@ -128,12 +135,17 @@
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
@@ -171,35 +183,15 @@
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
@@ -212,13 +204,13 @@
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
@@ -229,7 +221,7 @@
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
@@ -266,9 +258,9 @@
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
@@ -277,16 +269,16 @@
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
@@ -298,6 +290,9 @@
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
@@ -308,19 +303,26 @@
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
@@ -332,8 +334,6 @@
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
@@ -345,13 +345,9 @@
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
@@ -477,6 +473,7 @@
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
@@ -485,6 +482,7 @@
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
@@ -540,98 +538,38 @@
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
@@ -0,0 +1,18 @@
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
@@ -17,25 +17,6 @@
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
@@ -1,6 +1,6 @@
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
@@ -23,16 +23,6 @@
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
@@ -1,6 +1,6 @@
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
@@ -23,16 +23,6 @@
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
@@ -1,12 +0,0 @@
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
@@ -0,0 +1,12 @@
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
@@ -1,12 +0,0 @@
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,6 +2,51 @@
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
@@ -1,1 +1,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
@@ -1,1 +1,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
@@ -31,7 +31,7 @@
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
@@ -416,6 +416,23 @@
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
@@ -572,8 +572,16 @@
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
@@ -525,7 +525,7 @@
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
@@ -41,8 +41,6 @@
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
@@ -54,8 +52,11 @@
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
@@ -1021,7 +1021,7 @@
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
@@ -43,6 +43,7 @@
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
@@ -174,7 +175,7 @@
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
@@ -231,7 +232,8 @@
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
@@ -321,6 +323,7 @@
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
@@ -38,6 +38,7 @@
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
@@ -949,7 +950,7 @@
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
@@ -987,12 +988,15 @@
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
@@ -1000,8 +1004,8 @@
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
@@ -1695,11 +1695,15 @@
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
@@ -1968,7 +1968,7 @@
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
@@ -145,9 +145,6 @@
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
@@ -2783,6 +2783,11 @@
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
@@ -193,6 +193,12 @@
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
@@ -105,7 +105,7 @@
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
@@ -1004,8 +1004,13 @@
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
@@ -1253,7 +1258,7 @@
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
@@ -573,6 +573,11 @@
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
@@ -789,6 +794,11 @@
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
@@ -32,6 +32,7 @@
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
@@ -82,7 +83,8 @@
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
@@ -167,7 +167,7 @@
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
@@ -178,6 +178,9 @@
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
@@ -187,8 +190,13 @@
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
@@ -967,7 +975,7 @@
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
@@ -989,7 +997,11 @@
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
@@ -1136,14 +1148,15 @@
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
@@ -1212,14 +1225,15 @@
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
@@ -1276,8 +1290,20 @@
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
@@ -1413,13 +1439,21 @@
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
@@ -78,6 +78,18 @@
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
@@ -88,10 +100,10 @@
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
@@ -2044,7 +2056,7 @@
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
@@ -2053,14 +2065,14 @@
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
@@ -2071,7 +2083,7 @@
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
@@ -2082,7 +2094,7 @@
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
@@ -156,9 +156,16 @@
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
@@ -243,7 +250,7 @@
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
@@ -389,6 +389,20 @@
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
@@ -65,7 +65,10 @@
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
@@ -114,9 +114,10 @@
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
@@ -132,8 +133,10 @@
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
@@ -34,7 +34,8 @@
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
@@ -224,6 +224,13 @@
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
@@ -369,6 +376,10 @@
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
@@ -390,7 +401,7 @@
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
@@ -550,7 +561,7 @@
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
@@ -156,7 +156,7 @@
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
@@ -178,7 +178,8 @@
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
@@ -187,7 +188,7 @@
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
@@ -209,6 +209,7 @@
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
@@ -95,6 +95,20 @@
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
@@ -3002,13 +3002,23 @@
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
@@ -4925,6 +4935,8 @@
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
@@ -1461,10 +1461,11 @@
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
@@ -1044,12 +1044,20 @@
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
@@ -1059,6 +1059,8 @@
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
@@ -1069,7 +1071,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
@@ -1105,6 +1110,8 @@
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
@@ -1119,7 +1126,10 @@
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
@@ -1434,7 +1434,9 @@
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
@@ -1481,6 +1483,11 @@
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


İsmail Dönmez

ismdon wrote about 9 years ago

Awesome!

Request History
enzokiel's avatar

enzokiel created request about 9 years ago

Update to version 2.6.11


enzokiel's avatar

enzokiel accepted request about 9 years ago

OK