Overview

Request 763 (accepted)

- Update to version 2.6.7
* [MKV] Fix seeking in h264
* [TS/H264] Split on NALU boundaries, it was off by one byte
* [TS/AAC] Add support for AAC/LC/SBR
* [MOV/MP4] Correct management of PCM/8Bits audio track
* [Images] Fixed import of bmp and jpg
* [Build] Support for newer cmake (ajschult)
* [Build] Better RPM generation (mit)
* [Auto/PSP] Fixed scripts (LJ)

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

avidemux3.changes Changed
x
 
1
@@ -1,4 +1,15 @@
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
@@ -18,7 +18,7 @@
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
@@ -53,13 +53,8 @@
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
@@ -72,12 +67,8 @@
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
@@ -1,5 +1,5 @@
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
@@ -17,8 +17,8 @@
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
@@ -36,8 +36,8 @@
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
@@ -55,8 +55,8 @@
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
@@ -72,5 +72,5 @@
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
@@ -1,30 +0,0 @@
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
@@ -4,17 +4,21 @@
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
@@ -0,0 +1,7 @@
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
@@ -11,13 +11,18 @@
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
@@ -393,7 +393,7 @@
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
@@ -405,9 +405,14 @@
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
@@ -157,17 +157,35 @@
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
@@ -176,8 +194,16 @@
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
@@ -514,9 +514,11 @@
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
@@ -41,6 +41,9 @@
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
@@ -10,13 +10,19 @@
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
@@ -91,6 +91,8 @@
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
@@ -191,6 +191,8 @@
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
@@ -11,13 +11,18 @@
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
@@ -1,4 +1,4 @@
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
@@ -51,7 +51,19 @@
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
@@ -52,11 +52,15 @@
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
@@ -33,7 +33,7 @@
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
@@ -31,7 +31,7 @@
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
@@ -75,7 +75,10 @@
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
@@ -47,6 +47,18 @@
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
@@ -87,6 +99,35 @@
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
@@ -161,6 +161,8 @@
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
@@ -21,7 +21,18 @@
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
@@ -54,15 +65,102 @@
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
@@ -70,23 +168,27 @@
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
@@ -94,16 +196,18 @@
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
@@ -0,0 +1,30 @@
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
@@ -5,7 +5,7 @@
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
@@ -58,12 +58,16 @@
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
@@ -13,6 +13,7 @@
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
@@ -26,6 +26,7 @@
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
@@ -64,8 +65,8 @@
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,6 +2,8 @@
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
@@ -81,7 +83,7 @@
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
@@ -118,32 +120,43 @@
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
@@ -169,8 +182,11 @@
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
@@ -217,13 +233,12 @@
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
@@ -231,9 +246,9 @@
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
@@ -367,7 +382,10 @@
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
@@ -411,7 +429,7 @@
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
@@ -429,7 +447,7 @@
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
@@ -444,7 +462,7 @@
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
@@ -460,9 +478,10 @@
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
@@ -472,7 +491,7 @@
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
@@ -482,10 +501,9 @@
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
@@ -81,7 +81,7 @@
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,7 +2,6 @@
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
@@ -360,16 +360,15 @@
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
@@ -472,6 +472,8 @@
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
@@ -486,7 +488,7 @@
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
@@ -45,7 +45,7 @@
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
@@ -166,7 +166,15 @@
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
@@ -8,21 +8,21 @@
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
@@ -6,7 +6,7 @@
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
@@ -62,17 +62,18 @@
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
@@ -9,7 +9,7 @@
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
@@ -6,7 +6,7 @@
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
@@ -9,7 +9,7 @@
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
@@ -226,6 +226,7 @@
2
         _reordered=0;
3
         _videoScale=1;
4
         _videoFound=0;
5
+        delayRelativeToVideo=0;
6
 }
