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