]> git.sesse.net Git - mlt/commitdiff
Add support for psd, xcf and exr images (KDE libraries needed for these formats)...
authorj-b-m <j-b-m@d19143bc-622f-0410-bfdd-b5b2a6649095>
Sun, 1 Jul 2007 18:17:44 +0000 (18:17 +0000)
committerj-b-m <j-b-m@d19143bc-622f-0410-bfdd-b5b2a6649095>
Sun, 1 Jul 2007 18:17:44 +0000 (18:17 +0000)
git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@1005 d19143bc-622f-0410-bfdd-b5b2a6649095

src/modules/fezzik.dict
src/modules/qimage/Makefile
src/modules/qimage/configure
src/modules/qimage/producer_qimage.c
src/modules/qimage/qimage_wrapper.cpp
src/modules/qimage/qimage_wrapper.h

index ba7da2f133fffbe6626a9aab5af9684e4a73f940..7d24ecda36d6c9a312946ca3d0116b93fe35cfc3 100644 (file)
@@ -8,6 +8,7 @@ http://*=avformat
 *.bmp=pixbuf,qimage,sdl_image
 *.dv=mcdv,avformat,libdv
 *.dif=mcdv,avformat,libdv
+*.exr=qimage
 *.gif=pixbuf,qimage,sdl_image
 *.graphics=westley
 *.jfx=westley
@@ -21,13 +22,17 @@ http://*=avformat
 *.mpeg=mcmpeg,avformat
 *.mpl=pango
 *.ogg=vorbis
+*.pcx=pixbuf,qimage,sdl_image
 *.pgm=pgm,pixbuf,qimage,sdl_image
 *.png=pixbuf,qimage,sdl_image
+*.psd=qimage
 *.story=westley
 *.svg=pixbuf
 *.tga=pixbuf,qimage,sdl_image
+*.tiff=pixbuf,qimage,sdl_image
 *.txt=pango
 *.vob=mcmpeg,avformat
 *.wav=avformat
 *.wmv=avformat
+*.xcf=qimage,sdl_image
 *=avformat
index 44ad0d6ca67aecf79456579ec3df9748c1df2276..8c23b6ec5a657446d0a60112952038a4f971063a 100644 (file)
@@ -9,6 +9,10 @@ CFLAGS+=-I../../
 LDFLAGS=-L../../framework $(QTLIBS) -lmlt -lstdc++
 CXXFLAGS+=$(CFLAGS) $(QTCXXFLAGS) -Wno-deprecated
 
+ifdef USE_KDE
+LDFLAGS+= -lkio
+endif
+
 SRCS := $(OBJS:.o=.c) $(CPPOBJS:.o=.cpp)
 
 all:   $(TARGET)
index 2c41cab0a34cc397d1cc746d03dd28bef989a6f8..6b7b1046adc1995563431a35110034a22077a5f3 100755 (executable)
@@ -28,12 +28,19 @@ else
        qimage_includedir=/usr/include/qt3
        qimage_libdir=/usr/lib/qt3
 
+       kde_includedir=/usr/include/kde
+
        if [ "$QTDIR" != "" ]
        then
                qimage_includedir="$QTDIR/include"
                qimage_libdir="$QTDIR"
        fi
 
+       if [ "$KDEDIR" != "" ]
+       then
+               kde_includedir="$KDEDIR/include"
+       fi
+
        for i in "$@"
        do
                case $i in
@@ -44,7 +51,17 @@ else
 
        if [ -d "$qimage_libdir" -a -d "$qimage_includedir" ]
        then
-               echo QTCXXFLAGS=-I$qimage_includedir > config.mak
+               echo > config.h
+               echo > config.mak
+               if [ -d "$kde_includedir" ]
+               then 
+                       echo "#define USE_KDE" >> config.h
+                       echo "USE_KDE=1" >> config.mak
+                       echo QTCXXFLAGS=-I$qimage_includedir -I$kde_includedir >> config.mak
+               else 
+                       echo "qimage: KDE environment not found - disabling extra image formats"
+                       echo QTCXXFLAGS=-I$qimage_includedir >> config.mak
+               fi
                echo QTLIBS=-L$qimage_libdir/lib -lqt-mt >> config.mak
                echo qimage             libmltqimage$LIBSUF >> ../producers.dat
        else
index e172def38a1917cf9899b35b4af0df6193a43e1b..302bca0cfdf43f45463a67a7c28419fc92e529ab 100644 (file)
@@ -46,6 +46,7 @@ mlt_producer producer_qimage_init( char *filename )
                mlt_properties properties = MLT_PRODUCER_PROPERTIES( &this->parent );
        
                // Callback registration
+               init_qimage();
                producer->get_frame = producer_get_frame;
                producer->close = ( mlt_destructor )producer_close;
 
index 168796d0f47cad62c9ef39de8f5bd9d967421ae5..af6838eb2e1d71ed065fee5192b9f1a1660cfe12 100644 (file)
 
 #include "qimage_wrapper.h"
 #include <qimage.h>
+
+
+#include "config.h"
+
+#ifdef USE_KDE
+#include <kinstance.h>
+#include <kimageio.h>
+#endif
+
 #include <cmath>
 
 extern "C" {
 
 #include <framework/mlt_pool.h>
 
+#ifdef USE_KDE
+static KInstance *instance = 0L;
+#endif
+
 static void qimage_delete( void *data )
 {
        QImage *image = ( QImage * )data;
        delete image;
+#ifdef USE_KDE
+       if (instance) delete instance;
+       instance = 0L;
+#endif
 }
 
 static void clear_buffered_image( mlt_properties producer_props, uint8_t **current_image, uint8_t **current_alpha )
@@ -57,6 +74,16 @@ static void assign_buffered_image( mlt_properties producer_props, uint8_t *curre
        mlt_events_unblock( producer_props, NULL );
 }
 
+void init_qimage()
+{
+#ifdef USE_KDE
+       if (!instance) {
+           instance = new KInstance("qimage_prod");
+           KImageIO::registerFormats();
+       }
+#endif
+}
+
 void refresh_qimage( mlt_frame frame, int width, int height )
 {
        // Obtain a previous assigned qimage (if it exists) 
index 2891f9434eabfeb1cde66da8add5df356f136599..21368694ff0d532b136f7bb92cb8ccdbc8d3aac2 100644 (file)
@@ -41,6 +41,7 @@ struct producer_qimage_s
 typedef struct producer_qimage_s *producer_qimage;
 
 extern void refresh_qimage( mlt_frame, int width, int height );
+extern void init_qimage();
 
 #ifdef __cplusplus
 }