gst-plugins-bad: openexr: Add OpenEXR decoder element

Stefan Sauer ensonic at hora-obscura.de
Sun Dec 1 03:40:26 PST 2013


On 11/23/2013 06:53 PM, Sebastian DrXXge wrote:
> Module: gst-plugins-bad
> Branch: master
> Commit: a90585c686a8499d9eecc7c5fd1d1df2d1580c47
> URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a90585c686a8499d9eecc7c5fd1d1df2d1580c47
>
> Author: Sebastian Dröge <sebastian at centricular.com>
> Date:   Sat Nov 23 18:37:00 2013 +0100
>
> openexr: Add OpenEXR decoder element
>
> This currently converts from ARGB64_F16 (16 bit float per component)
> to ARGB64 by clipping. We should add support for the F16 format and
> implement a conversion filter element that can apply gamma curves,
> change exposure, etc.
>
> ---
>
>  ext/openexr/Makefile.am       |    8 +-
>  ext/openexr/gstopenexr.c      |    4 +
>  ext/openexr/gstopenexrdec.cpp |  654 +++++++++++++++++++++++++++++++++++++++++
>  ext/openexr/gstopenexrdec.h   |   63 ++++
>  4 files changed, 726 insertions(+), 3 deletions(-)
>
> Diff:   http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/diff/?id=a90585c686a8499d9eecc7c5fd1d1df2d1580c47
>
this does not build for me on Ubuntu 12.04 :/ But seem to be fault of
the way c++ headers are reorganized in openexr. Adding "
-Wno-redundant-decls" to CXXFLAGS in the Makefile.am works for me.
Acceptable?

Stefan

gst-plugins-bad/ext/openexr:(git:master)> make
  CXX    libgstopenexr_la-gstopenexrdec.lo
In file included from /usr/include/OpenEXR/ImfHeader.h:51:0,
                 from /usr/include/OpenEXR/ImfRgbaFile.h:50,
                 from gstopenexrdec.cpp:30:
