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.
Changes of Revision 3
avidemux3.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Mon Dec 09 2013 - joerg.lorenzen@ki.tng.de
4
+- Update to version 2.6.7
5
+ * [MKV] Fix seeking in h264
6
+ * [TS/H264] Split on NALU boundaries, it was off by one byte
7
+ * [TS/AAC] Add support for AAC/LC/SBR
8
+ * [MOV/MP4] Correct management of PCM/8Bits audio track
9
+ * [Images] Fixed import of bmp and jpg
10
+ * [Build] Support for newer cmake (ajschult)
11
+ * [Build] Better RPM generation (mit)
12
+ * [Auto/PSP] Fixed scripts (LJ)
13
+-------------------------------------------------------------------
14
Sat Nov 02 2013 - joerg.lorenzen@ki.tng.de
15
- changes in spec file to enable build for openSUSE 11.4 and 12.1
16
-------------------------------------------------------------------
17
avidemux3.spec
Changed
41
1
2
3
Name: avidemux3
4
Summary: Graphical video editing and transcoding tool
5
-Version: 2.6.6
6
+Version: 2.6.7
7
Release: 1
8
Url: http://www.avidemux.org
9
Source0: avidemux_%{version}.tar.gz
10
11
BuildRequires: freetype2-devel
12
BuildRequires: mozilla-xulrunner192-devel
13
%endif
14
-%if 0%{?suse_version} < 1220
15
-BuildRequires: xorg-x11-libXv-devel
16
-BuildRequires: xorg-x11-libXmu-devel
17
-%else
18
-BuildRequires: libXv-devel
19
-BuildRequires: libXmu-devel
20
-%endif
21
+BuildRequires: pkgconfig(xv)
22
+BuildRequires: pkgconfig(xmu)
23
BuildRequires: libsamplerate-devel
24
BuildRequires: jack-audio-connection-kit-devel
25
BuildRequires: libass-devel
26
27
28
# Video out
29
BuildRequires: SDL-devel >= 1.2.7
30
-%if 0%{?suse_version} < 1220
31
-BuildRequires: Mesa-devel
32
-%else
33
-BuildRequires: Mesa-libGL-devel
34
-BuildRequires: Mesa-libGLU-devel
35
-%endif
36
+BuildRequires: pkgconfig(gl)
37
+BuildRequires: pkgconfig(glu)
38
BuildRequires: libvdpau-devel
39
40
# Audio Codecs
41
avidemux-linking.patch
Changed
49
1
2
---- avidemux/cli/CMakeLists.txt.orig 2013-02-21 23:07:01.082035229 +0100
3
-+++ avidemux/cli/CMakeLists.txt 2013-02-21 23:07:01.097034913 +0100
4
+--- avidemux/cli/CMakeLists.txt.orig 2013-12-06 07:33:08.000000000 +0100
5
++++ avidemux/cli/CMakeLists.txt 2013-12-09 11:37:09.197249000 +0100
6
@@ -102,6 +102,16 @@
7
)
8
9
10
# External libs
11
###########################################
12
# gettext
13
---- avidemux/gtk/CMakeLists.txt.orig 2013-02-21 23:07:03.613981892 +0100
14
-+++ avidemux/gtk/CMakeLists.txt 2013-02-21 23:07:03.625981640 +0100
15
+--- avidemux/gtk/CMakeLists.txt.orig 2013-12-06 07:33:08.000000000 +0100
16
++++ avidemux/gtk/CMakeLists.txt 2013-12-09 11:37:11.447018600 +0100
17
@@ -102,6 +102,16 @@
18
)
19
20
21
# External libs
22
###########################################
23
# gettext
24
---- avidemux/qt4/CMakeLists.txt.orig 2013-02-21 23:07:06.120929082 +0100
25
-+++ avidemux/qt4/CMakeLists.txt 2013-02-21 23:07:06.134928787 +0100
26
+--- avidemux/qt4/CMakeLists.txt.orig 2013-12-06 07:33:08.000000000 +0100
27
++++ avidemux/qt4/CMakeLists.txt 2013-12-09 11:37:13.759281800 +0100
28
@@ -140,6 +140,16 @@
29
)
30
31
32
# External libs
33
###########################################
34
# gettext
35
---- avidemux/qt4/ADM_jobs/src/CMakeLists.txt.orig 2013-02-21 23:07:08.494879075 +0100
36
-+++ avidemux/qt4/ADM_jobs/src/CMakeLists.txt 2013-02-21 23:07:08.507878800 +0100
37
+--- avidemux/qt4/ADM_jobs/src/CMakeLists.txt.orig 2013-12-06 07:33:08.000000000 +0100
38
++++ avidemux/qt4/ADM_jobs/src/CMakeLists.txt 2013-12-09 11:37:16.040298200 +0100
39
@@ -90,6 +90,16 @@
40
TARGET_LINK_LIBRARIES(avidemux3_jobs ADM_coreJobs)
41
TARGET_LINK_LIBRARIES(avidemux3_jobs ADM_coreUtils6)
42
43
+)
44
+
45
#
46
+ target_link_libraries(avidemux3_jobs "-lm -lstdc++")
47
#
48
-
49
avidemux_2.6.6.tar.gz/admin
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/audio
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/codecwrite
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/dialogFactory
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/dialogFactory/unit
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/functiontest
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/utils
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/videofunc
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_audioFilter_old
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_codecs
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_filter
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_infoExtractor
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_mpegIndexer
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_ocr
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_video
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/common/ADM_videoFilter
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/qt4/ADM_userInterfaces/ADM_filters/icons
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/xpm
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux/xpm/build
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/include
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/src
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/src/Source
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/src/Source/JSONDefs
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreMuxer/include/ADM_audioClock.h
Deleted
32
1
2
-/**
3
- *
4
- *
5
- *
6
- *
7
- */
8
-#ifndef ADM_audioClock_H
9
-#define ADM_audioClock_H
10
-
11
-#include "ADM_coreMuxer6_export.h"
12
-
13
-class ADM_COREMUXER6_EXPORT audioClock
14
-{
15
- protected:
16
- uint32_t _frequency;
17
- uint64_t _nbSamples;
18
- uint64_t _baseClock;
19
-
20
- public:
21
- audioClock(uint32_t fq);
22
- bool advanceBySample(uint32_t samples);
23
- uint64_t getTimeUs(void);
24
- bool setTimeUs(uint64_t clk);
25
-
26
-
27
-
28
-};
29
-
30
-
31
-#endif
32
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreSqlite3
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/doxygen
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/html
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/man
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/man/man1
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/base
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/changelog
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/releasenotes
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/tool
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/libutil
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_dummy
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_flv
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_mpeg
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_mpegFF
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_ogm
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/xml
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ASharp
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ASharp/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ASharp/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AddBorders
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Ass
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Ass/ADM_libass
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AvisynthResize
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AvisynthResize/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AvisynthResize/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/BlackenBorders
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ChromaShift
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ChromaShift/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ChromaShift/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Contrast
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Contrast/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Contrast/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Crop
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Crop/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Crop/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Decimate
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/DgBob
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Eq2
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Eq2/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Eq2/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/FastConvolution
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/FluxSmooth
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Hue
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Hue/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Hue/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/KeepField
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/KernelDeint
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/LargeMedian
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Logo
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/LumaOnly
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MPDelogo
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MPDelogo/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MSharpen
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerDenoise3D
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerResize
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerResize/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerResize/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ResampleFps
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Rotate
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/SwapUV
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Telecide
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Unblend
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/VerticalFlip
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Yadif
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/colorYUV
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/colorYUV/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/lavDeinterlace
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters6_openGl/sample
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/cmake/patches
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/debian
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_ac3
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_ac3/ADM_liba52
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_amrnb
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_dca
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_faad
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_mad
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_mad/ADM_libMad
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_vorbis
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Alsa
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Arts
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/AudioCore
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Esd
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Jack
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Oss
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/PulseAudioSimple
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Sdl
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Win32
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/aften
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/faac
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/lame
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/lavcodec
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/pcm
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/twolame
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/twolame/ADM_libtwolame
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/vorbis
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Flv
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Matroska
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Mp4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/MpegPS
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/MpegTS
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/OpenDml
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Pictures
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerAvi
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerDummy
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerFlv
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerMp4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerRaw
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_dummy
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_flv
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_mpeg
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_mpegFF
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_ogm
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264/xml
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_xvid
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_xvid/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_xvid/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/huff
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/jpeg
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/png
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264/xml
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/yv12
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ASharp
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ASharp/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ASharp/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AddBorders
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Animated
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Ass
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Ass/ADM_libass
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AvisynthResize
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AvisynthResize/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AvisynthResize/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/BlackenBorders
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/BlendRemover
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/CNR2
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/CNR2/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Chroma
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ChromaShift
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ChromaShift/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ChromaShift/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Clean
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Contrast
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Contrast/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Contrast/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Crop
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Crop/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Crop/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Decimate
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Deinterlace
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Delta
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Denoise
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/DgBob
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/DropOut
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Eq2
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Eq2/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Eq2/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Equalizer
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Equalizer/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Fade
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/FastConvolution
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/FluxSmooth
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ForcedPP
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Hue
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Hue/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Hue/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/KeepField
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/KernelDeint
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/LargeMedian
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Logo
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/LumaOnly
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MPDelogo
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MPDelogo/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MSharpen
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MSmooth
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/McDeint
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Mosaic
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerDenoise3D
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerResize
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerResize/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerResize/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/PalShift
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Pulldown
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/PulldownRemoval
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ResampleFps
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Reverse
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Rotate
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Soften
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Srt
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Srt/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Srt/qt4
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Stabilize
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/SwapField
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/SwapUV
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/TIsophote
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/TIsophote/original
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Tdeint
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Telecide
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/TemporalCleaner
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Unblend
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/VerticalFlip
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Whirl
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Yadif
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/colorYUV
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/colorYUV/gtk
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/lavDeinterlace
Deleted
2
1
-(directory)
2
avidemux_2.6.6.tar.gz/autononreg/py/avidemux/pyFrequency.py -> avidemux_2.6.7.tar.gz/autononreg/py/avidemux/pyFrequency.py
Changed
28
1
2
goodFq=48000
3
goodChannels=2
4
goodEncoding=10*8+5
5
+goodBitrate=128
6
if(adm.loadVideo(file)==0):
7
displayError("Cannot load file")
8
9
10
-if(adm.audioFrequency!=goodFq):
11
+if(adm.audioFrequency(0)!=goodFq):
12
gui.displayError("fq ",str(goodFq)+" vs "+str(adm.audioFrequency))
13
14
-if(adm.audioChannels!=goodChannels):
15
- gui.displayError("channels ",str(goodChannels)+" vs "+str(adm.audioChannels))
16
+if(adm.audioBitrate(0)!=goodBitrate):
17
+ gui.displayError("Bitrate ",str(goodBitrate)+" vs "+str(adm.audioBitrate(0)))
18
19
-if(adm.audioEncoding!=goodEncoding):
20
- gui.displayError("encoding ",str(goodEncoding)+" vs "+str(adm.audioEncoding))
21
+if(adm.audioChannels(0)!=goodChannels):
22
+ gui.displayError("channels ",str(goodChannels)+" vs "+str(adm.audioChannels(0)))
23
+
24
+if(adm.audioEncoding(0)!=goodEncoding):
25
+ gui.displayError("encoding ",str(goodEncoding)+" vs "+str(adm.audioEncoding(0)))
26
27
print("All fine...")
28
avidemux_2.6.6.tar.gz/avidemux/cli/ADM_userInterfaces/ADM_filters/filter_none.cpp -> avidemux_2.6.7.tar.gz/avidemux/cli/ADM_userInterfaces/ADM_filters/filter_none.cpp
Changed
9
1
2
+#if defined(__sun__)
3
+/*
4
+ this is to avoid an empty library, with no symbols, raising
5
+ "ld: elf error: file libADM_filtersCli6.a: elf_getarsym"
6
+*/
7
+int Sun_ar_require_a_symbol_here_4_cli = 0;
8
+#endif /* : defined(__sun__) */
9
avidemux_2.6.6.tar.gz/avidemux/cli/cliPackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux/cli/cliPackageRpm.cmake
Changed
24
1
2
SET(CPACK_RPM_PACKAGE_ARCHITECTURE "i386")
3
ENDIF (X86_64_SUPPORTED)
4
# Mandatory
5
+SET(CPACK_RPM_PACKAGE_VERSION "${AVIDEMUX_VERSION}")
6
+SET(CPACK_RPM_PACKAGE_RELEASE "1.r${ADM_SUBVERSION}.bootstrap")
7
+SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2+")
8
SET(CPACK_RPM_PACKAGE_VENDOR "mean")
9
-SET(CPACK_RPM_PACKAGE_DESCRIPTION "Simple video editor,main program cli version ")
10
+SET(CPACK_RPM_PACKAGE_DESCRIPTION "Simple video editor,main program cli version and development files.")
11
+SET(CPACK_RPM_PACKAGE_GROUP "Applications/Multimedia")
12
13
# Some more infos
14
-SET(CPACK_PACKAGE_NAME "avidemux3-cli")
15
-SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
16
+SET(CPACK_RPM_PACKAGE_SUMMARY "CLI for avidemux")
17
+SET(CPACK_RPM_PACKAGE_URL "http://www.avidemux.org")
18
+SET(CPACK_RPM_PACKAGE_REQUIRES "avidemux3-core%{?_isa} >= ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}")
19
20
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
21
#
22
-
23
include(CPack)
24
avidemux_2.6.6.tar.gz/avidemux/common/ADM_editor/src/ADM_edRenderInternal.cpp -> avidemux_2.6.7.tar.gz/avidemux/common/ADM_editor/src/ADM_edRenderInternal.cpp
Changed
27
1
2
uint8_t ret = 0;
3
EditorCache *cache;
4
ADMImage *result;
5
- uint32_t flags;
6
+ uint32_t flags,flagsNext=0;
7
ADMCompressedImage img;
8
9
// PlaceHolder...
10
11
vidHeader *demuxer=vid->_aviheader;
12
cache=vid->_videoCache;
13
ADM_assert(cache);
14
- // Make sure frame is an intra
15
+ // Make sure frame is an intra, or the next field is intra
16
demuxer->getFlags(frame,&flags);
17
- ADM_assert(flags&AVI_KEY_FRAME);
18
+ demuxer->getFlags(frame+1,&flagsNext);
19
+
20
+ // in case of field encoding, only the 2nd field might be
21
+ // flagged as intra
22
+ uint32_t twoFlags=flags | flagsNext;
23
+ ADM_assert(twoFlags&AVI_KEY_FRAME);
24
25
bool found=false;
26
vid->lastSentFrame=frame;
27
avidemux_2.6.6.tar.gz/avidemux/common/ADM_editor/src/ADM_edVideoCopy.cpp -> avidemux_2.6.7.tar.gz/avidemux/common/ADM_editor/src/ADM_edVideoCopy.cpp
Changed
61
1
2
}
3
}
4
}
5
+ aprintf("Bframe droppable=%d, lastSentFrame=%d\n",seg->_dropBframes,vid->lastSentFrame);
6
// after a segment switch, we may have some frames from "the past"
7
// if the cut point is not a keyframe, drop them
8
#if 1
9
- if(_currentSegment && img->demuxerDts!=ADM_NO_PTS)
10
+ if( img->demuxerDts!=ADM_NO_PTS)
11
{
12
- if(img->demuxerDts<seg->_refStartDts)
13
+ bool drop=false;
14
+ if(_currentSegment && img->demuxerDts<seg->_refStartDts)
15
{
16
- ADM_info("Frame %d is in the past for this segment (%s)",vid->lastSentFrame,ADM_us2plain(img->demuxerPts));
17
- ADM_info("vs %s\n",ADM_us2plain(seg->_refStartDts));
18
- goto againGet;
19
+ ADM_info("Frame %d is in the past for this segment (%s)",vid->lastSentFrame,ADM_us2plain(img->demuxerDts));
20
+ ADM_info("vs refstartdts %s\n",ADM_us2plain(seg->_refStartDts));
21
+ ADM_info(" dts=%llu, ref=%llu\n",img->demuxerDts,seg->_refStartDts);
22
+ drop=true;
23
+ }
24
+ // Seeking is not accurate when cutting on non intra
25
+ // we might have some frames that are clearly too early , even in seg0
26
+ if(img->demuxerPts!=ADM_NO_PTS)
27
+ {
28
+ if(img->demuxerPts+seg->_startTimeUs<seg->_refStartTimeUs)
29
+ {
30
+ ADM_info("Frame %d is in the past for this segment -bis (%s)",vid->lastSentFrame,ADM_us2plain(img->demuxerPts));
31
+ ADM_info("vs refstartdts %s\n",ADM_us2plain(seg->_refStartTimeUs));
32
+ ADM_info(" pts=%llu, startTime=%llu, _refStartTimeUs=%llu\n",img->demuxerPts,seg->_startTimeUs,seg->_refStartTimeUs);
33
+ drop=true;
34
+ }
35
}
36
+ if(drop)
37
+ goto againGet;
38
+
39
}
40
#endif
41
// Need to switch seg ?
42
43
//
44
//**
45
// ADM_info("Frame : Flags :%X, DTS:%"PRId64" PTS=%"PRId64" nextDts=%"PRId64" tail=%"PRId64"\n",img->flags,img->demuxerDts/1000,img->demuxerPts/1000,_nextFrameDts,tail);
46
- if(img->demuxerDts!= ADM_NO_PTS && img->demuxerDts>=tail) goto nextSeg;
47
- if(img->demuxerPts!= ADM_NO_PTS && img->demuxerPts>=tail) goto nextSeg;
48
+ if(img->demuxerDts!= ADM_NO_PTS && img->demuxerDts>=tail)
49
+ {
50
+ aprintf("DTS is too late, switching (%s)\n",ADM_us2plain(img->demuxerDts));
51
+ goto nextSeg;
52
+ }
53
+ if(img->demuxerPts!= ADM_NO_PTS && img->demuxerPts>=tail)
54
+ {
55
+ aprintf("PTS is too late, switching (%s)\n",ADM_us2plain(img->demuxerDts));
56
+ goto nextSeg;
57
+ }
58
59
// Since we rely on PTS for seeking, frame 0 might be at PTS 0, in that case the matching dts would be <0
60
// so the caller can delay everything but recalibrate will clamp the value
61
avidemux_2.6.6.tar.gz/avidemux/common/ADM_editor/src/ADM_segment.cpp -> avidemux_2.6.7.tar.gz/avidemux/common/ADM_editor/src/ADM_segment.cpp
Changed
15
1
2
ADM_error("Cannot find frame with time %"PRIu64"ms\n",seekTime/1000);
3
ADM_assert(0);
4
}
5
- if(!(flags & AVI_KEY_FRAME))
6
+ uint32_t next;
7
+ v->_aviheader->getFlags(frame+1,&next);
8
+ if(!((next | flags) & AVI_KEY_FRAME)) // The 2nd field might be keyframe
9
{
10
- ADM_warning("Seeking to a non keyframe (time=%s)\n",ADM_us2plain(seekTime));
11
+ ADM_warning("Seeking to a non keyframe (time=%s), flags=%x, flagsNext=%x\n",ADM_us2plain(seekTime),flags,next);
12
ADM_warning("This is not normal unless you start frame is not a keyframe\n");
13
}
14
return frame;
15
avidemux_2.6.6.tar.gz/avidemux/common/ADM_videoCodec/src/ADM_ffmpeg_vdpau.cpp -> avidemux_2.6.7.tar.gz/avidemux/common/ADM_videoCodec/src/ADM_ffmpeg_vdpau.cpp
Changed
11
1
2
#include "ADM_codecVdpau.h"
3
#include "ADM_threads.h"
4
5
+#if defined(__sun__)
6
+#include <alloca.h>
7
+#endif /* : defined(__sun__) */
8
9
static bool vdpauWorking=false;
10
static admMutex surfaceMutex;
11
avidemux_2.6.6.tar.gz/avidemux/gtk/gtkPackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux/gtk/gtkPackageRpm.cmake
Changed
27
1
2
ELSE (X86_64_SUPPORTED)
3
SET(CPACK_RPM_PACKAGE_ARCHITECTURE "i386")
4
ENDIF (X86_64_SUPPORTED)
5
-# Mandatory
6
+# Mandatory
7
+SET(CPACK_RPM_PACKAGE_VERSION "${AVIDEMUX_VERSION}")
8
+SET(CPACK_RPM_PACKAGE_RELEASE "1.r${ADM_SUBVERSION}.bootstrap")
9
+SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2+")
10
SET(CPACK_RPM_PACKAGE_VENDOR "mean")
11
SET(CPACK_RPM_PACKAGE_DESCRIPTION "Simple video editor,main program gtk version ")
12
-# Some more infos
13
-#
14
-SET(CPACK_PACKAGE_NAME "avidemux3-gtk")
15
-#
16
-SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
17
+SET(CPACK_RPM_PACKAGE_GROUP "Applications/Multimedia")
18
+# Some more infos
19
+SET(CPACK_RPM_PACKAGE_SUMMARY "GTK interface for avidemux")
20
+SET(CPACK_RPM_PACKAGE_URL "http://www.avidemux.org")
21
+SET(CPACK_RPM_PACKAGE_REQUIRES "avidemux3-core%{?_isa} >= ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}")
22
+SET(CPACK_RPM_PACKAGE_PROVIDES "avidemux3-gui = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}")
23
+
24
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
25
include(CPack)
26
27
avidemux_2.6.6.tar.gz/avidemux/qt4/ADM_jobs/src/CMakeLists.txt -> avidemux_2.6.7.tar.gz/avidemux/qt4/ADM_jobs/src/CMakeLists.txt
Changed
10
1
2
TARGET_LINK_LIBRARIES(avidemux3_jobs ADM_coreUtils6)
3
TARGET_LINK_LIBRARIES(avidemux3_jobs ADM_core6)
4
#
5
+target_link_libraries(avidemux3_jobs "-lm -lstdc++")
6
+#
7
#
8
9
10
avidemux_2.6.6.tar.gz/avidemux/qt4/CMakeLists.txt -> avidemux_2.6.7.tar.gz/avidemux/qt4/CMakeLists.txt
Changed
10
1
2
TARGET_LINK_LIBRARIES(avidemux3_qt4 ADM_core6)
3
TARGET_LINK_LIBRARIES(avidemux3_qt4 ADM_core6)
4
endif(CROSS)
5
+
6
+target_link_libraries(avidemux3_qt4 "-lm -lstdc++")
7
#
8
# i18n
9
#
10
avidemux_2.6.6.tar.gz/avidemux/qt4/qt4PackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux/qt4/qt4PackageRpm.cmake
Changed
23
1
2
SET(CPACK_RPM_PACKAGE_ARCHITECTURE "i386")
3
ENDIF (X86_64_SUPPORTED)
4
# Mandatory
5
+SET(CPACK_RPM_PACKAGE_VERSION "${AVIDEMUX_VERSION}")
6
+SET(CPACK_RPM_PACKAGE_RELEASE "1.r${ADM_SUBVERSION}.bootstrap")
7
+SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2+")
8
+SET(CPACK_RPM_PACKAGE_GROUP "Applications/Multimedia")
9
SET(CPACK_RPM_PACKAGE_VENDOR "mean")
10
SET(CPACK_RPM_PACKAGE_DESCRIPTION "Simple video editor,main program qt4 version ")
11
12
# Some more infos
13
+SET(CPACK_RPM_PACKAGE_SUMMARY "Qt interface for avidemux")
14
+SET(CPACK_RPM_PACKAGE_PROVIDES "avidemux3-gui = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}")
15
+SET(CPACK_RPM_PACKAGE_REQUIRES "avidemux3-core%{?_isa} >= ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}")
16
#
17
-SET(CPACK_PACKAGE_NAME "avidemux3-qt4")
18
-#
19
-SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
20
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
21
22
include(CPack)
23
avidemux_2.6.6.tar.gz/avidemux/winInstaller/Build Info.txt -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/Build Info.txt
Changed
7
1
2
-Avidemux 2.6.4
3
+Avidemux 2.6.7
4
-----------------------
5
Built using GCC 4.8.1
6
Packaged with NSIS 2.46.
7
avidemux_2.6.6.tar.gz/avidemux/winInstaller/Change Log.html -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/Change Log.html
Changed
22
1
2
<body>
3
<div id="inner">
4
<h1>What's New in Avidemux</h1>
5
-<h2>2.6.6</h2>
6
+<h2>2.6.7</h2>
7
+ <ul>
8
+ <li>Windows : Better management of non ascii filename with x264</li>
9
+ <li>Images : Better support for bmp and jpeg</li>
10
+ <li>Auto : Fixed PSP auto script (LJ)</li>
11
+ <li>Packages: Better RPM generation (mit)</li>
12
+ <li>Audio : Correct handling of 8Bits PCM in mp4/mov</li>
13
+ <li>Build : Support for cmake 2.8.12 (2.8.13) (ajschult)</li>
14
+ <li>mkv : Fixed seeking in mkv/h264</li>
15
+ <li>TS/Audio: Extend support for SBR in AAC/LATM</li>
16
+ <li>TS/H264 : Split at NALU boundaries, sometimes it was off by one byte</li>
17
+ </ul>
18
+ <h2>2.6.6</h2>
19
<ul>
20
<li>Windows : Fixed mp4 muxer </li>
21
<li>Windows : Patched x264 to use utf8</li>
22
avidemux_2.6.6.tar.gz/avidemux/winInstaller/What's New.html -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/What's New.html
Changed
22
1
2
<div id="inner">
3
<h1>What's New in Avidemux</h1>
4
<ul>
5
- <li>Windows : Fixed mp4 muxer </li>
6
- <li>Windows : Patched x264 to use utf8</li>
7
- <li>Mov : Fixed PCM/LPCM audio track management</li>
8
- <li>Bumped x264 preset to v2 to make sure invalid qmax/qmin presets were not used any longer</li>
9
- <li>Languages support for audio tracks</li>
10
+ <li>Windows : Better management of non ascii filename with x264</li>
11
+ <li>Images : Better support for bmp and jpeg</li>
12
+ <li>Auto : Fixed PSP auto script (LJ)</li>
13
+ <li>Packages: Better RPM generation (mit)</li>
14
+ <li>Audio : Correct handling of 8Bits PCM in mp4/mov</li>
15
+ <li>Build : Support for cmake 2.8.12 (2.8.13) (ajschult)</li>
16
+ <li>mkv : Fixed seeking in mkv/h264</li>
17
+ <li>TS/Audio: Extend support for SBR in AAC/LATM</li>
18
+ <li>TS/H264 : Split at NALU boundaries, sometimes it was off by one byte</li>
19
</ul>
20
<br />
21
</div>
22
avidemux_2.6.6.tar.gz/avidemux/winInstaller/avidemux_cross.nsi -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/avidemux_cross.nsi
Changed
10
1
2
!define EXEDIR "${NSIDIR}/install"
3
4
!define CORE_VERSION "2.6"
5
-!define POINT_RELEASE "6"
6
+!define POINT_RELEASE "7"
7
!define PRODUCT_VERSION "${CORE_VERSION}.${POINT_RELEASE}.${SVN_VERSION}"
8
!define PRODUCT_NAME "Avidemux ${CORE_VERSION}"
9
!define PRODUCT_FULLNAME "Avidemux ${PRODUCT_VERSION} (${BUILD_BITS}-bit Release)"
10
avidemux_2.6.6.tar.gz/avidemux/winInstaller/avidemux_cross64.nsi -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/avidemux_cross64.nsi
Changed
10
1
2
!define EXEDIR "${NSIDIR}/install"
3
4
!define CORE_VERSION "2.6"
5
-!define POINT_RELEASE "6"
6
+!define POINT_RELEASE "7"
7
!define PRODUCT_VERSION "${CORE_VERSION}.${POINT_RELEASE}.${SVN_VERSION}"
8
!define PRODUCT_NAME "Avidemux ${CORE_VERSION} - 64bits"
9
!define PRODUCT_FULLNAME "Avidemux ${PRODUCT_VERSION} (${BUILD_BITS}-bit Release)"
10
avidemux_2.6.6.tar.gz/avidemux_core/ADM_core/include/ADM_mangle.h -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_core/include/ADM_mangle.h
Changed
13
1
2
#define REG_d "edx"
3
#define REG_S "esi"
4
#define REG_D "edi"
5
-#define REG_SP "esp"
6
+#if defined(__sun__) && defined(REG_SP)
7
+#undef REG_SP
8
+#endif /* : defined(__sun__) */
9
+#define REG_SP "esp"
10
#define REGSP esp
11
#define REG_BP "ebp"
12
#endif
13
avidemux_2.6.6.tar.gz/avidemux_core/ADM_core/include/ADM_ptrQueue.h -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_core/include/ADM_ptrQueue.h
Changed
56
1
2
ADM_assert(!tail);
3
return 1;
4
}
5
+ bool clear()
6
+ {
7
+ queueElem *elem=head;
8
+ while(elem)
9
+ {
10
+ queueElem *c=elem;
11
+ elem=elem->next;
12
+ delete c;
13
+ }
14
+ head=tail=NULL;
15
+ return true;
16
+ }
17
bool push(T *data)
18
{
19
queueElem *elem=new queueElem;
20
21
delete tmp;
22
return r;
23
}
24
+ T *popBack()
25
+ {
26
+ queueElem *h;
27
+ T *r;
28
+ if(isEmpty()) return NULL;
29
+ ADM_assert(head);
30
+ ADM_assert(tail);
31
+
32
+ r=(T *)tail->data;
33
+
34
+ if(head==tail) // only one element..
35
+ {
36
+ delete tail;
37
+ head=tail=NULL;
38
+ return r;
39
+ }
40
+
41
+ h=head;
42
+ while(h->next!=tail)
43
+ {
44
+ h=h->next;
45
+ ADM_assert(h);
46
+ }
47
+ // h is now the one before the last
48
+ h->next=NULL;
49
+ delete tail;
50
+ tail=h;
51
+ return r;
52
+ }
53
54
};
55
56
avidemux_2.6.6.tar.gz/avidemux_core/ADM_core/src/ADM_cpuCap.cpp -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_core/src/ADM_cpuCap.cpp
Changed
10
1
2
np = 1;
3
4
return np;
5
+#elif defined(__sun__)
6
+ return sysconf( _SC_NPROCESSORS_ONLN );
7
#elif defined(__unix__) && !defined(__CYGWIN__)
8
unsigned int bit;
9
int np;
10
avidemux_2.6.6.tar.gz/avidemux_core/ADM_core/src/ADM_crashdump_unix.cpp -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_core/src/ADM_crashdump_unix.cpp
Changed
177
1
2
#include <unistd.h>
3
#include <cxxabi.h>
4
#include <signal.h>
5
+#if defined(__sun__)
6
+#include <dlfcn.h>
7
+#include <strings.h>
8
+#include <ucontext.h>
9
+#include <sys/stack.h>
10
+#ifdef _LP64
11
+#define _ELF64
12
+#endif
13
+#include <sys/machelf.h>
14
+#else
15
#include <execinfo.h>
16
+#endif
17
18
#include "ADM_default.h"
19
20
21
void sig_segfault_handler(int signo)
22
{
23
static int running=0;
24
- if(running)
25
+ if(running)
26
{
27
signo=0;
28
exit(1);
29
}
30
- running=0;
31
+ running=0;
32
ADM_backTrack("Segfault",0,"??");
33
}
34
35
+#if defined(__sun__)
36
+static const int maxSize = 2048;
37
+
38
+static void addr2sym(void* pc, char* buffer, int size)
39
+{
40
+ Dl_info info;
41
+ Sym* sym = (Sym*)0;
42
+ static size_t dsize = maxSize - 1;
43
+ static char demangled[maxSize];
44
+ int dstatus = 0;
45
+
46
+ if (dladdr1(pc, &info, (void**)&sym, RTLD_DL_SYMENT) == 0)
47
+ {
48
+ snprintf(buffer, size, "[0x%p]", pc);
49
+ }
50
+
51
+ if ((info.dli_fname != NULL && info.dli_sname != NULL) &&
52
+ (((uintptr_t)pc - (uintptr_t)info.dli_saddr) < sym->st_size))
53
+ {
54
+ __cxxabiv1::__cxa_demangle(info.dli_sname,demangled,&dsize,&dstatus);
55
+ snprintf(buffer, size, "%s'%s+0x%x [0x%p]",
56
+ info.dli_fname,
57
+ demangled,
58
+ (unsigned long)pc - (unsigned long)info.dli_saddr,
59
+ pc);
60
+ }
61
+ else
62
+ {
63
+ snprintf(buffer, size, "%s'0x%p [0x%p]",
64
+ info.dli_fname,
65
+ (unsigned long)pc - (unsigned long)info.dli_fbase,
66
+ pc);
67
+ }
68
+
69
+ return;
70
+}
71
+
72
+static void printFrame(int fd, const char* format, ...)
73
+{
74
+ va_list ap;
75
+ static char buffer[maxSize];
76
+
77
+ va_start(ap, format);
78
+ (void)vsnprintf(buffer, sizeof (buffer), format, ap);
79
+ va_end(ap);
80
+
81
+ (void)write(fd, buffer, strlen(buffer));
82
+}
83
+
84
+static int printStack(uintptr_t pc, int signo, void *arg)
85
+{
86
+
87
+ static char buffer[maxSize];
88
+ char sigbuf[SIG2STR_MAX];
89
+
90
+
91
+ int filenum = (intptr_t)arg;
92
+
93
+ addr2sym((void *)pc, buffer, sizeof (buffer));
94
+
95
+ if (signo) {
96
+ sigbuf[0] = '?';
97
+ sigbuf[1] = 0;
98
+
99
+ (void) sig2str(signo, sigbuf);
100
+
101
+ printFrame(filenum, "%s [Signal %d (%s)]\n",
102
+ buffer, (ulong_t)signo, sigbuf);
103
+ } else
104
+ printFrame(filenum, "%s\n", buffer);
105
+
106
+ return (0);
107
+}
108
+
109
+static int backtrace(int fd)
110
+{
111
+ int rc = -1;
112
+ ucontext_t u;
113
+
114
+ if (getcontext(&u) >= 0)
115
+ {
116
+ rc = walkcontext(&u, printStack, (void*)(intptr_t)fd);
117
+ }
118
+ return(rc);
119
+}
120
+#endif /* : defined(__sun__) */
121
+
122
void ADM_backTrack(const char *info,int lineno,const char *file)
123
{
124
if(mysaveFunction)
125
126
127
#if !defined(__HAIKU__)
128
char wholeStuff[2048];
129
+#if !defined(__sun__)
130
char buffer[4096];
131
char in[2048];
132
void *stack[20];
133
char **functions;
134
int count, i;
135
-
136
+#endif
137
wholeStuff[0]=0;
138
139
printf("\n*********** BACKTRACK **************\n");
140
141
+#if !defined(__sun__)
142
count = backtrace(stack, 20);
143
functions = backtrace_symbols(stack, count);
144
+#endif
145
sprintf(wholeStuff,"%s\n at line %d, file %s",info,lineno,file);
146
+#if !defined(__sun__)
147
int status;
148
size_t size=2047;
149
// it looks like that xxxx (functionName+0x***) XXXX
150
- for (i=0; i < count; i++)
151
+ for (i=0; i < count; i++)
152
{
153
char *s=strstr(functions[i],"(");
154
buffer[0]=0;
155
156
{
157
strcpy(in,s+1);
158
char *e=strstr(in,"+");
159
- *e=0;
160
+ *e=0;
161
__cxxabiv1::__cxa_demangle(in,buffer,&size,&status);
162
if(status) strcpy(buffer,in);
163
- }else
164
+ }else
165
strcpy(buffer,functions[i]);
166
printf("%s:%d:<%s>:%d\n",functions[i],i,buffer,status);
167
strcat(wholeStuff,buffer);
168
strcat(wholeStuff,"\n");
169
}
170
-
171
+#else
172
+ backtrace(fileno(stdout));
173
+#endif
174
printf("*********** BACKTRACK **************\n");
175
176
if(myFatalFunction)
177
avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreAudio/include/ADM_audioClock.h
Added
32
1
2
+/**
3
+ *
4
+ *
5
+ *
6
+ *
7
+ */
8
+#ifndef ADM_audioClock_H
9
+#define ADM_audioClock_H
10
+
11
+#include "ADM_coreAudio6_export.h"
12
+
13
+class ADM_COREAUDIO6_EXPORT audioClock
14
+{
15
+ protected:
16
+ uint32_t _frequency;
17
+ uint64_t _nbSamples;
18
+ uint64_t _baseClock;
19
+
20
+ public:
21
+ audioClock(uint32_t fq);
22
+ bool advanceBySample(uint32_t samples);
23
+ uint64_t getTimeUs(void);
24
+ bool setTimeUs(uint64_t clk);
25
+
26
+
27
+
28
+};
29
+
30
+
31
+#endif
32
avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreAudio/src/ADM_audioClock.cpp
Changed
2
1
(renamed from avidemux_core/ADM_coreMuxer/src/ADM_audioClock.cpp)
2
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreAudio/src/ADM_audioStreamPCM.cpp -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreAudio/src/ADM_audioStreamPCM.cpp
Changed
28
1
2
*/
3
#include "ADM_default.h"
4
#include "ADM_audioStreamPCM.h"
5
-
6
+#include "ADM_vidMisc.h"
7
/**
8
\fn ADM_audioStreamAC3
9
\brief constructor
10
11
{
12
uint64_t thisDts=0;
13
if(!access->getPacket(obuffer,osize,sizeMax,&thisDts)) return 0;
14
- uint32_t bytesPerSample=wavHeader.channels*2;
15
+
16
+ int sampleSize=2;
17
+ if(wavHeader.bitspersample==8) sampleSize=1;
18
+ uint32_t bytesPerSample=wavHeader.channels*sampleSize;
19
//#warning fixme handle mono
20
*nbSample=(uint32_t)(*osize/bytesPerSample);
21
if(thisDts!=ADM_NO_PTS)
22
setDts(thisDts);
23
*dts=lastDts;
24
+// printf(">>audioCore : PCM packet : %s\n",ADM_us2plain(*dts));
25
advanceDtsBySample(*nbSample);
26
return 1;
27
}
28
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreAudio/src/CMakeLists.txt -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreAudio/src/CMakeLists.txt
Changed
9
1
2
ADM_audioWriteWav.cpp
3
ADM_audioIdentify.cpp
4
ADM_audioAccessFile.cpp
5
+ADM_audioClock.cpp
6
)
7
8
add_compiler_export_flags()
9
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreAudioParser/include/ADM_aacLatm.h -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreAudioParser/include/ADM_aacLatm.h
Changed
20
1
2
#include "ADM_getbits.h"
3
#include "ADM_byteBuffer.h"
4
#include <list>
5
+#include "ADM_ptrQueue.h"
6
/**
7
\class ADM_latm2aac
8
*/
9
10
{
11
private:
12
latmBuffer buffers[LATM_NB_BUFFERS];
13
- std::list <latmBuffer *> listOfFreeBuffers;
14
- std::list <latmBuffer *> listOfUsedBuffers;
15
+ ADM_ptrQueue <latmBuffer > listOfFreeBuffers;
16
+ ADM_ptrQueue <latmBuffer > listOfUsedBuffers;
17
uint32_t extraLen;
18
uint8_t extraData[AAC_LATM_MAX_EXTRA];
19
uint32_t fq,channels;
20
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreAudioParser/src/ADM_aacLatm.cpp -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreAudioParser/src/ADM_aacLatm.cpp
Changed
196
1
2
\file ADM_aacLatm.cpp
3
\brief Extract aac packet from LOAS/LATM stream
4
Derived from vlc code, seel ADM_aacLatm.h for vlc (c)
5
+ *
6
+ * http://www.nhzjj.com/asp/admin/editor/newsfile/2010318163752818.pdf
7
***************************************************************************/
8
9
/***************************************************************************
10
11
/**
12
13
*/
14
-static int LatmGetValue( getBits bits )
15
+static int LatmGetValue( getBits &bits )
16
{
17
int i_bytes = bits.get( 2 );
18
int v = 0;
19
20
}
21
int channelConfiguration=bits.get(4);
22
channels=aacChannels[channelConfiguration];
23
-
24
+ xdebug("Fq=%d, channel=%d\n",fq,channelConfiguration);
25
xdebug("ObjectType=%d\n",audioObjectType);
26
27
-
28
+ if(audioObjectType==5) // SBR
29
+ {
30
+ int extendedSamplingFrequencyIndex=bits.get(4);
31
+ xdebug("SBR audio freq=%d\n",aacSampleRate[extendedSamplingFrequencyIndex]);
32
+
33
+ audioObjectType=read31plus(bits); // 5 bits
34
+ xdebug("New object type=%d\n",audioObjectType);
35
+ }
36
+ //17
37
switch(audioObjectType)
38
{
39
case 2: // GASpecificConfig
40
{
41
- bits.get(1); // frameLength
42
- bool dependsOnCoreCoder=bits.get(1);
43
- if(dependsOnCoreCoder) bits.skip(14);
44
- bool extensionFlag=bits.get(1);
45
- if(!channelConfiguration)
46
- {
47
- ADM_error("No channel configuraiton\n");
48
- return false;
49
- }
50
- if(extensionFlag)
51
- {
52
- ADM_error("Extension flag\n");
53
- return false;
54
- }
55
+ int frameLengthFlags=bits.get(1); // frameLength
56
+ bool dependsOnCoreCoder=bits.get(1);
57
+ xdebug("FrameLengthFlags=%d\n",frameLengthFlags);
58
+ xdebug("dependsOnCoreCoder=%d\n",dependsOnCoreCoder);
59
+ if(dependsOnCoreCoder) bits.skip(14); // coreCoderDelay
60
+ bool extensionFlag=bits.get(1); //23
61
+ if(!channelConfiguration)
62
+ {
63
+ ADM_error("No channel configuraiton\n");
64
+ return false;
65
+ }
66
+ if(extensionFlag)
67
+ {
68
+ ADM_warning("Extension flag\n");
69
+ //bits.get(1); // extensionFlag3
70
+ return false;
71
+ }
72
}
73
break;
74
default:
75
- ADM_error("AudoObjecttype =%d not handled\n",audioObjectType);
76
+ ADM_error("AudioObjecttype =%d not handled\n",audioObjectType);
77
return false;
78
}
79
consumed=bits.getConsumedBits()-consumed;
80
81
}
82
83
#endif
84
- xdebug("Got %d extraData %x %x\n",extraLen,extraData[0],extraData[1]);
85
- xdebug("Frequency %d, channels %d\n",fq,channels);
86
+
87
+ xdebug("Got %d extraData \n",extraLen);
88
+ for(int i=0;i<extraLen;i++)
89
+ xdebug(" %02x",extraData[i]);
90
+ xdebug(" \nFrequency %d, channels %d\n",fq,channels);
91
conf.gotConfig=true;
92
return true;
93
94
95
}
96
97
// try to get a buffer...
98
- if(!listOfFreeBuffers.size())
99
+ if(listOfFreeBuffers.isEmpty())
100
{
101
ADM_error("No free buffer!\n");
102
return false;
103
}
104
- latmBuffer *b=listOfFreeBuffers.back();
105
- listOfFreeBuffers.pop_back();
106
+ latmBuffer *b=listOfFreeBuffers.popBack();
107
b->dts=dts;
108
for(int i=0;i<size;i++)
109
{
110
111
}
112
b->bufferLen=size;
113
if(!conf.gotConfig)
114
- listOfFreeBuffers.push_back(b);
115
+ listOfFreeBuffers.pushBack(b);
116
else
117
- listOfUsedBuffers.push_back(b);
118
+ listOfUsedBuffers.pushBack(b);
119
return true;
120
}else
121
{
122
123
124
if( !bits.get(1) ) // use SameStreamMux
125
{
126
- if(false==readStreamMuxConfig(bits)) return false;
127
+ if(false==readStreamMuxConfig(bits))
128
+ {
129
+ return false;
130
+ }
131
} // streamMuxConfig
132
// if(!numSubFrames) return false;
133
if(conf.audioMuxVersionA==0)
134
135
while(start<end)
136
{
137
int key=(start[0]<<8)+start[1];
138
- if((key & 0xffe0)!=0x56e0)
139
+ if((key & 0xffe0)!=0x56e0) // 0x2b7 shifted by one bit
140
{
141
ADM_warning("Sync lost\n");
142
return true;
143
144
// LATM demux
145
start+=len;
146
}
147
- xdebug("-- end of this LOAS frame --\n");
148
+ xdebug("-- end of this LATM frame --\n");
149
return true;
150
}
151
/**
152
153
memset(&conf,0,sizeof(conf));
154
conf.gotConfig=false;
155
for(int i=0;i<LATM_NB_BUFFERS;i++)
156
- listOfFreeBuffers.push_back(&(buffers[i]));
157
+ listOfFreeBuffers.pushBack(&(buffers[i]));
158
}
159
/**
160
\fn dtor
161
162
*/
163
bool ADM_latm2aac::empty()
164
{
165
- if(listOfUsedBuffers.size()==0) return true;
166
+ if(listOfUsedBuffers.isEmpty()) return true;
167
return false;
168
}
169
+
170
/**
171
\fn flush
172
\brief flush packet queue. Must be called when seeking
173
174
listOfFreeBuffers.clear();
175
listOfUsedBuffers.clear();
176
for(int i=0;i<LATM_NB_BUFFERS;i++)
177
- listOfFreeBuffers.push_back(&(buffers[i]));
178
+ listOfFreeBuffers.pushBack(&(buffers[i]));
179
return true;
180
}
181
/**
182
183
bool ADM_latm2aac::getData(uint64_t *time,uint32_t *len, uint8_t *data, uint32_t maxSize)
184
{
185
if(empty()) return false;
186
- xdebug("%d slogs in latm buffers\n",listOfUsedBuffers.size());
187
- latmBuffer *b=listOfUsedBuffers.front();
188
- listOfUsedBuffers.pop_front();
189
- listOfFreeBuffers.push_back(b);
190
+// xdebug("%d slogs in latm buffers\n",listOfUsedBuffers.size());
191
+ latmBuffer *b=listOfUsedBuffers.pop();
192
+ listOfFreeBuffers.pushBack(b);
193
if(b->bufferLen>maxSize)
194
{
195
ADM_warning("Buffer too small\n");
196
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreDemuxer/include/ADM_Video.h -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreDemuxer/include/ADM_Video.h
Changed
10
1
2
virtual uint8_t close(void)=0;
3
virtual uint64_t frameToUs(uint32_t frame)
4
{
5
- float f=frame;
6
+ double f=frame;
7
f*=_videostream.dwScale;
8
f/=_videostream.dwRate;
9
f*=1000000.;
10
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreMuxer/src/CMakeLists.txt -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreMuxer/src/CMakeLists.txt
Changed
9
1
2
SET(ADMcoreMuxer_SRCS
3
ADM_dynaMuxer.cpp
4
ADM_muxerUtils.cpp
5
-ADM_audioClock.cpp
6
ADM_coreMuxerFfmpeg.cpp
7
)
8
9
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreUtils/src/ADM_infoExtractor.cpp -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreUtils/src/ADM_infoExtractor.cpp
Changed
22
1
2
case 0:
3
voptype = AVI_KEY_FRAME;
4
break;
5
- case 1:
6
+ case 1: // P
7
+ case 3: // S
8
voptype = 0;
9
break;
10
case 2:
11
voptype = AVI_B_FRAME;
12
break;
13
- case 3:
14
- printf ("[Avi] Glouglou\n");
15
- voptype = 0;
16
- break;
17
+ default:
18
+ ADM_warning("Unknown vop type\n");
19
20
}
21
vop[*nb].offset = globalOff + off - 4;
22
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreUtils/src/ADM_infoExtractorH264.cpp -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreUtils/src/ADM_infoExtractorH264.cpp
Changed
19
1
2
uint32_t length =(head[0] << 24) + (head[1] << 16) + (head[2] << 8) + (head[3]);
3
if(length>len) nalSize=3;
4
}
5
+ uint32_t recovery=0xff;
6
+ *flags=0;
7
while (head + nalSize < tail)
8
{
9
10
11
}
12
head += nalSize; // Skip nal lenth
13
stream = *(head) & 0x1F;
14
- uint32_t recovery;
15
+
16
17
switch (stream)
18
{
19
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreVideoEncoder/include/ADM_coreVideoEncoderFFmpeg.h -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreVideoEncoder/include/ADM_coreVideoEncoderFFmpeg.h
Changed
10
1
2
int pass; // Pass number = 1 or 2, valid only if we use 2 pass mode
3
bool _isMT; // True if multithreaded
4
bool _globalHeader;
5
- float timeScaler;
6
+ double timeScaler;
7
8
protected:
9
10
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp -> avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreVideoEncoder/src/ADM_coreVideoEncoderFFmpeg.cpp
Changed
18
1
2
*/
3
int64_t ADM_coreVideoEncoderFFmpeg::timingToLav(uint64_t val)
4
{
5
- int64_t v= floor( ((float)val+timeScaler/2.) /timeScaler);
6
+ double q=(double)val;
7
+ q+=timeScaler/(double)2.;
8
+ q/=timeScaler;
9
+
10
+ int64_t v=floor(q);
11
+#if 0
12
+ printf("Lav in=%d, scale=%lf,",(int)val,timeScaler);
13
+ printf(" q=%lf,out PTS=%lld\n",q,v);
14
+#endif
15
return v;
16
}
17
/**
18
avidemux_2.6.6.tar.gz/avidemux_core/corePackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux_core/corePackageRpm.cmake
Changed
34
1
2
IF (X86_64_SUPPORTED)
3
SET(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
4
ELSE (X86_64_SUPPORTED)
5
-SET(CPACK_RPM_PACKAGE_ARCHITECTURE "i686")
6
+SET(CPACK_RPM_PACKAGE_ARCHITECTURE "i386")
7
ENDIF (X86_64_SUPPORTED)
8
# Mandatory
9
-SET(CPACK_RPM_PACKAGE_VENDOR "mean")
10
-SET(CPACK_RPM_PACKAGE_DESCRIPTION "Simple video editor,core libraries")
11
+SET(CPACK_RPM_PACKAGE_VERSION "${AVIDEMUX_VERSION}")
12
+SET(CPACK_RPM_PACKAGE_RELEASE "1.r${ADM_SUBVERSION}.bootstrap")
13
14
-# Some more infos
15
-SET(CPACK_PACKAGE_VERSION_MAJOR "2")
16
-SET(CPACK_PACKAGE_VERSION_MINOR "6")
17
-SET(CPACK_PACKAGE_VERSION_PATCH "0")
18
+SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2+")
19
+SET(CPACK_RPM_PACKAGE_GROUP "Development/Libraries")
20
+SET(CPACK_RPM_PACKAGE_VENDOR "mean")
21
+SET(CPACK_RPM_PACKAGE_DESCRIPTION "Simple video editor,core libraries and development files.")
22
23
-SET(CPACK_PACKAGE_VERSION_PATCH "0_r${ADM_SUBVERSION}")
24
-#
25
-SET(CPACK_PACKAGE_NAME "avidemux3-core")
26
+SET(CPACK_RPM_PACKAGE_SUMMARY "Graphical video editing and transcoding tool and its development files.")
27
+SET(CPACK_RPM_PACKAGE_URL "http://www.avidemux.org")
28
+SET(CPACK_RPM_PACKAGE_PROVIDES "avidemux3 = ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}")
29
#
30
-SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
31
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
32
33
include(CPack)
34
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_autoScrips/PSP.py -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_autoScrips/PSP.py
Changed
39
1
2
import ADM_imageInfo
3
import ADM_image
4
finalSizeWidth=480 # Start with DVD target, we'll adjust later
5
-finalSizeHeight=[272]
6
+finalSizeHeight=[272,272,272]
7
#
8
#
9
adm=Avidemux()
10
11
##################################
12
# Video
13
##################################
14
-adm.videoCodec("x264", "general.params=CBR=1000", "general.threads=99", "general.fast_first_pass=True", "level=30", "vui.sar_height=1", "vui.sar_width=1",
15
-"MaxRefFrames=2", "MinIdr=0", "MaxIdr=250", "i_scenecut_threshold=40", "MaxBFrame=2", "i_bframe_adaptive=0",
16
-"i_bframe_bias=0", "i_bframe_pyramid=0", "b_deblocking_filter=False", "i_deblocking_filter_alphac0=0", "i_deblocking_filter_beta=0", "cabac=True",
17
-"interlaced=False", "analyze.b_8x8=False", "analyze.b_i4x4=True" , "analyze.b_i8x8=False", "analyze.b_p8x8=True", "analyze.b_p16x16=False",
18
-"analyze.b_b16x16=False", "analyze.weighted_pred=2", "analyze.weighted_bipred=True", "analyze.direct_mv_pred=3",
19
-"analyze.chroma_offset=0", "analyze.me_method=0", "analyze.mv_range=16", "analyze.subpel_refine=7", "analyze.chroma_me=True", "analyze.mixed_references=True",
20
-"analyze.trellis=1", "analyze.psy_rd=0.000000", "analyze.psy_trellis=0.000000", "analyze.fast_pskip=True", "analyze.dct_decimate=True",
21
-"analyze.noise_reduction=0", "analyze.psy=True" , "analyze.intra_luma=21", "analyze.inter_luma=21", "ratecontrol.rc_method=0",
22
-"ratecontrol.qp_constant=0", "ratecontrol.qp_min=0", "ratecontrol.qp_max=0", "ratecontrol.qp_step=0", "ratecontrol.bitrate=0", "ratecontrol.vbv_max_bitrate=0",
23
-"ratecontrol.vbv_buffer_size=0", "ratecontrol.vbv_buffer_init=0", "ratecontrol.ip_factor=0.000000", "ratecontrol.pb_factor=0.000000", "ratecontrol.aq_mode=1",
24
+adm.videoCodec("x264", "general.params=CBR=500", "general.threads=99", "general.fast_first_pass=True", "level=30", "vui.sar_height=1", "vui.sar_width=1",
25
+"MaxRefFrames=2", "MinIdr=0", "MaxIdr=250", "i_scenecut_threshold=40", "intra_refresh=False", "MaxBFrame=2", "i_bframe_adaptive=0",
26
+"i_bframe_bias=0", "i_bframe_pyramid=0", "b_deblocking_filter=False", "i_deblocking_filter_alphac0=0", "i_deblocking_filter_beta=0", "cabac=True",
27
+"interlaced=False", "constrained_intra=False", "tff=True", "fake_interlaced=False", "analyze.b_8x8=False", "analyze.b_i4x4=True", "analyze.b_i8x8=False", "analyze.b_p8x8=True", "analyze.b_p16x16=False",
28
+"analyze.b_b16x16=False", "analyze.weighted_pred=2", "analyze.weighted_bipred=True", "analyze.direct_mv_pred=3",
29
+"analyze.chroma_offset=0", "analyze.me_method=0", "analyze.me_range=16", "analyze.mv_range=-1", "analyze.mv_range_thread=-1", "analyze.subpel_refine=7", "analyze.chroma_me=True", "analyze.mixed_references=True",
30
+"analyze.trellis=1", "analyze.psy_rd=1.000000", "analyze.psy_trellis=0.000000", "analyze.fast_pskip=True", "analyze.dct_decimate=True",
31
+"analyze.noise_reduction=0", "analyze.psy=True", "analyze.intra_luma=11", "analyze.inter_luma=21", "ratecontrol.rc_method=0",
32
+"ratecontrol.qp_constant=0", "ratecontrol.qp_min=0", "ratecontrol.qp_max=32", "ratecontrol.qp_step=4", "ratecontrol.bitrate=0", "ratecontrol.rate_tolerance=1.000000", "ratecontrol.vbv_max_bitrate=0",
33
+"ratecontrol.vbv_buffer_size=0", "ratecontrol.vbv_buffer_init=0", "ratecontrol.ip_factor=1.000000", "ratecontrol.pb_factor=1.000000", "ratecontrol.aq_mode=1",
34
"ratecontrol.aq_strength=1.000000", "ratecontrol.mb_tree=True", "ratecontrol.lookahead=40")
35
+
36
###################################
37
# Container = Mpeg PS/DVD
38
###################################
39
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_autoScrips/dvd.py -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_autoScrips/dvd.py
Changed
10
1
2
adm=Avidemux()
3
gui=Gui()
4
finalSizeWidth=720
5
-finalSizeHeight=[ 480,576]
6
+finalSizeHeight=[ 480,576,480]
7
#
8
#
9
MP2=80
10
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_autoScrips/svcd.py -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_autoScrips/svcd.py
Changed
10
1
2
import ADM_imageInfo
3
import ADM_image
4
finalSizeWidth=720 # Start with DVD target, we'll adjust later
5
-finalSizeHeight=[ 480,576]
6
+finalSizeHeight=[ 480,576,480]
7
#
8
adm=Avidemux()
9
gui=Gui()
10
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_autoScrips/vcd.py -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_autoScrips/vcd.py
Changed
10
1
2
adm=Avidemux()
3
gui=Gui()
4
finalSizeWidth=352
5
-finalSizeHeight=[ 240,288]
6
+finalSizeHeight=[ 240,288,240]
7
#
8
MP2=80
9
supported=[MP2]
10
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4.cpp
Changed
70
1
2
_reordered=0;
3
_videoScale=1;
4
_videoFound=0;
5
+ delayRelativeToVideo=0;
6
}
7
/**
8
\fn getAudioInfo
9
10
Now build audio tracks
11
*/
12
if(nbAudioTrack) _isaudiopresent=1; // Still needed ?
13
+
14
+ adjustElstDelay();
15
+
16
+ //
17
for(int audio=0;audio<nbAudioTrack;audio++)
18
{
19
switch(_tracks[1+audio]._rdWav.encoding)
20
21
return 1;
22
}
23
/**
24
+ * \fn adjustElstDelay
25
+ * @return
26
+ */
27
+bool MP4Header::adjustElstDelay()
28
+{
29
+ if(this->delayRelativeToVideo)
30
+ {
31
+ ADM_info("Compensating for a/v delay\n");
32
+ shiftAudioTimeBy(this->delayRelativeToVideo);
33
+ }
34
+ return true;
35
+
36
+}
37
+
38
+
39
+
40
+/**
41
* \fn shiftTimeBy
42
* \brief increase pts by shift, fix some mp4 where dts is too low
43
* @param shift
44
45
VDEO.index[i].pts=pts;
46
}
47
48
- for(int audioTrack=0;audioTrack<nbAudioTrack;audioTrack++)
49
+ shiftAudioTimeBy(shift);
50
+ return true;
51
+}
52
+bool MP4Header::shiftAudioTimeBy(uint64_t shift)
53
+{
54
+ int nb;
55
+ for(int audioTrack=0;audioTrack<nbAudioTrack;audioTrack++)
56
{
57
nb=(int)_tracks[1+audioTrack].nbIndex;
58
for(int i=0;i<nb;i++)
59
60
_tracks[audioTrack+1].index[i].dts=dts;
61
}
62
}
63
- return true;
64
-
65
}
66
+
67
//
68
// That tag are coded like this
69
// Each 8 bits is in fact a 7 Bits part while b7=1
70
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4.h -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4.h
Changed
30
1
2
{
3
protected:
4
/*****************************/
5
+ uint64_t delayRelativeToVideo;
6
uint8_t lookupMainAtoms(void *tom);
7
void parseMvhd(void *tom);
8
uint8_t parseTrack(void *ztom);
9
+ uint8_t parseElst(void *tom,uint32_t trackType);
10
uint8_t decodeVideoAtom(void *ztom);
11
uint8_t parseMdia(void *ztom,uint32_t *trackType,uint32_t w, uint32_t h);
12
- uint8_t parseEdts(void *ztom);
13
+ uint8_t parseEdts(void *ztom,uint32_t trackType);
14
uint8_t parseStbl(void *ztom,uint32_t trackType,uint32_t w,uint32_t h,uint32_t trackScale);
15
uint8_t decodeEsds(void *ztom,uint32_t trackType);
16
uint8_t updateCtts(MPsampleinfo *info );
17
bool refineFps(void);
18
+ bool adjustElstDelay(void);
19
uint32_t _videoScale;
20
int64_t _movieDuration; // in ms
21
uint32_t _videoFound;
22
23
uint32_t nbAudioTrack;
24
bool refineAudio(WAVHeader *head,uint32_t extraLen, uint8_t *extra);
25
bool shiftTimeBy(uint64_t shift);
26
+ bool shiftAudioTimeBy(uint64_t shift);
27
/*********************************/
28
uint32_t readPackedLen(adm_atom *tom );
29
30
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4Analyzer.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/Mp4/ADM_mp4Analyzer.cpp
Changed
78
1
2
case ADM_MP4_EDTS:
3
{
4
ADM_info("EDTS atom found\n");
5
- parseEdts(&son);
6
+ parseEdts(&son,trackType);
7
break;
8
}
9
default:
10
11
}
12
return r;
13
}
14
-
15
+/**
16
+ * \fn parseElst
17
+ * \brief Parse edit list atom. We manage only one case : when video does not start at
18
+ * 0, we delay all others tracks by the amount indicated
19
+ * @param tom
20
+ * @return
21
+ */
22
+uint8_t MP4Header::parseElst(void *ztom,uint32_t trackType)
23
+{
24
+ uint32_t editDuration;
25
+ uint32_t mediaTime;
26
+ uint32_t playbackSpeed;
27
+ adm_atom *tom=(adm_atom *)ztom;
28
+ tom->skipBytes(4);
29
+ uint32_t nb=tom->read32();
30
+ ADM_info("Found %"PRIu32" entries in list:\n",nb);
31
+ for(int i=0;i<nb;i++)
32
+ {
33
+ editDuration=tom->read32();
34
+ mediaTime=tom->read32();
35
+ playbackSpeed=tom->read32();
36
+ ADM_info("Duration : %"PRIu32", mediaTime:%"PRIu32" speed=%"PRIu32"\n",editDuration,mediaTime,playbackSpeed);
37
+ }
38
+ if(trackType==TRACK_VIDEO && nb==1 && mediaTime>0 && _videoScale )
39
+ {
40
+ ADM_info("** Audio Tracks need to be delayed , %d vs trackscale %d \n",(int)mediaTime,(int)_videoScale);
41
+ double d=mediaTime;
42
+ d/=_videoScale;
43
+ d*=1000000.;
44
+ delayRelativeToVideo=(uint64_t)d;
45
+ ADM_info("** Computed delay =%s \n",ADM_us2plain(delayRelativeToVideo));
46
+
47
+
48
+ }
49
+ return 1;
50
+}
51
/**
52
\fn parseEdts
53
\brief parse sample table. this is the most important function.
54
*/
55
-uint8_t MP4Header::parseEdts(void *ztom)
56
+uint8_t MP4Header::parseEdts(void *ztom,uint32_t trackType)
57
{
58
adm_atom *tom=(adm_atom *)ztom;
59
ADMAtoms id;
60
61
case ADM_MP4_ELST:
62
{
63
ADM_info("ELST atom found\n");
64
- son.skipBytes(4);
65
- uint32_t nb=son.read32();
66
- ADM_info("Found %"PRIu32" entries in list:\n",nb);
67
- for(int i=0;i<nb;i++)
68
- {
69
- uint32_t editDuration=son.read32();
70
- uint32_t mediaTime=son.read32();
71
- uint32_t playbackSpeed=son.read32();
72
- ADM_info("Duration : %"PRIu32", mediaTime:%"PRIu32" speed=%"PRIu32"\n",editDuration,mediaTime,playbackSpeed);
73
- }
74
+ parseElst(&son,trackType);
75
son.skipAtom();
76
break;
77
78
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsAudio.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsAudio.cpp
Changed
10
1
2
ADM_info("Creating audio track, pid=%x, muxing =%d\n",pid,muxing);
3
if(myLen && myExtra)
4
{
5
- extraData=new uint8_t [myLen];
6
+ extraData=new uint8_t [myLen+16]; // guards again lavcodec overread
7
extraDataLen=myLen;
8
memcpy(extraData,myExtra,extraDataLen);
9
ADM_info("Creating ts audio access with %d bytes of extradata.",myLen);
10
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsAudioProbe.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsAudioProbe.cpp
Changed
28
1
2
trackInfo->wav.channels=latm.getChannels();
3
trackInfo->wav.byterate=128000>>3;
4
trackInfo->extraDataLen=eLen;
5
- trackInfo->extraData[0]=eData[0];
6
- trackInfo->extraData[1]=eData[1];
7
+ for(int i=0;i<eLen;i++)
8
+ trackInfo->extraData[i]=eData[i];
9
trackInfo->mux=ADM_TS_MUX_LATM;
10
- ADM_info("AAC extra data : %02x %02x\n",eData[0],eData[1]);
11
+ ADM_info("AAC extra data (%d): %02x %02x\n",eLen,eData[0],eData[1]);
12
return true;
13
}
14
// next packet
15
16
return false;
17
}
18
trackInfo->extraDataLen=eLen;
19
- trackInfo->extraData[0]=eData[0];
20
- trackInfo->extraData[1]=eData[1];
21
- ADM_info("AAC extra data : %02x %02x\n",eData[0],eData[1]);
22
+ for(int i=0;i<eLen;i++)
23
+ trackInfo->extraData[i]=eData[i];
24
+ ADM_info("AAC extra data %d: %02x %02x\n",eLen,eData[0],eData[1]);
25
trackInfo->wav.frequency=adts.getFrequency();
26
trackInfo->wav.channels=adts.getChannels();
27
trackInfo->wav.byterate=128000>>3;
28
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH264.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsIndexH264.cpp
Changed
57
1
2
//******************
3
// 2 Index
4
//******************
5
+ bool fourBytes;
6
while(1)
7
{
8
- int startCode=pkt->findStartCode();
9
+ fourBytes=false;
10
+ int startCode=pkt->findStartCode2(fourBytes);
11
resume:
12
if(!pkt->stillOk()) break;
13
14
+ int startCodeLength=4;
15
+ if(fourBytes==true) startCodeLength++;
16
+
17
// 1:0 2:Nal ref idc 5:Nal Type
18
if(startCode&0x80)
19
{
20
21
else
22
printf("[SEI] Too short size+4=%d\n",*(SEI_nal.payload));
23
startCode=pkt->readi8();
24
+
25
decodingImage=false;
26
pkt->getInfo(&thisUnit.packetInfo);
27
thisUnit.consumedSoFar=pkt->getConsumed();
28
- addUnit(data,unitTypeSei,thisUnit,5+SEI_nal.payloadSize+1);
29
+ addUnit(data,unitTypeSei,thisUnit,startCodeLength+SEI_nal.payloadSize+1);
30
+ fourBytes=true;
31
goto resume;
32
}
33
break;
34
35
pkt->getInfo(&thisUnit.packetInfo);
36
if(firstSps)
37
{
38
- pkt->setConsumed(5); // reset consume counter
39
+ pkt->setConsumed(startCodeLength); // reset consume counter
40
firstSps=false;
41
}
42
thisUnit.consumedSoFar=pkt->getConsumed();
43
- addUnit(data,unitTypeSps,thisUnit,5);
44
+ addUnit(data,unitTypeSps,thisUnit,startCodeLength);
45
break;
46
47
case NAL_IDR:
48
49
pkt->getInfo(&thisUnit.packetInfo);
50
thisUnit.consumedSoFar=pkt->getConsumed();
51
52
- addUnit(data,unitTypePic,thisUnit,5+NON_IDR_PRE_READ);
53
+ addUnit(data,unitTypePic,thisUnit,startCodeLength+NON_IDR_PRE_READ);
54
// reset to default
55
thisUnit.imageStructure=pictureFrame;
56
thisUnit.recoveryCount=0xff;
57
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.cpp
Changed
51
1
2
return startCode;
3
}
4
/**
5
+ * \fn fourByteStartCode
6
+ * @param four
7
+ * @return
8
+ */
9
+int tsPacketLinearTracker::findStartCode2(bool &fourByteStartCode)
10
+{
11
+#define likely(x) x
12
+#define unlikely(x) x
13
+ unsigned int prev=0xfffff;
14
+ unsigned int last=0xfffff;
15
+ unsigned int cur=0xffff;
16
+ int startCode=0;
17
+ fourByteStartCode=false;
18
+ while(this->stillOk())
19
+ {
20
+ prev=last;
21
+ last=cur;
22
+ cur=this->readi16();
23
+ if(likely(last&0xff)) continue;
24
+ if(unlikely(!last)) // 00 00 , need 01 xx
25
+ {
26
+ if((cur>>8)==1)
27
+ {
28
+ startCode=cur&0xff;
29
+ if(!(prev&0xff))
30
+ fourByteStartCode=true;
31
+ break;
32
+ }
33
+ }
34
+ if(unlikely(!(last&0xff))) // xx 00 need 00 01
35
+ {
36
+ if(cur==1)
37
+ {
38
+ startCode=this->readi8();
39
+ if(!(last>>8))
40
+ fourByteStartCode=true;
41
+ break;
42
+ }
43
+ }
44
+ }
45
+ return startCode;
46
+}
47
+/**
48
\fn ~tsPacketLinearTracker
49
*/
50
tsPacketLinearTracker::~tsPacketLinearTracker()
51
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.h -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/MpegTS/dmxTSPacket.h
Changed
8
1
2
bool getStats(uint32_t *nb,packetTSStats **stats);
3
virtual bool updateStats(uint8_t *data);
4
int findStartCode(void);
5
+ int findStartCode2(bool &fourBytes);
6
};
7
#endif
8
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/OpenDml/ADM_odml_audio.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/OpenDml/ADM_odml_audio.cpp
Changed
87
1
2
#include "ADM_openDML.h"
3
4
#include "ADM_odml_audio.h"
5
-//#include "ADM_audiocodec/ADM_audiocodec.h"
6
#include "ADM_audioStream.h"
7
+#include "ADM_audioClock.h"
8
9
/**
10
\fn ADM_aviAudioAccess
11
12
length+=idx[i].size;
13
if(idx[i].size>mx) mx=idx[i].size;
14
}
15
- if((hdr->encoding==WAV_PCM || hdr->encoding==WAV_LPCM)&& mx>ODML_MAX_AUDIO_CHUNK)
16
+
17
+
18
+ if((hdr->encoding==WAV_PCM || hdr->encoding==WAV_LPCM))
19
{
20
- // Split the huge chunk into smaller ones
21
- for(int i=0;i<nbChunk;i++)
22
+ // Number of samples in one chunk
23
+ int maxAllowed=ODML_MAX_AUDIO_CHUNK;
24
+ int bytePerSample=2;
25
+ if(hdr->bitspersample==8) bytePerSample=1;
26
+ int thirtyMs=(bytePerSample*hdr->channels*hdr->frequency)/40; // ~ 25 ms
27
+ if(thirtyMs<maxAllowed) maxAllowed=thirtyMs;
28
+
29
+ maxAllowed/=(bytePerSample*hdr->channels);
30
+ maxAllowed*=(bytePerSample*hdr->channels);
31
+
32
+ ADM_info("Checking that we dont have block larger than %d bytes, we have %d so far\n",maxAllowed,(int)mx);
33
+ if( mx>maxAllowed)
34
{
35
- uint64_t start=idx[i].offset;
36
- uint32_t size=idx[i].size;
37
- uint32_t ONE_CHUNK=(ODML_MAX_AUDIO_CHUNK)/(2*hdr->channels);
38
- ONE_CHUNK*=2*hdr->channels;
39
- while(size>ONE_CHUNK)
40
+ ADM_info("Splitting it...\n");
41
+ // Split the huge chunk into smaller ones
42
+ audioClock clock(hdr->frequency);
43
+ uint64_t startAt=idx[0].dts;
44
+ if(startAt==ADM_NO_PTS) startAt=0;
45
+
46
+ clock.setTimeUs(startAt);
47
+ for(int i=0;i<nbChunk;i++)
48
{
49
- odmlIndex current;
50
- current.offset=start;
51
- current.size=ONE_CHUNK;
52
- current.dts=ADM_NO_PTS;
53
- myIndex.append(current);
54
- start+=ONE_CHUNK;
55
- size-=ONE_CHUNK;
56
+ uint64_t start=idx[i].offset;
57
+ uint32_t size=idx[i].size;
58
+ uint32_t ONE_CHUNK=(maxAllowed); // already a multiple of 2*chan
59
+ while(size>ONE_CHUNK)
60
+ {
61
+ odmlIndex current;
62
+ current.offset=start;
63
+ current.size=ONE_CHUNK;
64
+ current.dts=clock.getTimeUs();
65
+ myIndex.append(current);
66
+ start+=ONE_CHUNK;
67
+ size-=ONE_CHUNK;
68
+ clock.advanceBySample(ONE_CHUNK/(bytePerSample*hdr->channels));
69
+ }
70
+ odmlIndex current;
71
+ current.offset=start;
72
+ current.size=size;
73
+ current.dts=clock.getTimeUs();;
74
+ myIndex.append(current);
75
+ clock.advanceBySample(size/(bytePerSample*hdr->channels));
76
}
77
- odmlIndex current;
78
- current.offset=start;
79
- current.size=size;
80
- current.dts=ADM_NO_PTS;
81
- myIndex.append(current);
82
- }
83
+ }
84
85
}else
86
{ // Duplicate index as is
87
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/OpenDml/ADM_openDMLDepack.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/OpenDml/ADM_openDMLDepack.cpp
Changed
10
1
2
#endif
3
#define DEPACK_VERBOSE
4
5
-#define MAX_VOP 10
6
+#define MAX_VOP 200
7
8
/* Static ones */
9
10
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_demuxers/Pictures/ADM_picPlugin.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_demuxers/Pictures/ADM_picPlugin.cpp
Changed
20
1
2
printf (" \n PNG file detected...\n");
3
return 100;
4
}
5
+ if(magic==0xe0ffd8ff)
6
+ {
7
+
8
+ printf (" \n JPG file detected...\n");
9
+ return 100;
10
+ }
11
+ if((magic & 0xffff)==0x4d42)
12
+ {
13
+
14
+ printf (" \n BMP file detected...\n");
15
+ return 100;
16
+ }
17
18
printf (" [picHeader] Cannot open that\n");
19
return 0;
20
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/ADM_pyAvidemux.h -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/ADM_pyAvidemux.h
Changed
93
1
2
* *
3
***************************************************************************/
4
5
-#ifndef ADM_PYAVIDEMUX_H
6
-#define ADM_PYAVIDEMUX_H
7
-
8
-#include "IEditor.h"
9
+#ifndef ADM_PYAVIDEMUX_H
10
+#define ADM_PYAVIDEMUX_H
11
+
12
+#include "IEditor.h"
13
14
/* Audio */
15
-int pyGetAudioChannels(IEditor *editor,int dex);
16
-int pyGetAudioFrequency(IEditor *editor,int dex);
17
-int pyGetAudioEncoding(IEditor *editor,int dex);
18
+int pyGetAudioBitrate(IEditor *editor,int dex);
19
+int pyGetAudioChannels(IEditor *editor,int dex);
20
+int pyGetAudioFrequency(IEditor *editor,int dex);
21
+int pyGetAudioEncoding(IEditor *editor,int dex);
22
int pyAddAudioTrack(IEditor *editor, int poolindex);
23
int pyAddExternal(IEditor *editor, const char *fileName);
24
int pyClearAudioTracks(IEditor *editor);
25
26
int pyGetDrc(IEditor *editor,int track);
27
int pySetDrc(IEditor *editor,int track, int onoff);
28
int pyGetResample(IEditor *editor,int track);
29
-int pySetResample(IEditor *editor,int track,int fq);
30
-int32_t pyGetPal2Film(IEditor *editor);
31
-int32_t pyGetFilm2Pal(IEditor *editor);
32
-void pySetPal2Film(IEditor *editor, int32_t rate);
33
-void pySetFilm2Pal(IEditor *editor, int32_t rate);
34
-int pyGetNormalizeMode(IEditor *editor);
35
-int pyGetNormalizeValue(IEditor *editor);
36
-void pySetNormalizeMode(IEditor *editor, int mode);
37
-void pySetNormalizeValue(IEditor *editor, int value);
38
+int pySetResample(IEditor *editor,int track,int fq);
39
+int32_t pyGetPal2Film(IEditor *editor);
40
+int32_t pyGetFilm2Pal(IEditor *editor);
41
+void pySetPal2Film(IEditor *editor, int32_t rate);
42
+void pySetFilm2Pal(IEditor *editor, int32_t rate);
43
+int pyGetNormalizeMode(IEditor *editor);
44
+int pyGetNormalizeValue(IEditor *editor);
45
+void pySetNormalizeMode(IEditor *editor, int mode);
46
+void pySetNormalizeValue(IEditor *editor, int value);
47
int pySetFilm2Pal(IEditor *,int track,int onoff);
48
int pySetPal2Film(IEditor *,int track,int onoff);
49
int pySetNormalize(IEditor *,int track,int mode,int gain100);
50
-/* Info */
51
-int pyGetFps1000(IEditor *editor);
52
-int pyGetWidth(IEditor *editor);
53
+/* Info */
54
+int pyGetFps1000(IEditor *editor);
55
+int pyGetWidth(IEditor *editor);
56
int pyGetHeight(IEditor *editor);
57
58
-/* Detail info (debug) */
59
-bool pyHexDumpFrame(IEditor *editor, int framenumber);
60
-int pyPrintTiming(IEditor *editor, int framenumber);
61
-double pyGetPts(IEditor *editor, int frameNum);
62
+/* Detail info (debug) */
63
+bool pyHexDumpFrame(IEditor *editor, int framenumber);
64
+int pyPrintTiming(IEditor *editor, int framenumber);
65
+double pyGetPts(IEditor *editor, int frameNum);
66
double pyGetDts(IEditor *editor, int frameNum);
67
68
-/* File operation */
69
-char *pyFileSelWrite(IEditor *editor, const char *title);
70
-char *pyFileSelRead(IEditor *editor, const char *title);
71
+/* File operation */
72
+char *pyFileSelWrite(IEditor *editor, const char *title);
73
+char *pyFileSelRead(IEditor *editor, const char *title);
74
char *pyDirSelect(IEditor *editor, const char *title);
75
76
-/* Display */
77
-void pyDisplayError(IEditor *editor, const char *one, const char *two);
78
+/* Display */
79
+void pyDisplayError(IEditor *editor, const char *one, const char *two);
80
void pyDisplayInfo(IEditor *editor, const char *one, const char *two);
81
82
-/* Misc */
83
-int pyTestCrash(void);
84
-int pyTestAssert(void);
85
-
86
-#endif
87
+/* Misc */
88
+int pyTestCrash(void);
89
+int pyTestAssert(void);
90
+
91
+#endif
92
// EOF
93
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/ADM_pyAvidemuxAudio.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/ADM_pyAvidemuxAudio.cpp
Changed
201
1
2
* *
3
***************************************************************************/
4
5
-#include "ADM_pyAvidemux.h"
6
-#include "ADM_audiodef.h"
7
-#include "ADM_vidMisc.h"
8
-#include "fourcc.h"
9
-#include "DIA_fileSel.h"
10
-#include "DIA_coreToolkit.h"
11
-
12
+#include "ADM_pyAvidemux.h"
13
+#include "ADM_audiodef.h"
14
+#include "ADM_vidMisc.h"
15
+#include "fourcc.h"
16
+#include "DIA_fileSel.h"
17
+#include "DIA_coreToolkit.h"
18
+
19
/**
20
\fn audioProlog
21
-*/
22
-static bool audioProlog(IEditor *editor, int dex,WAVHeader &info)
23
-{
24
+*/
25
+static bool audioProlog(IEditor *editor, int dex,WAVHeader &info)
26
+{
27
ADM_audioStream *s=editor->getAudioStreamAt(dex);
28
if(!s)
29
{
30
31
return false;
32
}
33
info=*h;
34
- return true;
35
-}
36
+ return true;
37
+}
38
39
/**
40
\fn
41
\brief
42
-*/
43
-int pyChangeAudioStream(IEditor *editor, int track)
44
-{
45
+*/
46
+int pyChangeAudioStream(IEditor *editor, int track)
47
+{
48
// editor->changeAudioStream(0, track);
49
- return 0;
50
-}
51
+ return 0;
52
+}
53
+
54
+int pyGetAudioBitrate(IEditor *editor,int dex)
55
+{
56
+ WAVHeader h;
57
+ if(!audioProlog(editor,dex,h)) return 0;
58
+ return ((h.byterate)*8)/1000;
59
+}
60
+
61
62
/**
63
\fn pyGetAudioChannels
64
\brief
65
-*/
66
-
67
-int pyGetAudioChannels(IEditor *editor,int dex)
68
+*/
69
+
70
+int pyGetAudioChannels(IEditor *editor,int dex)
71
{
72
WAVHeader h;
73
- if(!audioProlog(editor,dex,h)) return 0;
74
- return h.channels;
75
-}
76
+ if(!audioProlog(editor,dex,h)) return 0;
77
+ return h.channels;
78
+}
79
/**
80
\fn pyGetAudioChannels
81
\brief
82
-*/
83
-
84
-int pyGetNumberOfAudioTracks(IEditor *editor)
85
+*/
86
+
87
+int pyGetNumberOfAudioTracks(IEditor *editor)
88
{
89
return editor->getNumberOfActiveAudioTracks();
90
-}
91
+}
92
/**
93
\fn
94
\brief
95
-*/
96
-
97
-int pyGetAudioFrequency(IEditor *editor,int dex)
98
-{
99
+*/
100
+
101
+int pyGetAudioFrequency(IEditor *editor,int dex)
102
+{
103
WAVHeader h;
104
- if(!audioProlog(editor,dex,h)) return 0;
105
- return h.frequency;
106
-
107
-}
108
+ if(!audioProlog(editor,dex,h)) return 0;
109
+ return h.frequency;
110
+
111
+}
112
/**
113
\fn
114
\brief
115
-*/
116
-
117
-int pyGetAudioEncoding(IEditor *editor,int dex)
118
-{
119
+*/
120
+
121
+int pyGetAudioEncoding(IEditor *editor,int dex)
122
+{
123
WAVHeader h;
124
- if(!audioProlog(editor,dex,h)) return 0;
125
- return h.encoding;
126
-}
127
+ if(!audioProlog(editor,dex,h)) return 0;
128
+ return h.encoding;
129
+}
130
/**
131
\fn
132
\brief
133
-*/
134
-
135
-int32_t pyGetPal2Film(IEditor *editor,int dex)
136
-{
137
- if (editor->getAudioFilterFrameRate(dex) == FILMCONV_PAL2FILM)
138
- {
139
- return 1;
140
- }
141
-
142
- return 0;
143
-}
144
+*/
145
+
146
+int32_t pyGetPal2Film(IEditor *editor,int dex)
147
+{
148
+ if (editor->getAudioFilterFrameRate(dex) == FILMCONV_PAL2FILM)
149
+ {
150
+ return 1;
151
+ }
152
+
153
+ return 0;
154
+}
155
/**
156
\fn
157
\brief
158
-*/
159
-
160
-int32_t pyGetFilm2Pal(IEditor *editor,int dex)
161
-{
162
- if (editor->getAudioFilterFrameRate(dex) == FILMCONV_FILM2PAL)
163
- {
164
- return 1;
165
- }
166
-
167
- return 0;
168
-}
169
+*/
170
+
171
+int32_t pyGetFilm2Pal(IEditor *editor,int dex)
172
+{
173
+ if (editor->getAudioFilterFrameRate(dex) == FILMCONV_FILM2PAL)
174
+ {
175
+ return 1;
176
+ }
177
+
178
+ return 0;
179
+}
180
/**
181
\fn
182
\brief
183
-*/
184
-
185
-int pySetPal2Film(IEditor *editor, int dex,int onoff)
186
-{
187
- if (onoff)
188
- {
189
- editor->setAudioFilterFrameRate(dex,FILMCONV_PAL2FILM);
190
- }
191
- else if (pyGetPal2Film(editor,dex))
192
- {
193
- editor->setAudioFilterFrameRate(dex,FILMCONV_NONE);
194
+*/
195
+
196
+int pySetPal2Film(IEditor *editor, int dex,int onoff)
197
+{
198
+ if (onoff)
199
+ {
200
+ editor->setAudioFilterFrameRate(dex,FILMCONV_PAL2FILM);
201
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/adm_gen.cpp -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/adm_gen.cpp
Changed
41
1
2
int r = editor->changeVideoParam(p0,p1);
3
return tp_number(r);
4
}
5
+// audioBitrate -> int pyGetAudioBitrate (IEditor int )
6
+static tp_obj zzpy_audioBitrate(TP)
7
+ {
8
+ tp_obj self = tp_getraw(tp);
9
+ IScriptEngine *engine = (IScriptEngine*)tp_get(tp, tp->builtins, tp_string("userdata")).data.val;
10
+ IEditor *editor = engine->editor();
11
+ TinyParams pm(tp);
12
+ void *me = (void *)pm.asThis(&self, ADM_PYID_AVIDEMUX);
13
+
14
+ IEditor *p0 = editor;
15
+ int p1 = pm.asInt();
16
+ int r = pyGetAudioBitrate(p0,p1);
17
+ return tp_number(r);
18
+}
19
// audioClearTracks -> int pyClearAudioTracks (IEditor )
20
static tp_obj zzpy_audioClearTracks(TP)
21
{
22
23
{
24
return tp_method(vm, self, zzpy_videoCodecChangeParam);
25
}
26
+ if (!strcmp(key, "audioBitrate"))
27
+ {
28
+ return tp_method(vm, self, zzpy_audioBitrate);
29
+ }
30
if (!strcmp(key, "audioClearTracks"))
31
{
32
return tp_method(vm, self, zzpy_audioClearTracks);
33
34
engine->callEventHandlers(IScriptEngine::Information, NULL, -1, "audioResetFilter(int)\n");
35
engine->callEventHandlers(IScriptEngine::Information, NULL, -1, "save(str)\n");
36
engine->callEventHandlers(IScriptEngine::Information, NULL, -1, "videoCodecChangeParam(str, couples)\n");
37
+ engine->callEventHandlers(IScriptEngine::Information, NULL, -1, "audioBitrate(IEditor, int)\n");
38
engine->callEventHandlers(IScriptEngine::Information, NULL, -1, "audioClearTracks(IEditor)\n");
39
engine->callEventHandlers(IScriptEngine::Information, NULL, -1, "getFps1000(IEditor)\n");
40
engine->callEventHandlers(IScriptEngine::Information, NULL, -1, "saveAudio(int,str)\n");
41
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/binding/adm.admPyClass -> avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_scriptEngines/tinyPy/src/binding/adm.admPyClass
Changed
15
1
2
/* METHOD */ int pyGetAudioFrequency:audioFrequency( int)
3
/* METHOD */ int pyGetAudioChannels:audioChannels( int)
4
/* METHOD */ int pyGetAudioEncoding:audioEncoding( int)
5
+/* METHOD */ int pyGetAudioBitrate:audioBitrate( int)
6
#
7
#
8
# cname:pyname
9
# Codec, container
10
/* METHOD */ int editor->setVideoCodec:videoCodec(str, couples)
11
+#/* METHOD */ int editor->videoCodecGui:videoCodecGui(str,couples) # couples is OUT !
12
/* METHOD */ int editor->changeVideoParam:videoCodecChangeParam(str, couples)
13
/* METHOD */ int editor->setVideoCodecProfile:videoCodecSetProfile(str, str)
14
/* METHOD */ int editor->setAudioCodec:audioCodec(int,str, couples)
15
avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/patch
Added
2
1
+(directory)
2
avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/patch/crude_hack_to_add_utf8_filename.patch
Added
201
1
2
+diff --git a/common/common.c b/common/common.c
3
+index d03201d..7701100 100644
4
+--- a/common/common.c
5
++++ b/common/common.c
6
+@@ -1217,7 +1217,7 @@ char *x264_slurp_file( const char *filename )
7
+ int b_error = 0;
8
+ size_t i_size;
9
+ char *buf;
10
+- FILE *fh = fopen( filename, "rb" );
11
++ FILE *fh = openf( filename, "rb" );
12
+ if( !fh )
13
+ return NULL;
14
+ b_error |= fseek( fh, 0, SEEK_END ) < 0;
15
+@@ -1368,4 +1368,96 @@ char *x264_param2string( x264_param_t *p, int b_res )
16
+
17
+ return buf;
18
+ }
19
++//
20
++// Convert UTF-8 string to wide char
21
++int utf8StringToWideChar(const char *utf8String, int utf8StringLength, wchar_t *wideCharString)
22
++{
23
++ int wideCharStringLength = MultiByteToWideChar(CP_UTF8, 0, utf8String, utf8StringLength, NULL, 0);
24
++
25
++ if (wideCharString)
26
++ MultiByteToWideChar(CP_UTF8, 0, utf8String, utf8StringLength, wideCharString, wideCharStringLength);
27
++
28
++ return wideCharStringLength;
29
++}
30
++
31
++/**
32
++ \fn ADM_fopen
33
++ \brief utf8 aware fopen, so that we can use utf8 string even on win32
34
++*/
35
++FILE *openf(const char *file, const char *mode)
36
++{
37
++ // Override fopen to handle Unicode filenames and to ensure exclusive access when initially writing to a file.
38
++ int fileNameLength = utf8StringToWideChar(file, -1, NULL);
39
++ wchar_t *wcFile = (wchar_t *)malloc(fileNameLength*sizeof(wchar_t));
40
++ int creation = 0, access = 0;
41
++ HANDLE hFile;
42
++
43
++ utf8StringToWideChar(file, -1, wcFile);
44
++
45
++ while (1)
46
++ {
47
++ if (strchr(mode, 'w'))
48
++ {
49
++ creation = CREATE_ALWAYS;
50
++ access = GENERIC_WRITE;
51
++
52
++ if (strchr(mode, '+'))
53
++ access |= GENERIC_READ;
54
++ }
55
++ else if (strchr(mode, 'r'))
56
++ {
57
++ creation = OPEN_EXISTING;
58
++ access = GENERIC_READ;
59
++
60
++ if (strchr(mode, '+'))
61
++ access = GENERIC_WRITE;
62
++ }
63
++ else if (strchr(mode, 'a'))
64
++ {
65
++ creation = OPEN_ALWAYS;
66
++ access = GENERIC_WRITE;
67
++
68
++ if (strchr(mode, '+'))
69
++ access |= GENERIC_READ;
70
++ }
71
++
72
++ if (creation & GENERIC_WRITE)
73
++ {
74
++ hFile = CreateFileW(wcFile, access, 0, NULL, creation, 0, NULL);
75
++
76
++ if (hFile == INVALID_HANDLE_VALUE)
77
++ break;
78
++ else
79
++ CloseHandle(hFile);
80
++ }
81
++
82
++ hFile = CreateFileW(wcFile, access, FILE_SHARE_READ, NULL, creation, 0, NULL);
83
++ break;
84
++ }
85
++
86
++ free( wcFile);
87
++
88
++ if (hFile == INVALID_HANDLE_VALUE)
89
++ return NULL;
90
++ else
91
++ return _fdopen(_open_osfhandle((intptr_t)hFile, 0), mode);
92
++ }
93
++
94
++BOOL ADM_rename(const char *src, const char *dst)
95
++{
96
++ int fileNameLength;
97
++ BOOL r;
98
++ fileNameLength = utf8StringToWideChar(src, -1, NULL);
99
++ wchar_t *wcFileSrc = (wchar_t *)malloc(fileNameLength*sizeof(wchar_t));
100
++ utf8StringToWideChar(src, -1, wcFileSrc);
101
++
102
++ fileNameLength = utf8StringToWideChar(dst, -1, NULL);
103
++ wchar_t *wcFileDst = (wchar_t *)malloc(fileNameLength*sizeof(wchar_t));
104
++ utf8StringToWideChar(dst, -1, wcFileDst);
105
+
106
++ r= MoveFileW(wcFileSrc,wcFileDst);
107
++ free(wcFileSrc);
108
++ free(wcFileDst);
109
++ return r;
110
++
111
++}
112
+diff --git a/common/osdep.h b/common/osdep.h
113
+index f7cad57..5b4c439 100644
114
+--- a/common/osdep.h
115
++++ b/common/osdep.h
116
+@@ -43,6 +43,10 @@
117
+ #ifdef _WIN32
118
+ #include <io.h> // _setmode()
119
+ #include <fcntl.h> // _O_BINARY
120
++#include <stdarg.h>
121
++#include <wchar.h>
122
++#include <windef.h> // MoveFileW
123
++#include <winbase.h> // MoveFileW
124
+ #endif
125
+
126
+ #ifdef __ICL
127
+@@ -68,7 +72,8 @@
128
+ #define isfinite finite
129
+ #endif
130
+ #ifdef _WIN32
131
+-#define rename(src,dst) (unlink(dst), rename(src,dst)) // POSIX says that rename() removes the destination, but win32 doesn't.
132
++extern BOOL ADM_rename(const char *src, const char *dst);
133
++#define rename(src,dst) (unlink(dst), ADM_rename(src,dst)) // POSIX says that rename() removes the destination, but win32 doesn't.
134
+ #ifndef strtok_r
135
+ #define strtok_r(str,delim,save) strtok(str,delim)
136
+ #endif
137
+diff --git a/configure b/configure
138
+index d527e8f..007d5a6 100755
139
+--- a/configure
140
++++ b/configure
141
+@@ -273,7 +273,7 @@ bit_depth="8"
142
+ chroma_format="all"
143
+ compiler="GNU"
144
+
145
+-CFLAGS="$CFLAGS -Wall -I. -I\$(SRCPATH)"
146
++CFLAGS="$CFLAGS -Wall -I. -I\$(SRCPATH) -include openf.h"
147
+ LDFLAGS="$LDFLAGS"
148
+ LDFLAGSCLI="$LDFLAGSCLI"
149
+ ASFLAGS="$ASFLAGS"
150
+diff --git a/encoder/encoder.c b/encoder/encoder.c
151
+index e9ea971..f618b73 100644
152
+--- a/encoder/encoder.c
153
++++ b/encoder/encoder.c
154
+@@ -82,7 +82,7 @@ static int x264_threadpool_wait_all( x264_t *h )
155
+
156
+ static void x264_frame_dump( x264_t *h )
157
+ {
158
+- FILE *f = fopen( h->param.psz_dump_yuv, "r+b" );
159
++ FILE *f = openf( h->param.psz_dump_yuv, "r+b" );
160
+ if( !f )
161
+ return;
162
+
163
+@@ -1323,7 +1323,7 @@ x264_t *x264_encoder_open( x264_param_t *param )
164
+ if( h->param.psz_dump_yuv )
165
+ {
166
+ /* create or truncate the reconstructed video file */
167
+- FILE *f = fopen( h->param.psz_dump_yuv, "w" );
168
++ FILE *f = openf( h->param.psz_dump_yuv, "w" );
169
+ if( !f )
170
+ {
171
+ x264_log( h, X264_LOG_ERROR, "dump_yuv: can't write to %s\n", h->param.psz_dump_yuv );
172
+diff --git a/encoder/ratecontrol.c b/encoder/ratecontrol.c
173
+index 0437fbd..b7098b2 100644
174
+--- a/encoder/ratecontrol.c
175
++++ b/encoder/ratecontrol.c
176
+@@ -728,7 +728,7 @@ int x264_ratecontrol_new( x264_t *h )
177
+ char *mbtree_stats_in = x264_strcat_filename( h->param.rc.psz_stat_in, ".mbtree" );
178
+ if( !mbtree_stats_in )
179
+ return -1;
180
+- rc->p_mbtree_stat_file_in = fopen( mbtree_stats_in, "rb" );
181
++ rc->p_mbtree_stat_file_in = openf( mbtree_stats_in, "rb" );
182
+ x264_free( mbtree_stats_in );
183
+ if( !rc->p_mbtree_stat_file_in )
184
+ {
185
+@@ -993,7 +993,7 @@ parse_error:
186
+ if( !rc->psz_stat_file_tmpname )
187
+ return -1;
188
+
189
+- rc->p_stat_file_out = fopen( rc->psz_stat_file_tmpname, "wb" );
190
++ rc->p_stat_file_out = openf( rc->psz_stat_file_tmpname, "wb" );
191
+ if( rc->p_stat_file_out == NULL )
192
+ {
193
+ x264_log( h, X264_LOG_ERROR, "ratecontrol_init: can't open stats file\n" );
194
+@@ -1011,7 +1011,7 @@ parse_error:
195
+ if( !rc->psz_mbtree_stat_file_tmpname || !rc->psz_mbtree_stat_file_name )
196
+ return -1;
197
+
198
+- rc->p_mbtree_stat_file_out = fopen( rc->psz_mbtree_stat_file_tmpname, "wb" );
199
++ rc->p_mbtree_stat_file_out = openf( rc->psz_mbtree_stat_file_tmpname, "wb" );
200
+ if( rc->p_mbtree_stat_file_out == NULL )
201
avidemux_2.6.6.tar.gz/avidemux_plugins/pluginsPackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux_plugins/pluginsPackageRpm.cmake
Changed
26
1
2
SET(CPACK_RPM_PACKAGE_ARCHITECTURE "i386")
3
ENDIF (X86_64_SUPPORTED)
4
# Mandatory
5
+SET(CPACK_RPM_PACKAGE_VERSION "${AVIDEMUX_VERSION}")
6
+SET(CPACK_RPM_PACKAGE_RELEASE "1.r${ADM_SUBVERSION}.bootstrap")
7
+SET(CPACK_RPM_PACKAGE_LICENSE "GPLv2+")
8
+SET(CPACK_RPM_PACKAGE_GROUP "System Environment/Libraries")
9
SET(CPACK_RPM_PACKAGE_VENDOR "mean")
10
-SET(CPACK_RPM_PACKAGE_DESCRIPTION "Simple video editor, plugins ")
11
+SET(CPACK_RPM_PACKAGE_DESCRIPTION "This package contains the runtime libraries for avidemux.")
12
13
#
14
SET(CPACK_RPM_PACKAGE_SECTION "extra")
15
SET(CPACK_RPM_PACKAGE_PRIORITY "optional")
16
# Some more infos
17
#
18
-SET(CPACK_PACKAGE_NAME "avidemux3-plugins-${PLUGIN_UI}")
19
+SET(CPACK_RPM_PACKAGE_SUMMARY "Libraries for avidemux")
20
+SET(CPACK_RPM_PACKAGE_REQUIRES "avidemux3-core%{?_isa} >= ${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}")
21
#
22
-SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
23
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}.${CPACK_RPM_PACKAGE_ARCHITECTURE}")
24
25
include(CPack)
26
avidemux_2.6.6.tar.gz/bootStrap.bash -> avidemux_2.6.7.tar.gz/bootStrap.bash
Changed
10
1
2
CMAKE_VERSION=`cmake --version | sed "s/^.* 2\.\([0-9]*\.[0-9]*\).*/2\.\1/g"`
3
echo "CMAKE Version : $CMAKE_VERSION"
4
case "$CMAKE_VERSION" in
5
- 2.8.8|2.8.7|2.8.9|2.8.10|2.8.11)
6
+ 2.8.8|2.8.7|2.8.9|2.8.10|2.8.11|2.8.12|2.8.13)
7
echo "Cmake version >=2.8.7 doesnt need fakeroot"
8
export FAKEROOT_COMMAND=""
9
;;
10
avidemux_2.6.6.tar.gz/cmake/FindBourne.cmake -> avidemux_2.6.7.tar.gz/cmake/FindBourne.cmake
Changed
10
1
2
message(STATUS "*************************")
3
4
find_program(BASH_EXECUTABLE
5
- sh
6
+ bash
7
${BASH_DIR}
8
/bin
9
/usr/bin
10
avidemux_2.6.6.tar.gz/cmake/avidemuxVersion.cmake -> avidemux_2.6.7.tar.gz/cmake/avidemuxVersion.cmake
Changed
11
1
2
-SET(RELEASE)
3
+SET(RELEASE 1)
4
SET(CPACK_PACKAGE_VERSION_MAJOR "2")
5
SET(CPACK_PACKAGE_VERSION_MINOR "6")
6
-SET(CPACK_PACKAGE_VERSION_PATCH "6")
7
+SET(CPACK_PACKAGE_VERSION_PATCH "7")
8
SET(AVIDEMUX_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
9
IF(NOT RELEASE)
10
SET(CPACK_PACKAGE_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}-${ADM_SUBVERSION}")
11