7
 /**
8
     \fn getAudioInfo
9
@@ -447,6 +448,10 @@
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
@@ -511,6 +516,23 @@
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
@@ -530,7 +552,13 @@
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
@@ -542,9 +570,8 @@
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
@@ -116,16 +116,19 @@
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
@@ -151,6 +154,7 @@
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
@@ -228,7 +228,7 @@
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
@@ -367,12 +367,47 @@
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
@@ -393,16 +428,7 @@
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
@@ -48,7 +48,7 @@
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
@@ -126,10 +126,10 @@
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
@@ -162,9 +162,9 @@
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
@@ -200,12 +200,17 @@
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
@@ -253,10 +258,12 @@
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
@@ -266,11 +273,11 @@
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
@@ -319,7 +326,7 @@
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
@@ -881,6 +881,49 @@
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
@@ -251,5 +251,6 @@
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
@@ -30,8 +30,8 @@
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
@@ -54,31 +54,54 @@
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
@@ -39,7 +39,7 @@
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
@@ -38,6 +38,18 @@
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
@@ -13,15 +13,16 @@
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
@@ -32,41 +33,41 @@
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
418
 
1
@@ -13,18 +13,18 @@
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
@@ -38,213 +38,221 @@
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
    }
202
-    return true;
203
-}
204
+   else if (pyGetPal2Film(editor,dex))
205
+   {
206
+       editor->setAudioFilterFrameRate(dex,FILMCONV_NONE);
207
+   }
208
+    return true;
209
+}
210
 /**
211
     \fn
212
     \brief
213
-*/
214
-
215
-int pySetFilm2Pal(IEditor *editor, int dex,int onoff)
216
-{
217
-   if (onoff)
218
-   {
219
-       editor->setAudioFilterFrameRate(dex,FILMCONV_FILM2PAL);
220
-   }
221
-   else if (pyGetFilm2Pal(editor,dex))
222
-   {
223
-       editor->setAudioFilterFrameRate(dex,FILMCONV_NONE);
224
+*/
225
+
226
+int pySetFilm2Pal(IEditor *editor, int dex,int onoff)
227
+{
228
+   if (onoff)
229
+   {
230
+       editor->setAudioFilterFrameRate(dex,FILMCONV_FILM2PAL);
231
    }
232
-    return true;
233
-}
234
+   else if (pyGetFilm2Pal(editor,dex))
235
+   {
236
+       editor->setAudioFilterFrameRate(dex,FILMCONV_NONE);
237
+   }
238
+    return true;
239
+}
240
 /**
241
     \fn
242
     \brief
243
-*/
244
-
245
-int pyGetNormalizeMode(IEditor *editor,int dex)
246
-{
247
-   ADM_GAINMode m;
248
-   uint32_t gain;
249
-
250
-   editor->getAudioFilterNormalise(dex,&m, &gain);
251
-
252
-   return m;
253
-}
254
+*/
255
+
256
+int pyGetNormalizeMode(IEditor *editor,int dex)
257
+{
258
+   ADM_GAINMode m;
259
+   uint32_t gain;
260
+
261
+   editor->getAudioFilterNormalise(dex,&m, &gain);
262
+
263
+   return m;
264
+}
265
 /**
266
     \fn
267
     \brief
268
-*/
269
-
270
-int pyGetNormalizeValue(IEditor *editor,int dex)
271
-{
272
-   ADM_GAINMode m;
273
-   uint32_t gain;
274
-
275
-   editor->getAudioFilterNormalise(dex,&m, &gain);
276
-
277
-   return (int)gain;
278
+*/
279
+
280
+int pyGetNormalizeValue(IEditor *editor,int dex)
281
+{
282
+   ADM_GAINMode m;
283
+   uint32_t gain;
284
+
285
+   editor->getAudioFilterNormalise(dex,&m, &gain);
286
+
287
+   return (int)gain;
288
 }
289
 /**
290
     \fn
291
     \brief
292
-*/
293
-
294
-int pySetNormalize(IEditor *editor, int dex,int mode,int value)
295
-{
296
-   ADM_GAINMode m;
297
-   uint32_t gain;
298
-    // 1 - set mode
299
-   editor->getAudioFilterNormalise(dex,&m, &gain);
300
+*/
301
+
302
+int pySetNormalize(IEditor *editor, int dex,int mode,int value)
303
+{
304
+   ADM_GAINMode m;
305
+   uint32_t gain;
306
+    // 1 - set mode
307
+   editor->getAudioFilterNormalise(dex,&m, &gain);
308
    m = (ADM_GAINMode)mode;
309
     // 2- set value
310
-    gain = (uint32_t)value;
311
+    gain = (uint32_t)value;
312
    return editor->setAudioFilterNormalise(dex,m, gain);
313
-}
314
-
315
+}
316
+
317
 /**
318
     \fn
319
     \brief
320
-*/
321
-
322
-int pySetNormalizeMode(IEditor *editor, int dex,int mode)
323
-{
324
-   ADM_GAINMode m;
325
-   uint32_t gain;
326
-
327
-   editor->getAudioFilterNormalise(dex,&m, &gain);
328
-   m = (ADM_GAINMode)mode;
329
-   editor->setAudioFilterNormalise(dex,m, gain);
330
-}
331
+*/
332
+
333
+int pySetNormalizeMode(IEditor *editor, int dex,int mode)
334
+{
335
+   ADM_GAINMode m;
336
+   uint32_t gain;
337
+
338
+   editor->getAudioFilterNormalise(dex,&m, &gain);
339
+   m = (ADM_GAINMode)mode;
340
+   editor->setAudioFilterNormalise(dex,m, gain);
341
+}
342
 /**
343
     \fn
344
     \brief
345
-*/
346
-
347
-int pySetNormalizeValue(IEditor *editor, int dex,int value)
348
-{
349
-   ADM_GAINMode m;
350
-   uint32_t gain;
351
-
352
-   editor->getAudioFilterNormalise(dex,&m, &gain);
353
-   gain = (uint32_t)value;
354
-   editor->setAudioFilterNormalise(dex,m, gain);
355
-}
356
+*/
357
+
358
+int pySetNormalizeValue(IEditor *editor, int dex,int value)
359
+{
360
+   ADM_GAINMode m;
361
+   uint32_t gain;
362
+
363
+   editor->getAudioFilterNormalise(dex,&m, &gain);
364
+   gain = (uint32_t)value;
365
+   editor->setAudioFilterNormalise(dex,m, gain);
366
+}
367
 /**
368
     \fn
369
     \brief
370
-*/
371
-int pyClearAudioTracks(IEditor *editor)
372
+*/
373
+int pyClearAudioTracks(IEditor *editor)
374
 {
375
     editor->clearAudioTracks();
376
-    return true;
377
-}
378
+    return true;
379
+}
380
 /**
381
     \fn
382
     \brief
383
-*/
384
-int pyAddAudioTrack(IEditor *editor,int poolIndex)
385
+*/
386
+int pyAddAudioTrack(IEditor *editor,int poolIndex)
387
 {
388
-    return editor->addAudioTrack(poolIndex);
389
+    return editor->addAudioTrack(poolIndex);
390
 }
391
 /**
392
     \fn
393
@@ -257,7 +265,7 @@
394
 /**
395
     \fn
396
     \brief
397
-*/
398
+*/
399
 int pyGetResample(IEditor *editor,int track)
400
 {
401
     return editor->getAudioResample(track);
402
@@ -275,7 +283,7 @@
403
     \fn
404
     \brief
405
 */
406
-
407
+
408
 int pyGetDrc(IEditor *editor,int track)
409
 {
410
     return editor->getAudioDrc(track);
411
@@ -312,5 +320,5 @@
412
     *onoff=bon;
413
     return true;
414
 }
415
-
416
+
417
 // EOF
418
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
@@ -103,6 +103,20 @@
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
@@ -592,6 +606,10 @@
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
@@ -767,6 +785,7 @@
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
@@ -37,11 +37,13 @@
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
269
 
1
@@ -0,0 +1,267 @@
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
+             {
202
+                 x264_log( h, X264_LOG_ERROR, "ratecontrol_init: can't open mbtree stats file\n" );
203
+diff --git a/openf.h b/openf.h
204
+new file mode 100644
205
+index 0000000..d01a5ab
206
+--- /dev/null
207
++++ b/openf.h
208
+@@ -0,0 +1,3 @@
209
++#include <stdio.h>
210
++extern FILE *openf (__const char *__restrict __filename,
211
++                    __const char *__restrict __modes);
212
+diff --git a/output/raw.c b/output/raw.c
213
+index ed3174c..cede924 100644
214
+--- a/output/raw.c
215
++++ b/output/raw.c
216
+@@ -30,7 +30,7 @@ static int open_file( char *psz_filename, hnd_t *p_handle, cli_output_opt_t *opt
217
+ {
218
+     if( !strcmp( psz_filename, "-" ) )
219
+         *p_handle = stdout;
220
+-    else if( !(*p_handle = fopen( psz_filename, "w+b" )) )
221
++    else if( !(*p_handle = openf( psz_filename, "w+b" )) )
222
+         return -1;
223
+ 
224
+     return 0;
225
+diff --git a/x264.c b/x264.c
226
+index 94c31fc..887a3ca 100644
227
+--- a/x264.c
228
++++ b/x264.c
229
+@@ -1076,7 +1076,7 @@ static int select_input( const char *demuxer, char *used_demuxer, char *filename
230
+     b_regular = b_regular && x264_is_regular_file_path( filename );
231
+     if( b_regular )
232
+     {
233
+-        FILE *f = fopen( filename, "r" );
234
++        FILE *f = openf( filename, "r" );
235
+         if( f )
236
+         {
237
+             b_regular = x264_is_regular_file( f );
238
+@@ -1320,7 +1320,7 @@ static int parse( int argc, char **argv, x264_param_t *param, cli_opt_t *opt )
239
+                 input_opt.index_file = optarg;
240
+                 break;
241
+             case OPT_QPFILE:
242
+-                opt->qpfile = fopen( optarg, "rb" );
243
++                opt->qpfile = openf( optarg, "rb" );
244
+                 FAIL_IF_ERROR( !opt->qpfile, "can't open qpfile `%s'\n", optarg )
245
+                 if( !x264_is_regular_file( opt->qpfile ) )
246
+                 {
247
+@@ -1379,7 +1379,7 @@ static int parse( int argc, char **argv, x264_param_t *param, cli_opt_t *opt )
248
+                 tcfile_name = optarg;
249
+                 break;
250
+             case OPT_TCFILE_OUT:
251
+-                opt->tcfile_out = fopen( optarg, "wb" );
252
++                opt->tcfile_out = openf( optarg, "wb" );
253
+                 FAIL_IF_ERROR( !opt->tcfile_out, "can't open `%s'\n", optarg )
254
+                 break;
255
+             case OPT_TIMEBASE:
256
+diff --git a/x264.h b/x264.h
257
+index 9219114..5b829e6 100644
258
+--- a/x264.h
259
++++ b/x264.h
260
+@@ -42,7 +42,7 @@
261
+ #include "x264_config.h"
262
+ 
263
+ #define X264_BUILD 123
264
+-
265
++#define X264_USE_UTF8
266
+ /* Application developers planning to link against a shared library version of
267
+  * libx264 from a Microsoft Visual Studio or similar development environment
268
+  * will need to define X264_API_IMPORTS before including this header.
269
avidemux_2.6.6.tar.gz/avidemux_plugins/pluginsPackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux_plugins/pluginsPackageRpm.cmake Changed
26
 
1
@@ -11,16 +11,21 @@
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
@@ -93,7 +93,7 @@
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
@@ -3,7 +3,7 @@
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
@@ -1,7 +1,7 @@
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
Refresh

No build results available

Refresh

No rpmlint results available

Request History
enzokiel's avatar

enzokiel created request over 11 years ago

- Update to version 2.6.7
* [MKV] Fix seeking in h264
* [TS/H264] Split on NALU boundaries, it was off by one byte
* [TS/AAC] Add support for AAC/LC/SBR
* [MOV/MP4] Correct management of PCM/8Bits audio track
* [Images] Fixed import of bmp and jpg
* [Build] Support for newer cmake (ajschult)
* [Build] Better RPM generation (mit)
* [Auto/PSP] Fixed scripts (LJ)


Peter Linnell's avatar

mrdocs accepted request over 11 years ago

Thanks!