*/
#include "MltFrame.h"
+#include "MltProducer.h"
using namespace Mlt;
+Frame::Frame( mlt_frame frame ) :
+ instance( frame )
+{
+ inc_ref( );
+}
+
+Frame::Frame( Frame &frame ) :
+ instance( frame.get_frame( ) )
+{
+ inc_ref( );
+}
+
+Frame::~Frame( )
+{
+ mlt_frame_close( instance );
+}
+
+mlt_frame Frame::get_frame( )
+{
+ return instance;
+}
+
mlt_properties Frame::get_properties( )
{
return mlt_frame_properties( get_frame( ) );
uint8_t *Frame::get_image( mlt_image_format &format, int &w, int &h, int writable )
{
uint8_t *image = NULL;
+ if ( get_double( "consumer_aspect_ratio" ) == 0.0 )
+ set( "consumer_aspect_ratio", 1.0 );
mlt_frame_get_image( get_frame( ), &image, &format, &w, &h, writable );
+ set( "format", format );
+ set( "writable", writable );
+ return image;
+}
+
+unsigned char *Frame::fetch_image( mlt_image_format f, int w, int h, int writable )
+{
+ uint8_t *image = NULL;
+ if ( get_double( "consumer_aspect_ratio" ) == 0.0 )
+ set( "consumer_aspect_ratio", 1.0 );
+ mlt_frame_get_image( get_frame( ), &image, &f, &w, &h, writable );
+ set( "format", f );
+ set( "writable", writable );
return image;
}
return audio;
}
-mlt_frame FrameInstance::get_frame( )
+unsigned char *Frame::get_waveform( int w, int h )
{
- return instance;
+ return mlt_frame_get_waveform( get_frame( ), w, h );
}
-FrameInstance::FrameInstance( mlt_frame frame ) :
- destroy( true ),
- instance( frame )
+Producer *Frame::get_original_producer( )
{
+ return new Producer( mlt_frame_get_original_producer( get_frame( ) ) );
}
-
-FrameInstance::FrameInstance( Frame &frame ) :
- destroy( false ),
- instance( frame.get_frame( ) )
-{
-}
-
-FrameInstance::~FrameInstance( )
-{
- if ( destroy )
- mlt_frame_close( instance );
-}
-
-