summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9fd121c)
Why bother when SDL_GetVideoSurface() is available?
int height;
int playing;
int sdl_flags;
int height;
int playing;
int sdl_flags;
- SDL_Surface *sdl_screen;
SDL_Overlay *sdl_overlay;
SDL_Rect rect;
uint8_t *buffer;
SDL_Overlay *sdl_overlay;
SDL_Rect rect;
uint8_t *buffer;
SDL_EnableKeyRepeat( SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL );
SDL_EnableUNICODE( 1 );
}
SDL_EnableKeyRepeat( SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL );
SDL_EnableUNICODE( 1 );
}
- else if ( display_off == 0 )
- {
- pthread_mutex_lock( &mlt_sdl_mutex );
- this->sdl_screen = SDL_GetVideoSurface( );
- pthread_mutex_unlock( &mlt_sdl_mutex );
- }
if ( audio_off == 0 )
SDL_InitSubSystem( SDL_INIT_AUDIO );
if ( audio_off == 0 )
SDL_InitSubSystem( SDL_INIT_AUDIO );
this->window_height = this->height;
}
this->window_height = this->height;
}
- if ( this->sdl_screen == NULL && display_off == 0 )
+ pthread_mutex_lock( &mlt_sdl_mutex );
+ if ( !SDL_GetVideoSurface() && display_off == 0 )
{
if ( mlt_properties_get_int( this->properties, "fullscreen" ) )
{
{
if ( mlt_properties_get_int( this->properties, "fullscreen" ) )
{
this->sdl_flags |= SDL_FULLSCREEN;
SDL_ShowCursor( SDL_DISABLE );
}
this->sdl_flags |= SDL_FULLSCREEN;
SDL_ShowCursor( SDL_DISABLE );
}
- pthread_mutex_lock( &mlt_sdl_mutex );
- this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
- pthread_mutex_unlock( &mlt_sdl_mutex );
+ SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
+ pthread_mutex_unlock( &mlt_sdl_mutex );
pthread_create( &this->thread, NULL, consumer_thread, this );
}
pthread_create( &this->thread, NULL, consumer_thread, this );
}
SDL_Quit( );
pthread_mutex_unlock( &mlt_sdl_mutex );
}
SDL_Quit( );
pthread_mutex_unlock( &mlt_sdl_mutex );
}
-
- pthread_mutex_lock( &mlt_sdl_mutex );
- this->sdl_screen = NULL;
- pthread_mutex_unlock( &mlt_sdl_mutex );
void *pool = mlt_cocoa_autorelease_init();
// Handle events
void *pool = mlt_cocoa_autorelease_init();
// Handle events
- if ( this->sdl_screen != NULL )
+ if ( SDL_GetVideoSurface() )
this->sdl_overlay = NULL;
}
this->sdl_overlay = NULL;
}
- if ( this->running && ( this->sdl_screen == NULL || changed ) )
+ if ( this->running && ( !SDL_GetVideoSurface() || changed ) )
{
// Force an overlay recreation
if ( this->sdl_overlay != NULL )
{
// Force an overlay recreation
if ( this->sdl_overlay != NULL )
// open SDL window with video overlay, if possible
pthread_mutex_lock( &mlt_sdl_mutex );
// open SDL window with video overlay, if possible
pthread_mutex_lock( &mlt_sdl_mutex );
- 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 );
+ consumer_get_dimensions( &this->window_width, &this->window_height );
+ SDL_Surface *screen = SDL_SetVideoMode( this->window_width, this->window_height, this->bpp, this->sdl_flags );
pthread_mutex_unlock( &mlt_sdl_mutex );
pthread_mutex_unlock( &mlt_sdl_mutex );
- 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 ( screen )
+ {
+ uint32_t color = mlt_properties_get_int( this->properties, "window_background" );
+ SDL_FillRect( screen, NULL, color >> 8 );
+ SDL_Flip( screen );
+ }
mlt_properties_set_int( this->properties, "rect_w", this->rect.w );
mlt_properties_set_int( this->properties, "rect_h", this->rect.h );
mlt_properties_set_int( this->properties, "rect_w", this->rect.w );
mlt_properties_set_int( this->properties, "rect_h", this->rect.h );
- SDL_SetClipRect( this->sdl_screen, &this->rect );
+ SDL_SetClipRect( SDL_GetVideoSurface(), &this->rect );
- if ( this->running && this->sdl_screen != NULL && this->sdl_overlay == NULL )
+ if ( this->running && SDL_GetVideoSurface() && this->sdl_overlay == NULL )
- SDL_SetClipRect( this->sdl_screen, &this->rect );
- this->sdl_overlay = SDL_CreateYUVOverlay( width, height, SDL_YUY2_OVERLAY, this->sdl_screen );
+ SDL_SetClipRect( SDL_GetVideoSurface(), &this->rect );
+ this->sdl_overlay = SDL_CreateYUVOverlay( width, height, SDL_YUY2_OVERLAY, SDL_GetVideoSurface() );
- if ( this->running && this->sdl_screen != NULL && this->sdl_overlay != NULL )
+ if ( this->running && SDL_GetVideoSurface() && this->sdl_overlay != NULL )
{
this->buffer = this->sdl_overlay->pixels[ 0 ];
if ( SDL_LockYUVOverlay( this->sdl_overlay ) >= 0 )
{
this->buffer = this->sdl_overlay->pixels[ 0 ];
if ( SDL_LockYUVOverlay( this->sdl_overlay ) >= 0 )
if ( image != NULL )
memcpy( this->buffer, image, width * height * 2 );
SDL_UnlockYUVOverlay( this->sdl_overlay );
if ( image != NULL )
memcpy( this->buffer, image, width * height * 2 );
SDL_UnlockYUVOverlay( this->sdl_overlay );
- SDL_DisplayYUVOverlay( this->sdl_overlay, &this->sdl_screen->clip_rect );
+ SDL_DisplayYUVOverlay( this->sdl_overlay, &SDL_GetVideoSurface()->clip_rect );
while( mlt_deque_count( this->queue ) )
mlt_frame_close( mlt_deque_pop_back( this->queue ) );
while( mlt_deque_count( this->queue ) )
mlt_frame_close( mlt_deque_pop_back( this->queue ) );
- pthread_mutex_lock( &mlt_sdl_mutex );
- this->sdl_screen = NULL;
- pthread_mutex_unlock( &mlt_sdl_mutex );
this->audio_avail = 0;
return NULL;
this->audio_avail = 0;
return NULL;
int height;
int playing;
int sdl_flags;
int height;
int playing;
int sdl_flags;
- SDL_Surface *sdl_screen;
SDL_Rect rect;
uint8_t *buffer;
int last_position;
SDL_Rect rect;
uint8_t *buffer;
int last_position;
SDL_EnableKeyRepeat( SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL );
SDL_EnableUNICODE( 1 );
}
SDL_EnableKeyRepeat( SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL );
SDL_EnableUNICODE( 1 );
}
- else if ( preview_off == 0 )
- {
- pthread_mutex_lock( &mlt_sdl_mutex );
- SDL_Surface *screen = SDL_GetVideoSurface( );
- pthread_mutex_unlock( &mlt_sdl_mutex );
- if ( screen != NULL )
- {
- this->sdl_screen = screen;
- }
- }
- if ( this->sdl_screen == NULL && preview_off == 0 )
- {
- pthread_mutex_lock( &mlt_sdl_mutex );
- this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
- pthread_mutex_unlock( &mlt_sdl_mutex );
- }
+ pthread_mutex_lock( &mlt_sdl_mutex );
+ if ( !SDL_GetVideoSurface() && preview_off == 0 )
+ SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
+ pthread_mutex_unlock( &mlt_sdl_mutex );
pthread_create( &this->thread, NULL, consumer_thread, this );
}
pthread_create( &this->thread, NULL, consumer_thread, this );
}
SDL_Quit( );
pthread_mutex_unlock( &mlt_sdl_mutex );
}
SDL_Quit( );
pthread_mutex_unlock( &mlt_sdl_mutex );
}
-
- pthread_mutex_lock( &mlt_sdl_mutex );
- this->sdl_screen = NULL;
- pthread_mutex_unlock( &mlt_sdl_mutex );
sdl_lock_display();
// Handle events
sdl_lock_display();
// Handle events
- if ( this->sdl_screen != NULL )
+ if ( SDL_GetVideoSurface() )
- if ( this->sdl_screen == NULL || changed )
+ if ( !SDL_GetVideoSurface() || changed )
{
// open SDL window
pthread_mutex_lock( &mlt_sdl_mutex );
{
// open SDL window
pthread_mutex_lock( &mlt_sdl_mutex );
- this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
- if ( consumer_get_dimensions( &this->window_width, &this->window_height ) )
- this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
+ consumer_get_dimensions( &this->window_width, &this->window_height );
+ SDL_Surface *screen = SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
- uint32_t color = mlt_properties_get_int( this->properties, "window_background" );
- if ( this->sdl_screen )
- SDL_FillRect( this->sdl_screen, NULL, color >> 8 );
+ uint32_t color = mlt_properties_get_int( this->properties, "window_background" );
+ SDL_FillRect( screen, NULL, color >> 8 );
changed = 1;
}
pthread_mutex_unlock( &mlt_sdl_mutex );
changed = 1;
}
pthread_mutex_unlock( &mlt_sdl_mutex );
pthread_mutex_lock( &mlt_sdl_mutex );
SDL_Surface *screen = SDL_GetVideoSurface( );
pthread_mutex_lock( &mlt_sdl_mutex );
SDL_Surface *screen = SDL_GetVideoSurface( );
- if ( !mlt_consumer_is_stopped( &this->parent ) && screen != NULL && this->sdl_screen != NULL && this->sdl_screen->pixels != NULL )
+ if ( !mlt_consumer_is_stopped( &this->parent ) && screen && screen->pixels )
- switch( this->sdl_screen->format->BytesPerPixel )
+ switch( screen->format->BytesPerPixel )
- display_1( this->sdl_screen, this->rect, image, width, height );
+ display_1( screen, this->rect, image, width, height );
- display_2( this->sdl_screen, this->rect, image, width, height );
+ display_2( screen, this->rect, image, width, height );
- display_3( this->sdl_screen, this->rect, image, width, height );
+ display_3( screen, this->rect, image, width, height );
- display_4( this->sdl_screen, this->rect, image, width, height );
+ display_4( screen, this->rect, image, width, height );
- fprintf( stderr, "Unsupported video depth %d\n", this->sdl_screen->format->BytesPerPixel );
+ fprintf( stderr, "Unsupported video depth %d\n", screen->format->BytesPerPixel );
break;
}
// Flip it into sight
break;
}
// Flip it into sight
- SDL_Flip( this->sdl_screen );
}
pthread_mutex_unlock( &mlt_sdl_mutex );
}
pthread_mutex_unlock( &mlt_sdl_mutex );