Merge ../mlt
[melted] / mlt++ / src / MltFrame.h
index 0b057a5..9d564ab 100644 (file)
 #ifndef _MLTPP_FRAME_H_
 #define _MLTPP_FRAME_H_
 
+#include "config.h"
+
 #include <framework/mlt.h>
 #include "MltProperties.h"
 
 namespace Mlt
 {
-       class Frame : public Properties
+       class Properties;
+       class Producer;
+
+       class MLTPP_DECLSPEC Frame : public Properties
        {
+               private:
+                       mlt_frame instance;
                public:
-                       virtual mlt_frame get_frame( ) = 0;
+                       Frame( mlt_frame frame );
+                       Frame( Frame &frame );
+                       virtual ~Frame( );
+                       virtual mlt_frame get_frame( );
                        mlt_properties get_properties( );
                        uint8_t *get_image( mlt_image_format &format, int &w, int &h, int writable = 0 );
+                       unsigned char *fetch_image( mlt_image_format format, int w, int h, int writable = 0 );
                        int16_t *get_audio( mlt_audio_format &format, int &frequency, int &channels, int &samples );
-       };
-       
-       class FrameInstance : public Frame
-       {
-               private:
-                       bool destroy;
-                       mlt_frame instance;
-               public:
-                       mlt_frame get_frame( );
-                       FrameInstance( mlt_frame frame );
-                       FrameInstance( Frame &frame );
-                       virtual ~FrameInstance( );
+                       unsigned char *get_waveform( int w, int h );
+                       Producer *get_original_producer( );
        };
 }