Sync from SUSE:SLFO:Main dirac revision e96485b15e5a115091694e907d844f0f
This commit is contained in:
commit
adb553d113
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
@ -0,0 +1,52 @@
|
||||
From 88fae6224b54ecf92ac6e3ae5083c3f352adc798 Mon Sep 17 00:00:00 2001
|
||||
From: Anuradha Suraparaju <anuradha@hoyle.rd.bbc.co.uk>
|
||||
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
|
||||
|
6
baselibs.conf
Normal file
6
baselibs.conf
Normal file
@ -0,0 +1,6 @@
|
||||
libdirac_decoder0
|
||||
libdirac_encoder0
|
||||
dirac-devel
|
||||
requires -dirac-<targettype>
|
||||
requires "libdirac_decoder0-<targettype> = <version>"
|
||||
requires "libdirac_encoder0-<targettype> = <version>"
|
22
dirac-1.0.2-gcc45.patch
Normal file
22
dirac-1.0.2-gcc45.patch
Normal file
@ -0,0 +1,22 @@
|
||||
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
|
||||
|
BIN
dirac-1.0.2.tar.gz
(Stored with Git LFS)
Normal file
BIN
dirac-1.0.2.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
115
dirac.changes
Normal file
115
dirac.changes
Normal file
@ -0,0 +1,115 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 4 10:27:05 UTC 2017 - tchvatal@suse.com
|
||||
|
||||
- Cleanu pwith spec-cleaner
|
||||
- Switch to upstream tarball instead of repacking
|
||||
- Update dependencies to match reality
|
||||
- Explicitely enable configuration switches
|
||||
- Disable docu building as they are kinda empty unless we would
|
||||
add latex and dot
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 26 09:17:16 UTC 2015 - jkeil@suse.com
|
||||
|
||||
- Add baselibs.conf as Source
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 12 02:00:27 UTC 2015 - plinnell@opensuse.org
|
||||
|
||||
- added existing baselibs.conf to fix build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 4 18:11:09 UTC 2015 - dmueller@suse.com
|
||||
|
||||
- remove unneeded texlive-latex dependency
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 7 23:30:21 UTC 2013 - matz@suse.de
|
||||
|
||||
- Don't buildrequire valgrind-devel anywhere, it's unused.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 20 01:00:27 CET 2012 - ro@suse.de
|
||||
|
||||
- buildrequire pkg-config regardless of build-architecture
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 9 11:49:18 UTC 2011 - coolo@suse.com
|
||||
|
||||
- fix license to be in spdx.org format
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 30 20:07:55 UTC 2011 - coolo@suse.com
|
||||
|
||||
- add libtool as buildrequire to make the spec file more reliable
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de
|
||||
|
||||
- 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 - toddrme2178@gmail.com
|
||||
|
||||
- added 32bit compatibility libraries
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 24 13:25:36 UTC 2010 - davejplater@gmail.com
|
||||
|
||||
- Split off doc subpackage
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 24 07:01:37 UTC 2010 - davejplater@gmail.com
|
||||
|
||||
- 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 - davejplater@gmail.com
|
||||
|
||||
- Fixed factory build with patch from git dirac-1.0.2-gcc45.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 18 22:46:01 CET 2009 - jengelh@medozas.de
|
||||
|
||||
- exclude valgrind-devel on SPARC
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jul 12 14:31:22 CEST 2009 - coolo@novell.com
|
||||
|
||||
- fix build in disabling as-needed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 1 17:44:48 CEST 2009 - sbrabec@suse.cz
|
||||
|
||||
- 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 - sbrabec@suse.cz
|
||||
|
||||
- Worked around internal compiler error on 11.0-x86_64.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 25 10:26:27 CET 2008 - ro@suse.de
|
||||
|
||||
- do not buildrequire valgrind on ia64 s390 s390x
|
||||
(does not exist on these platforms)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 6 10:40:56 CET 2008 - sbrabec@suse.cz
|
||||
|
||||
- New SuSE package (bnc#441855).
|
||||
|
143
dirac.spec
Normal file
143
dirac.spec
Normal file
@ -0,0 +1,143 @@
|
||||
#
|
||||
# spec file for package dirac
|
||||
#
|
||||
# Copyright (c) 2017 SUSE LINUX 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
|
||||
Summary: The Dirac_Video Codec
|
||||
License: MPL-1.1
|
||||
Group: Productivity/Multimedia/Video/Editors and Convertors
|
||||
Url: https://sourceforge.net/projects/dirac/
|
||||
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
|
||||
Source1: baselibs.conf
|
||||
Patch0: 0001-Fix-uninitialised-memory-read-that-causes-the-encode.patch
|
||||
Patch1: %{name}-%{version}-gcc45.patch
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(cppunit)
|
||||
|
||||
%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.
|
||||
|
||||
%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.
|
||||
|
||||
%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.
|
||||
|
||||
%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.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
# Code is not mature enough for -Werror (unused results)
|
||||
sed -i 's/-Werror//' configure.ac
|
||||
|
||||
%build
|
||||
ACLOCAL="aclocal -I m4" autoreconf -fvi
|
||||
%configure \
|
||||
--disable-silent-rules \
|
||||
--disable-static \
|
||||
--docdir=%{_docdir}/packages/%{name} \
|
||||
--enable-mmx \
|
||||
--enable-overlay
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%make_install htmldir=%{_docdir}/%{name}/code/api_html
|
||||
# remove the docs we want with main pkg
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
%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
|
||||
%doc AUTHORS COPYING ChangeLog NEWS README TODO
|
||||
%{_bindir}/*
|
||||
|
||||
%files -n libdirac_decoder0
|
||||
%{_libdir}/libdirac_decoder.so.0*
|
||||
|
||||
%files -n libdirac_encoder0
|
||||
%{_libdir}/libdirac_encoder.so.0*
|
||||
|
||||
%files devel
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
%{_includedir}/%{name}
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user