]> git.sesse.net Git - mlt/commit
sdl/consumer_sdl.c: use mutex when changing sdl_screen
authorMikko Rapeli <mikko.rapeli@iki.fi>
Wed, 1 Aug 2012 13:20:13 +0000 (15:20 +0200)
committerMikko Rapeli <mikko.rapeli@iki.fi>
Mon, 6 Aug 2012 16:37:28 +0000 (18:37 +0200)
commit7a1d6a41adfb5cfb4abe9587135aee5906f52d49
tree86eb65b95b5a99a7501bc078a2516038881040d6
parent14f007dc3f7997ff64666a904e22c0c8548a2ac2
sdl/consumer_sdl.c: use mutex when changing sdl_screen

Fixes Coverity CID 709357 and 709358: Data race condition (MISSING_LOCK)

Locking "mlt_sdl_mutex".
235                        pthread_mutex_lock( &mlt_sdl_mutex );
consumer_sdl_s.sdl_screen is being accessed with lock "mlt_sdl_mutex" held.
236                        this->sdl_screen = SDL_GetVideoSurface( );
237                        pthread_mutex_unlock( &mlt_sdl_mutex );
...
Locking "mlt_sdl_mutex".
269                        pthread_mutex_lock( &mlt_sdl_mutex );
consumer_sdl_s.sdl_screen is being accessed with lock "mlt_sdl_mutex" held.
270                        this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, 0, this->sdl_flags );
271                        pthread_mutex_unlock( &mlt_sdl_mutex );
...
Accessing variable "this->sdl_screen" (consumer_sdl_s.sdl_screen) requires the mlt_sdl_mutex lock.
315                this->sdl_screen = NULL;
...
Locking "mlt_sdl_mutex".
573                        pthread_mutex_lock( &mlt_sdl_mutex );
consumer_sdl_s.sdl_screen is being accessed with lock "mlt_sdl_mutex" held.
574                        this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, this->bpp, this->sdl_flags );
575                        if ( consumer_get_dimensions( &this->window_width, &this->window_height ) )
consumer_sdl_s.sdl_screen is being accessed with lock "mlt_sdl_mutex" held.
576                                this->sdl_screen = SDL_SetVideoMode( this->window_width, this->window_height, this->bpp, this->sdl_flags );
577                        pthread_mutex_unlock( &mlt_sdl_mutex );
src/modules/sdl/consumer_sdl.c