Hello community, here is the log from the commit of package dirac.2254 for openSUSE:13.1:Update checked in at 2013-12-11 16:28:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.1:Update/dirac.2254 (Old) and /work/SRC/openSUSE:13.1:Update/.dirac.2254.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dirac.2254" Changes: -------- New Changes file: --- /dev/null 2013-11-25 01:44:08.036031256 +0100 +++ /work/SRC/openSUSE:13.1:Update/.dirac.2254.new/dirac.changes 2013-12-11 16:28:54.000000000 +0100 @@ -0,0 +1,90 @@ +------------------------------------------------------------------- +Wed Nov 27 14:56:21 UTC 2013 - [email protected] + +- fix build for aarch64, no valgrind there + +------------------------------------------------------------------- +Thu Dec 20 01:00:27 CET 2012 - [email protected] + +- buildrequire pkg-config regardless of build-architecture + +------------------------------------------------------------------- +Fri Dec 9 11:49:18 UTC 2011 - [email protected] + +- fix license to be in spdx.org format + +------------------------------------------------------------------- +Fri Sep 30 20:07:55 UTC 2011 - [email protected] + +- add libtool as buildrequire to make the spec file more reliable + +------------------------------------------------------------------- +Sun Sep 18 17:17:12 UTC 2011 - [email protected] + +- Remove redundant tags/sections from specfile + (cf. packaging guidelines) +- Use %_smp_mflags for parallel build +- Add dirac-devel to baselibs + +------------------------------------------------------------------- +Fri Apr 14 13:38:21 UTC 2011 - [email protected] + +- added 32bit compatibility libraries + +------------------------------------------------------------------- +Mon May 24 13:25:36 UTC 2010 - [email protected] + +- Split off doc subpackage + +------------------------------------------------------------------- +Mon May 24 07:01:37 UTC 2010 - [email protected] + +- Added Provides: and Obsoletes: for packman libdirac-devel +- Included patch from dirac git to fix uninitialised memory read + that causes the encoder to crash when using non-overlapping blocks. + +------------------------------------------------------------------- +Sun May 9 08:49:10 UTC 2010 - [email protected] + +- Fixed factory build with patch from git dirac-1.0.2-gcc45.patch + +------------------------------------------------------------------- +Fri Dec 18 22:46:01 CET 2009 - [email protected] + +- exclude valgrind-devel on SPARC + +------------------------------------------------------------------- +Sun Jul 12 14:31:22 CEST 2009 - [email protected] + +- fix build in disabling as-needed + +------------------------------------------------------------------- +Wed Jul 1 17:44:48 CEST 2009 - [email protected] + +- Updated to version 1.0.2: + * minor release complying with the latest Dirac Bytestream + Specification 2.2.3. + * Improved compression performance for small picture sizes. + * Improved compression performance at low bit-rates. + * Included macros to check the API version. + * Improved motion estimation. + * New 422 <-> 420 conversion utilities for interlaced video. + * New functionality added to encoder API. + * Fixed bugs in handling DC subband. + +------------------------------------------------------------------- +Wed Apr 29 19:26:44 CEST 2009 - [email protected] + +- Worked around internal compiler error on 11.0-x86_64. + +------------------------------------------------------------------- +Tue Nov 25 10:26:27 CET 2008 - [email protected] + +- do not buildrequire valgrind on ia64 s390 s390x + (does not exist on these platforms) + +------------------------------------------------------------------- +Thu Nov 6 10:40:56 CET 2008 - [email protected] + +- New SuSE package (bnc#441855). + New: ---- 0001-Fix-uninitialised-memory-read-that-causes-the-encode.patch baselibs.conf dirac-1.0.2-gcc45.patch dirac-1.0.2.tar.bz2 dirac.changes dirac.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dirac.spec ++++++ # # spec file for package dirac # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: dirac Version: 1.0.2 Release: 0 Url: http://diracvideo.org/ Summary: The Dirac_Video Codec License: MPL-1.1 Group: Productivity/Multimedia/Video/Editors and Convertors Source: %{name}-%{version}.tar.bz2 Patch0: 0001-Fix-uninitialised-memory-read-that-causes-the-encode.patch Patch1: %{name}-%{version}-gcc45.patch BuildRequires: gcc-c++ BuildRequires: libcppunit-devel BuildRequires: libstdc++-devel BuildRequires: libtool BuildRequires: pkg-config %ifarch %ix86 ppc x86_64 BuildRequires: valgrind-devel %endif BuildRequires: doxygen BuildRequires: fdupes BuildRequires: graphviz-gd BuildRequires: texlive-latex BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Dirac is an open source video codec. It uses a traditional hybrid video codec architecture, but with the wavelet transform instead of the usual block transforms. Motion compensation uses overlapped blocks to reduce block artefacts that would upset the transform coding stage. Dirac can code just about any size of video, from streaming up to HD and beyond, although certain presets are defined for different applications and standards. These cover the parameters that need to be set for the encoder to work, such as block sizes and temporal prediction structures, which must otherwise be set by hand. Dirac is intended to develop into real coding and decoding software, capable of plugging into video processing applications and media players that need compression. It is intended to develop into a simple set of reliable but effective coding tools that work over a wide variety of content and formats, using well-understood compression techniques, in a clear and accessible software structure. It is not intended as a demonstration or reference coder. %package -n libdirac_decoder0 Summary: Dirac Video Codec Decoder Library Group: System/Libraries %description -n libdirac_decoder0 Dirac is an open source video codec. It uses a traditional hybrid video codec architecture, but with the wavelet transform instead of the usual block transforms. Motion compensation uses overlapped blocks to reduce block artefacts that would upset the transform coding stage. Dirac can code just about any size of video, from streaming up to HD and beyond, although certain presets are defined for different applications and standards. These cover the parameters that need to be set for the encoder to work, such as block sizes and temporal prediction structures, which must otherwise be set by hand. Dirac is intended to develop into real coding and decoding software, capable of plugging into video processing applications and media players that need compression. It is intended to develop into a simple set of reliable but effective coding tools that work over a wide variety of content and formats, using well-understood compression techniques, in a clear and accessible software structure. It is not intended as a demonstration or reference coder. %package -n libdirac_encoder0 Summary: Dirac Video Codec Encoder Library Group: System/Libraries %description -n libdirac_encoder0 Dirac is an open source video codec. It uses a traditional hybrid video codec architecture, but with the wavelet transform instead of the usual block transforms. Motion compensation uses overlapped blocks to reduce block artefacts that would upset the transform coding stage. Dirac can code just about any size of video, from streaming up to HD and beyond, although certain presets are defined for different applications and standards. These cover the parameters that need to be set for the encoder to work, such as block sizes and temporal prediction structures, which must otherwise be set by hand. Dirac is intended to develop into real coding and decoding software, capable of plugging into video processing applications and media players that need compression. It is intended to develop into a simple set of reliable but effective coding tools that work over a wide variety of content and formats, using well-understood compression techniques, in a clear and accessible software structure. It is not intended as a demonstration or reference coder. %package devel Summary: Development Files for Dirac Video Codec Group: Development/Libraries/C and C++ Requires: libdirac_decoder0 = %{version} Requires: libdirac_encoder0 = %{version} Provides: libdirac-devel = %{version}-%{release} Obsoletes: libdirac-devel < %{version}-%{release} %description devel Dirac is an open source video codec. It uses a traditional hybrid video codec architecture, but with the wavelet transform instead of the usual block transforms. Motion compensation uses overlapped blocks to reduce block artefacts that would upset the transform coding stage. Dirac can code just about any size of video, from streaming up to HD and beyond, although certain presets are defined for different applications and standards. These cover the parameters that need to be set for the encoder to work, such as block sizes and temporal prediction structures, which must otherwise be set by hand. Dirac is intended to develop into real coding and decoding software, capable of plugging into video processing applications and media players that need compression. It is intended to develop into a simple set of reliable but effective coding tools that work over a wide variety of content and formats, using well-understood compression techniques, in a clear and accessible software structure. It is not intended as a demonstration or reference coder. %package doc Summary: Dirac Video Codec api documentation Group: Documentation/HTML %if 0%{?suse_version} > 1110 BuildArch: noarch %endif %description doc This package provides the api reference documentation for using dirac libraries in your program. %prep %setup -q %patch0 -p1 %patch1 -p1 # Code is not mature enough for -Werror (unused results) sed -i 's/-Werror//' configure.ac %build # fix build in disabling as-needed export SUSE_ASNEEDED=0 ACLOCAL="aclocal -I m4" autoreconf -f -i %if %suse_version == 1100 %ifarch x86_64 export CXXFLAGS="$RPM_OPT_FLAGS -O0" %endif %endif %configure\ --disable-static \ --docdir=%{_docdir}/packages/%{name} make %{?_smp_mflags} #htmldir=%{_docdir}/%{name}/code/api_html %install %makeinstall htmldir=%{_docdir}/%{name}/code/api_html %{__rm} -f %{buildroot}%{_libdir}/*.la %{__cp} -a AUTHORS COPYING ChangeLog NEWS README TODO %{buildroot}%{_docdir}/%{name}/ %fdupes %{buildroot}%{_docdir}/%{name} %post -n libdirac_decoder0 -p /sbin/ldconfig %postun -n libdirac_decoder0 -p /sbin/ldconfig %post -n libdirac_encoder0 -p /sbin/ldconfig %postun -n libdirac_encoder0 -p /sbin/ldconfig %files %defattr (-, root, root) #%%doc AUTHORS COPYING ChangeLog NEWS README TODO #%%doc %{_docdir}/%{name}/[ACNRT]* %{_bindir}/* %files -n libdirac_decoder0 %defattr (-, root, root) %{_libdir}/libdirac_decoder.so.0* %files -n libdirac_encoder0 %defattr (-, root, root) %{_libdir}/libdirac_encoder.so.0* %files devel %defattr (-, root, root) #%%doc %{_docdir}/%{name}/[ACNRT]* %{_libdir}/*.so #%{_libdir}/*.*a %{_libdir}/pkgconfig/*.pc %{_includedir}/%{name} %files doc %defattr (-, root, root) %doc %{_docdir}/%{name} %changelog ++++++ 0001-Fix-uninitialised-memory-read-that-causes-the-encode.patch ++++++ >From 88fae6224b54ecf92ac6e3ae5083c3f352adc798 Mon Sep 17 00:00:00 2001 From: Anuradha Suraparaju <[email protected]> Date: Fri, 17 Apr 2009 17:47:27 +1000 Subject: [PATCH] Fix uninitialised memory read that causes the encoder to crash when using non-overlapping blocks. --- libdirac_common/mot_comp.cpp | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) diff --git a/libdirac_common/mot_comp.cpp b/libdirac_common/mot_comp.cpp index aa8d37c..e0ec2ff 100644 --- a/libdirac_common/mot_comp.cpp +++ b/libdirac_common/mot_comp.cpp @@ -306,6 +306,8 @@ void MotionCompensator::CompensateComponent( Picture* pic , int save_from_row = m_bparams.Ybsep()-m_bparams.Yoffset(); + bool row_overlap = ((m_bparams.Yblen() - m_bparams.Ybsep()) > 0); + // unpadded picture dimensions const int x_end_data = pic_data_out.FirstX() + std::min(pic_data_out.LengthX(), pic_size.x ); const int y_end_data = pic_data_out.FirstY() + std::min(pic_data_out.LengthY(), pic_size.y ); @@ -489,12 +491,19 @@ void MotionCompensator::CompensateComponent( Picture* pic , //Increment the block vertical position pos.y += m_bparams.Ybsep(); - // Copy the rows required to motion compensate the next row of block. - // This is usually Yblen-Ybsep rows. - memmove (pic_data[0], pic_data[save_from_row], (m_bparams.Yblen() - save_from_row)*pic_data.LengthX()*sizeof(ValueType)); - memset( pic_data[m_bparams.Yblen() - save_from_row], 0, save_from_row*pic_data.LengthX()*sizeof(ValueType) ); - save_from_row = m_bparams.Ybsep(); - + if (row_overlap) + { + // Copy the rows required to motion compensate the next row of + // blocks. This is usually Yblen-Ybsep rows. + memmove (pic_data[0], pic_data[save_from_row], (m_bparams.Yblen() - save_from_row)*pic_data.LengthX()*sizeof(ValueType)); + memset( pic_data[m_bparams.Yblen() - save_from_row], 0, save_from_row*pic_data.LengthX()*sizeof(ValueType) ); + save_from_row = m_bparams.Ybsep(); + } + else + { + // no row overlap. So reset pic_data to 0. + memset( pic_data[0], 0, m_bparams.Yblen()*pic_data.LengthX()*sizeof(ValueType) ); + } }//yblock if ( m_add_or_sub == SUBTRACT) -- 1.7.0.3 ++++++ baselibs.conf ++++++ libdirac_decoder0 libdirac_encoder0 dirac-devel requires -dirac-<targettype> requires "libdirac_decoder0-<targettype> = <version>" requires "libdirac_encoder0-<targettype> = <version>" ++++++ dirac-1.0.2-gcc45.patch ++++++ Index: dirac-1.0.2/libdirac_encoder/quant_chooser.cpp =================================================================== --- dirac-1.0.2.orig/libdirac_encoder/quant_chooser.cpp +++ dirac-1.0.2/libdirac_encoder/quant_chooser.cpp @@ -340,7 +340,7 @@ void QuantChooser::SetSkip( CodeBlock& c { for (int i=cblock.Xstart(); i<cblock.Xend(); ++i ) { - if ( (std::abs(m_coeff_data[j][i])<<2) >= u_threshold ) + if ( (static_cast<int>(std::abs(m_coeff_data[j][i]))<<2) >= u_threshold ) can_skip = false; } } @@ -355,7 +355,7 @@ CoeffType QuantChooser::BlockAbsMax( con { for (int i=node.Xp() ; i<node.Xp()+node.Xl(); ++i) { - val = std::max( val , std::abs(m_coeff_data[j][i]) ); + val = std::max( val , static_cast<int>(std::abs(m_coeff_data[j][i])) ); }// i }// j -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