/usr/include/OpenEXR/ImathVec.h:488:24: error: redundant redeclaration
of 'T Imath::Vec2<T>::length() const [with T = short int]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:216:7: error: previous declaration of 'T
Imath::Vec2<T>::length() const [with T = short int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:491:25: error: redundant redeclaration
of 'const Imath::Vec2<T>& Imath::Vec2<T>::normalize() [with T = short
int, Imath::Vec2<T> = Imath::Vec2<short int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:219:18: error: previous declaration of
'const Imath::Vec2<T>& Imath::Vec2<T>::normalize() [with T = short int,
Imath::Vec2<T> = Imath::Vec2<short int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:494:49: error: redundant redeclaration
of 'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeExc() [with T = short
int, Imath::Vec2<T> = Imath::Vec2<short int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:220:18: error: previous declaration of
'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeExc() [with T = short
int, Imath::Vec2<T> = Imath::Vec2<short int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:497:32: error: redundant redeclaration
of 'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeNonNull() [with T =
short int, Imath::Vec2<T> = Imath::Vec2<short int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:221:18: error: previous declaration of
'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeNonNull() [with T =
short int, Imath::Vec2<T> = Imath::Vec2<short int>]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:500:28: error: redundant redeclaration
of 'Imath::Vec2<T> Imath::Vec2<T>::normalized() const [with T = short
int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:223:13: error: previous declaration of
'Imath::Vec2<T> Imath::Vec2<T>::normalized() const [with T = short int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:503:56: error: redundant redeclaration
of 'Imath::Vec2<T> Imath::Vec2<T>::normalizedExc() const [with T = short
int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:224:13: error: previous declaration of
'Imath::Vec2<T> Imath::Vec2<T>::normalizedExc() const [with T = short
int]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:506:35: error: redundant redeclaration
of 'Imath::Vec2<T> Imath::Vec2<T>::normalizedNonNull() const [with T =
short int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:225:13: error: previous declaration of
'Imath::Vec2<T> Imath::Vec2<T>::normalizedNonNull() const [with T =
short int]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:512:22: error: redundant redeclaration
of 'T Imath::Vec2<T>::length() const [with T = int]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:216:7: error: previous declaration of 'T
Imath::Vec2<T>::length() const [with T = int]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:515:23: error: redundant redeclaration
of 'const Imath::Vec2<T>& Imath::Vec2<T>::normalize() [with T = int,
Imath::Vec2<T> = Imath::Vec2<int>]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:219:18: error: previous declaration of
'const Imath::Vec2<T>& Imath::Vec2<T>::normalize() [with T = int,
Imath::Vec2<T> = Imath::Vec2<int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:518:47: error: redundant redeclaration
of 'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeExc() [with T = int,
Imath::Vec2<T> = Imath::Vec2<int>]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:220:18: error: previous declaration of
'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeExc() [with T = int,
Imath::Vec2<T> = Imath::Vec2<int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:521:30: error: redundant redeclaration
of 'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeNonNull() [with T =
int, Imath::Vec2<T> = Imath::Vec2<int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:221:18: error: previous declaration of
'const Imath::Vec2<T>& Imath::Vec2<T>::normalizeNonNull() [with T = int,
Imath::Vec2<T> = Imath::Vec2<int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:524:26: error: redundant redeclaration
of 'Imath::Vec2<T> Imath::Vec2<T>::normalized() const [with T = int]' in
same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:223:13: error: previous declaration of
'Imath::Vec2<T> Imath::Vec2<T>::normalized() const [with T = int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:527:54: error: redundant redeclaration
of 'Imath::Vec2<T> Imath::Vec2<T>::normalizedExc() const [with T = int]'
in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:224:13: error: previous declaration of
'Imath::Vec2<T> Imath::Vec2<T>::normalizedExc() const [with T = int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:530:33: error: redundant redeclaration
of 'Imath::Vec2<T> Imath::Vec2<T>::normalizedNonNull() const [with T =
int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:225:13: error: previous declaration of
'Imath::Vec2<T> Imath::Vec2<T>::normalizedNonNull() const [with T =
int]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:536:24: error: redundant redeclaration
of 'T Imath::Vec3<T>::length() const [with T = short int]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:409:7: error: previous declaration of 'T
Imath::Vec3<T>::length() const [with T = short int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:539:25: error: redundant redeclaration
of 'const Imath::Vec3<T>& Imath::Vec3<T>::normalize() [with T = short
int, Imath::Vec3<T> = Imath::Vec3<short int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:412:18: error: previous declaration of
'const Imath::Vec3<T>& Imath::Vec3<T>::normalize() [with T = short int,
Imath::Vec3<T> = Imath::Vec3<short int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:542:49: error: redundant redeclaration
of 'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeExc() [with T = short
int, Imath::Vec3<T> = Imath::Vec3<short int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:413:18: error: previous declaration of
'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeExc() [with T = short
int, Imath::Vec3<T> = Imath::Vec3<short int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:545:32: error: redundant redeclaration
of 'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeNonNull() [with T =
short int, Imath::Vec3<T> = Imath::Vec3<short int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:414:18: error: previous declaration of
'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeNonNull() [with T =
short int, Imath::Vec3<T> = Imath::Vec3<short int>]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:548:28: error: redundant redeclaration
of 'Imath::Vec3<T> Imath::Vec3<T>::normalized() const [with T = short
int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:416:13: error: previous declaration of
'Imath::Vec3<T> Imath::Vec3<T>::normalized() const [with T = short int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:551:56: error: redundant redeclaration
of 'Imath::Vec3<T> Imath::Vec3<T>::normalizedExc() const [with T = short
int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:417:13: error: previous declaration of
'Imath::Vec3<T> Imath::Vec3<T>::normalizedExc() const [with T = short
int]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:554:35: error: redundant redeclaration
of 'Imath::Vec3<T> Imath::Vec3<T>::normalizedNonNull() const [with T =
short int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:418:13: error: previous declaration of
'Imath::Vec3<T> Imath::Vec3<T>::normalizedNonNull() const [with T =
short int]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:560:22: error: redundant redeclaration
of 'T Imath::Vec3<T>::length() const [with T = int]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:409:7: error: previous declaration of 'T
Imath::Vec3<T>::length() const [with T = int]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:563:23: error: redundant redeclaration
of 'const Imath::Vec3<T>& Imath::Vec3<T>::normalize() [with T = int,
Imath::Vec3<T> = Imath::Vec3<int>]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:412:18: error: previous declaration of
'const Imath::Vec3<T>& Imath::Vec3<T>::normalize() [with T = int,
Imath::Vec3<T> = Imath::Vec3<int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:566:47: error: redundant redeclaration
of 'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeExc() [with T = int,
Imath::Vec3<T> = Imath::Vec3<int>]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:413:18: error: previous declaration of
'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeExc() [with T = int,
Imath::Vec3<T> = Imath::Vec3<int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:569:30: error: redundant redeclaration
of 'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeNonNull() [with T =
int, Imath::Vec3<T> = Imath::Vec3<int>]' in same scope
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:414:18: error: previous declaration of
'const Imath::Vec3<T>& Imath::Vec3<T>::normalizeNonNull() [with T = int,
Imath::Vec3<T> = Imath::Vec3<int>]' [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:572:26: error: redundant redeclaration
of 'Imath::Vec3<T> Imath::Vec3<T>::normalized() const [with T = int]' in
same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:416:13: error: previous declaration of
'Imath::Vec3<T> Imath::Vec3<T>::normalized() const [with T = int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:575:54: error: redundant redeclaration
of 'Imath::Vec3<T> Imath::Vec3<T>::normalizedExc() const [with T = int]'
in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:417:13: error: previous declaration of
'Imath::Vec3<T> Imath::Vec3<T>::normalizedExc() const [with T = int]'
[-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:578:33: error: redundant redeclaration
of 'Imath::Vec3<T> Imath::Vec3<T>::normalizedNonNull() const [with T =
int]' in same scope [-Werror=redundant-decls]
/usr/include/OpenEXR/ImathVec.h:418:13: error: previous declaration of
'Imath::Vec3<T> Imath::Vec3<T>::normalizedNonNull() const [with T =
int]' [-Werror=redundant-decls]
cc1plus: all warnings being treated as errors
make: *** [libgstopenexr_la-gstopenexrdec.lo] Error 1

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20131201/f874ff7d/attachment.html>


More information about the gstreamer-devel mailing list