Projects
Multimedia
avidemux3
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 3
View file
avidemux3.changes
Changed
@@ -1,4 +1,15 @@ ------------------------------------------------------------------- +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 -------------------------------------------------------------------
View file
avidemux3.spec
Changed
@@ -18,7 +18,7 @@ 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 @@ -53,13 +53,8 @@ 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 @@ -72,12 +67,8 @@ # 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
View file
avidemux-linking.patch
Changed
@@ -1,5 +1,5 @@ ---- 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 @@ ) @@ -17,8 +17,8 @@ # 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 @@ ) @@ -36,8 +36,8 @@ # 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 @@ ) @@ -55,8 +55,8 @@ # 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) @@ -72,5 +72,5 @@ +) + # + target_link_libraries(avidemux3_jobs "-lm -lstdc++") # -
View file
avidemux_2.6.6.tar.gz/admin
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/audio
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/codecwrite
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/dialogFactory
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/dialogFactory/unit
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/functiontest
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/utils
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/videofunc
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_audioFilter_old
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_codecs
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_filter
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_infoExtractor
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_mpegIndexer
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_ocr
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_video
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/common/ADM_videoFilter
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/qt4/ADM_userInterfaces/ADM_filters/icons
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/xpm
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux/xpm/build
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/include
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/src
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/src/Source
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreJson/src/Source/JSONDefs
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreMuxer/include/ADM_audioClock.h
Deleted
@@ -1,30 +0,0 @@ -/** - * - * - * - * - */ -#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
View file
avidemux_2.6.6.tar.gz/avidemux_core/ADM_coreSqlite3
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/doxygen
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/html
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/man
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/man/man1
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/base
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/changelog
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/releasenotes
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/doc/texi/tool
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/muxerMp4v2/libmp4v2/libutil
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_dummy
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_flv
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_mpeg
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_mpegFF
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_muxers/oplug_ogm
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/xml
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ASharp
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ASharp/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ASharp/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AddBorders
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Ass
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Ass/ADM_libass
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AvisynthResize
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AvisynthResize/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/AvisynthResize/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/BlackenBorders
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ChromaShift
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ChromaShift/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ChromaShift/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Contrast
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Contrast/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Contrast/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Crop
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Crop/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Crop/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Decimate
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/DgBob
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Eq2
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Eq2/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Eq2/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/FastConvolution
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/FluxSmooth
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Hue
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Hue/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Hue/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/KeepField
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/KernelDeint
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/LargeMedian
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Logo
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/LumaOnly
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MPDelogo
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MPDelogo/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MSharpen
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerDenoise3D
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerResize
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerResize/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/MplayerResize/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/ResampleFps
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Rotate
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/SwapUV
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Telecide
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Unblend
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/VerticalFlip
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/Yadif
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/colorYUV
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/colorYUV/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters/lavDeinterlace
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/ADM_videoFilters6_openGl/sample
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/cmake/patches
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/debian
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_ac3
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_ac3/ADM_liba52
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_amrnb
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_dca
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_faad
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_mad
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_mad/ADM_libMad
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDecoders/ADM_ad_vorbis
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Alsa
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Arts
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/AudioCore
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Esd
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Jack
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Oss
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/PulseAudioSimple
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Sdl
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioDevices/Win32
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/aften
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/faac
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/lame
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/lavcodec
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/pcm
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/twolame
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/twolame/ADM_libtwolame
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_audioEncoders/vorbis
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Flv
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Matroska
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Mp4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/MpegPS
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/MpegTS
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/OpenDml
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_demuxers/Pictures
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerAvi
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerDummy
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerFlv
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerMp4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/muxerRaw
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_dummy
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_flv
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_mpeg
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_mpegFF
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_muxers/oplug_ogm
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_x264/xml
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_xvid
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_xvid/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/ADM_vidEnc_xvid/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/huff
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/jpeg
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/png
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/x264/xml
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoEncoder/yv12
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ASharp
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ASharp/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ASharp/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AddBorders
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Animated
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Ass
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Ass/ADM_libass
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AvisynthResize
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AvisynthResize/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/AvisynthResize/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/BlackenBorders
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/BlendRemover
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/CNR2
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/CNR2/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Chroma
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ChromaShift
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ChromaShift/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ChromaShift/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Clean
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Contrast
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Contrast/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Contrast/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Crop
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Crop/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Crop/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Decimate
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Deinterlace
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Delta
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Denoise
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/DgBob
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/DropOut
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Eq2
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Eq2/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Eq2/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Equalizer
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Equalizer/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Fade
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/FastConvolution
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/FluxSmooth
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ForcedPP
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Hue
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Hue/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Hue/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/KeepField
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/KernelDeint
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/LargeMedian
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Logo
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/LumaOnly
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MPDelogo
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MPDelogo/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MSharpen
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MSmooth
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/McDeint
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Mosaic
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerDenoise3D
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerResize
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerResize/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/MplayerResize/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/PalShift
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Pulldown
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/PulldownRemoval
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/ResampleFps
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Reverse
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Rotate
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Soften
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Srt
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Srt/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Srt/qt4
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Stabilize
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/SwapField
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/SwapUV
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/TIsophote
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/TIsophote/original
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Tdeint
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Telecide
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/TemporalCleaner
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Unblend
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/VerticalFlip
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Whirl
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/Yadif
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/colorYUV
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/colorYUV/gtk
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/plugins/ADM_videoFilters/lavDeinterlace
Deleted
-(directory)
View file
avidemux_2.6.6.tar.gz/autononreg/py/avidemux/pyFrequency.py -> avidemux_2.6.7.tar.gz/autononreg/py/avidemux/pyFrequency.py
Changed
@@ -4,17 +4,21 @@ 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...")
View file
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
@@ -0,0 +1,7 @@ +#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__) */
View file
avidemux_2.6.6.tar.gz/avidemux/cli/cliPackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux/cli/cliPackageRpm.cmake
Changed
@@ -11,13 +11,18 @@ 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)
View file
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
@@ -393,7 +393,7 @@ uint8_t ret = 0; EditorCache *cache; ADMImage *result; - uint32_t flags; + uint32_t flags,flagsNext=0; ADMCompressedImage img; // PlaceHolder... @@ -405,9 +405,14 @@ 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;
View file
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
@@ -157,17 +157,35 @@ } } } + 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 ? @@ -176,8 +194,16 @@ // //** // 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
View file
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
@@ -514,9 +514,11 @@ 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;
View file
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
@@ -41,6 +41,9 @@ #include "ADM_codecVdpau.h" #include "ADM_threads.h" +#if defined(__sun__) +#include <alloca.h> +#endif /* : defined(__sun__) */ static bool vdpauWorking=false; static admMutex surfaceMutex;
View file
avidemux_2.6.6.tar.gz/avidemux/gtk/gtkPackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux/gtk/gtkPackageRpm.cmake
Changed
@@ -10,13 +10,19 @@ 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)
View file
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
@@ -91,6 +91,8 @@ TARGET_LINK_LIBRARIES(avidemux3_jobs ADM_coreUtils6) TARGET_LINK_LIBRARIES(avidemux3_jobs ADM_core6) # +target_link_libraries(avidemux3_jobs "-lm -lstdc++") +# #
View file
avidemux_2.6.6.tar.gz/avidemux/qt4/CMakeLists.txt -> avidemux_2.6.7.tar.gz/avidemux/qt4/CMakeLists.txt
Changed
@@ -191,6 +191,8 @@ TARGET_LINK_LIBRARIES(avidemux3_qt4 ADM_core6) TARGET_LINK_LIBRARIES(avidemux3_qt4 ADM_core6) endif(CROSS) + +target_link_libraries(avidemux3_qt4 "-lm -lstdc++") # # i18n #
View file
avidemux_2.6.6.tar.gz/avidemux/qt4/qt4PackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux/qt4/qt4PackageRpm.cmake
Changed
@@ -11,13 +11,18 @@ 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)
View file
avidemux_2.6.6.tar.gz/avidemux/winInstaller/Build Info.txt -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/Build Info.txt
Changed
@@ -1,4 +1,4 @@ -Avidemux 2.6.4 +Avidemux 2.6.7 ----------------------- Built using GCC 4.8.1 Packaged with NSIS 2.46.
View file
avidemux_2.6.6.tar.gz/avidemux/winInstaller/Change Log.html -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/Change Log.html
Changed
@@ -51,7 +51,19 @@ <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>
View file
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
@@ -52,11 +52,15 @@ <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>
View file
avidemux_2.6.6.tar.gz/avidemux/winInstaller/avidemux_cross.nsi -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/avidemux_cross.nsi
Changed
@@ -33,7 +33,7 @@ !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)"
View file
avidemux_2.6.6.tar.gz/avidemux/winInstaller/avidemux_cross64.nsi -> avidemux_2.6.7.tar.gz/avidemux/winInstaller/avidemux_cross64.nsi
Changed
@@ -31,7 +31,7 @@ !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)"
View file
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
@@ -75,7 +75,10 @@ #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
View file
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
@@ -47,6 +47,18 @@ 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; @@ -87,6 +99,35 @@ 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; + } };
View file
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
@@ -161,6 +161,8 @@ np = 1; return np; +#elif defined(__sun__) + return sysconf( _SC_NPROCESSORS_ONLN ); #elif defined(__unix__) && !defined(__CYGWIN__) unsigned int bit; int np;
View file
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
@@ -21,7 +21,18 @@ #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" @@ -54,15 +65,102 @@ 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) @@ -70,23 +168,27 @@ #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; @@ -94,16 +196,18 @@ { 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)
View file
avidemux_2.6.7.tar.gz/avidemux_core/ADM_coreAudio/include/ADM_audioClock.h
Added
@@ -0,0 +1,30 @@ +/** + * + * + * + * + */ +#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
View file
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)
View file
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
@@ -5,7 +5,7 @@ */ #include "ADM_default.h" #include "ADM_audioStreamPCM.h" - +#include "ADM_vidMisc.h" /** \fn ADM_audioStreamAC3 \brief constructor @@ -58,12 +58,16 @@ { 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; }
View file
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
@@ -13,6 +13,7 @@ ADM_audioWriteWav.cpp ADM_audioIdentify.cpp ADM_audioAccessFile.cpp +ADM_audioClock.cpp ) add_compiler_export_flags()
View file
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
@@ -26,6 +26,7 @@ #include "ADM_getbits.h" #include "ADM_byteBuffer.h" #include <list> +#include "ADM_ptrQueue.h" /** \class ADM_latm2aac */ @@ -64,8 +65,8 @@ { 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;
View file
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
@@ -2,6 +2,8 @@ \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 ***************************************************************************/ /*************************************************************************** @@ -81,7 +83,7 @@ /** */ -static int LatmGetValue( getBits bits ) +static int LatmGetValue( getBits &bits ) { int i_bytes = bits.get( 2 ); int v = 0; @@ -118,32 +120,43 @@ } 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; @@ -169,8 +182,11 @@ } #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; @@ -217,13 +233,12 @@ } // 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++) { @@ -231,9 +246,9 @@ } b->bufferLen=size; if(!conf.gotConfig) - listOfFreeBuffers.push_back(b); + listOfFreeBuffers.pushBack(b); else - listOfUsedBuffers.push_back(b); + listOfUsedBuffers.pushBack(b); return true; }else { @@ -367,7 +382,10 @@ 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) @@ -411,7 +429,7 @@ 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; @@ -429,7 +447,7 @@ // LATM demux start+=len; } - xdebug("-- end of this LOAS frame --\n"); + xdebug("-- end of this LATM frame --\n"); return true; } /** @@ -444,7 +462,7 @@ 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 @@ -460,9 +478,10 @@ */ 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 @@ -472,7 +491,7 @@ listOfFreeBuffers.clear(); listOfUsedBuffers.clear(); for(int i=0;i<LATM_NB_BUFFERS;i++) - listOfFreeBuffers.push_back(&(buffers[i])); + listOfFreeBuffers.pushBack(&(buffers[i])); return true; } /** @@ -482,10 +501,9 @@ 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");
View file
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
@@ -81,7 +81,7 @@ 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.;
View file
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
@@ -2,7 +2,6 @@ SET(ADMcoreMuxer_SRCS ADM_dynaMuxer.cpp ADM_muxerUtils.cpp -ADM_audioClock.cpp ADM_coreMuxerFfmpeg.cpp )
View file
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
@@ -360,16 +360,15 @@ 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;
View file
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
@@ -472,6 +472,8 @@ 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) { @@ -486,7 +488,7 @@ } head += nalSize; // Skip nal lenth stream = *(head) & 0x1F; - uint32_t recovery; + switch (stream) {
View file
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
@@ -45,7 +45,7 @@ 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:
View file
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
@@ -166,7 +166,15 @@ */ 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; } /**
View file
avidemux_2.6.6.tar.gz/avidemux_core/corePackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux_core/corePackageRpm.cmake
Changed
@@ -8,21 +8,21 @@ 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)
View file
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
@@ -6,7 +6,7 @@ import ADM_imageInfo import ADM_image finalSizeWidth=480 # Start with DVD target, we'll adjust later -finalSizeHeight=[272] +finalSizeHeight=[272,272,272] # # adm=Avidemux() @@ -62,17 +62,18 @@ ################################## # 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 ###################################
View file
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
@@ -9,7 +9,7 @@ adm=Avidemux() gui=Gui() finalSizeWidth=720 -finalSizeHeight=[ 480,576] +finalSizeHeight=[ 480,576,480] # # MP2=80
View file
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
@@ -6,7 +6,7 @@ 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()
View file
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
@@ -9,7 +9,7 @@ adm=Avidemux() gui=Gui() finalSizeWidth=352 -finalSizeHeight=[ 240,288] +finalSizeHeight=[ 240,288,240] # MP2=80 supported=[MP2]
View file
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
@@ -226,6 +226,7 @@ _reordered=0; _videoScale=1; _videoFound=0; + delayRelativeToVideo=0; } /** \fn getAudioInfo @@ -447,6 +448,10 @@ Now build audio tracks */ if(nbAudioTrack) _isaudiopresent=1; // Still needed ? + + adjustElstDelay(); + + // for(int audio=0;audio<nbAudioTrack;audio++) { switch(_tracks[1+audio]._rdWav.encoding) @@ -511,6 +516,23 @@ 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 @@ -530,7 +552,13 @@ 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++) @@ -542,9 +570,8 @@ _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
View file
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
@@ -116,16 +116,19 @@ { 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; @@ -151,6 +154,7 @@ 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 );
View file
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
@@ -228,7 +228,7 @@ case ADM_MP4_EDTS: { ADM_info("EDTS atom found\n"); - parseEdts(&son); + parseEdts(&son,trackType); break; } default: @@ -367,12 +367,47 @@ } 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; @@ -393,16 +428,7 @@ 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;
View file
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
@@ -48,7 +48,7 @@ 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);
View file
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
@@ -126,10 +126,10 @@ 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 @@ -162,9 +162,9 @@ 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;
View file
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
@@ -200,12 +200,17 @@ //****************** // 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) { @@ -253,10 +258,12 @@ 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; @@ -266,11 +273,11 @@ 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: @@ -319,7 +326,7 @@ 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;
View file
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
@@ -881,6 +881,49 @@ 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()
View file
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
@@ -251,5 +251,6 @@ bool getStats(uint32_t *nb,packetTSStats **stats); virtual bool updateStats(uint8_t *data); int findStartCode(void); + int findStartCode2(bool &fourBytes); }; #endif
View file
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
@@ -30,8 +30,8 @@ #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 @@ -54,31 +54,54 @@ 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
View file
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
@@ -39,7 +39,7 @@ #endif #define DEPACK_VERBOSE -#define MAX_VOP 10 +#define MAX_VOP 200 /* Static ones */
View file
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
@@ -38,6 +38,18 @@ 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;
View file
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
@@ -13,15 +13,16 @@ * * ***************************************************************************/ -#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); @@ -32,41 +33,41 @@ 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
View file
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
@@ -13,18 +13,18 @@ * * ***************************************************************************/ -#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) { @@ -38,213 +38,221 @@ 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 @@ -257,7 +265,7 @@ /** \fn \brief -*/ +*/ int pyGetResample(IEditor *editor,int track) { return editor->getAudioResample(track); @@ -275,7 +283,7 @@ \fn \brief */ - + int pyGetDrc(IEditor *editor,int track) { return editor->getAudioDrc(track); @@ -312,5 +320,5 @@ *onoff=bon; return true; } - + // EOF
View file
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
@@ -103,6 +103,20 @@ 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) { @@ -592,6 +606,10 @@ { 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); @@ -767,6 +785,7 @@ 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");
View file
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
@@ -37,11 +37,13 @@ /* 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)
View file
avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/patch
Added
+(directory)
View file
avidemux_2.6.7.tar.gz/avidemux_plugins/ADM_videoEncoder/x264/patch/crude_hack_to_add_utf8_filename.patch
Added
@@ -0,0 +1,267 @@ +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.
View file
avidemux_2.6.6.tar.gz/avidemux_plugins/pluginsPackageRpm.cmake -> avidemux_2.6.7.tar.gz/avidemux_plugins/pluginsPackageRpm.cmake
Changed
@@ -11,16 +11,21 @@ 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)
View file
avidemux_2.6.6.tar.gz/bootStrap.bash -> avidemux_2.6.7.tar.gz/bootStrap.bash
Changed
@@ -93,7 +93,7 @@ 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="" ;;
View file
avidemux_2.6.6.tar.gz/cmake/FindBourne.cmake -> avidemux_2.6.7.tar.gz/cmake/FindBourne.cmake
Changed
@@ -3,7 +3,7 @@ message(STATUS "*************************") find_program(BASH_EXECUTABLE - sh + bash ${BASH_DIR} /bin /usr/bin
View file
avidemux_2.6.6.tar.gz/cmake/avidemuxVersion.cmake -> avidemux_2.6.7.tar.gz/cmake/avidemuxVersion.cmake
Changed
@@ -1,7 +1,7 @@ -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}")
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.