{
mlt_profile profile = mlt_service_profile( MLT_CONSUMER_SERVICE( parent ) );
mlt_filter filter = mlt_factory_filter( profile, "avcolour_space", NULL );
- mlt_properties_set_int( MLT_FILTER_PROPERTIES( filter ), "forced", mlt_image_yuv422 );
- mlt_service_attach( MLT_CONSUMER_SERVICE( parent ), filter );
- mlt_filter_close( filter );
+ if ( filter )
+ {
+ mlt_properties_set_int( MLT_FILTER_PROPERTIES( filter ), "forced", mlt_image_yuv422 );
+ mlt_service_attach( MLT_CONSUMER_SERVICE( parent ), filter );
+ mlt_filter_close( filter );
+ }
this->filtered = 1;
}
// Kill the thread and clean up
this->joined = 1;
this->running = 0;
- pthread_join( this->thread, NULL );
+ if ( this->thread )
+ pthread_join( this->thread, NULL );
// internal cleanup
if ( this->sdl_overlay != NULL )
this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, this->bpp, this->sdl_flags );
if ( consumer_get_dimensions( &this->window_width, &this->window_height ) )
this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, this->bpp, this->sdl_flags );
+
+ uint32_t color = mlt_properties_get_int( this->properties, "window_background" );
+ SDL_FillRect( this->sdl_screen, NULL, color >> 8 );
+ SDL_Flip( this->sdl_screen );
}
if ( this->running )