X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Fdv%2Fproducer_libdv.c;fp=src%2Fmodules%2Fdv%2Fproducer_libdv.c;h=b593b5337bd3cf0ad5242831096d4963df998958;hb=d33f444d4ef4c7bc4074d07a49eca0ab7d108394;hp=a7c10b34dc3a1e8cdf88470c1f2c9e4ad2577f0f;hpb=5dfa26cd3010e4e236acd82ad9ecfdd8238e707e;p=melted diff --git a/src/modules/dv/producer_libdv.c b/src/modules/dv/producer_libdv.c index a7c10b3..b593b53 100644 --- a/src/modules/dv/producer_libdv.c +++ b/src/modules/dv/producer_libdv.c @@ -18,7 +18,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#include "producer_libdv.h" +#include #include #include #include @@ -32,6 +32,9 @@ #include #include +#define FRAME_SIZE_525_60 10 * 150 * 80 +#define FRAME_SIZE_625_50 12 * 150 * 80 + /** To conserve resources, we maintain a stack of dv decoders. */ @@ -131,7 +134,7 @@ static void producer_close( mlt_producer parent ); static int producer_collect_info( producer_libdv this ); -mlt_producer producer_libdv_init( char *filename ) +mlt_producer producer_libdv_init( mlt_profile profile, mlt_service_type type, const char *id, char *filename ) { producer_libdv this = calloc( sizeof( struct producer_libdv_s ), 1 ); @@ -156,7 +159,8 @@ mlt_producer producer_libdv_init( char *filename ) strncasecmp( strrchr( filename, '.' ), ".mov", 4 ) == 0 ) ) { // Load via an alternative mechanism - this->alternative = mlt_factory_producer( "kino", filename ); + mlt_profile profile = mlt_service_profile( MLT_PRODUCER_SERVICE( producer ) ); + this->alternative = mlt_factory_producer( profile, "kino", filename ); // If it's unavailable, then clean up if ( this->alternative == NULL ) @@ -427,7 +431,7 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i data = mlt_pool_alloc( FRAME_SIZE_625_50 ); // Create an empty frame - *frame = mlt_frame_init( ); + *frame = mlt_frame_init( MLT_PRODUCER_SERVICE( producer ) ); // Seek and fetch if ( this->fd != 0 &&