From 99ab2f4f6c6ae3a3bc3a5e71a1886ba13f9cbd72 Mon Sep 17 00:00:00 2001 From: trupthi1403 Date: Thu, 5 Mar 2026 18:30:05 +0530 Subject: [PATCH] RDKEMW-15922: Coverity fix changes Reason for change: Added coverity changes for linux-expsync/westeros-linux-expsync.cpp, westeros-player.cpp, westeros-render-embedded.cpp, westeros-render-gl.cpp, westeros-test.cpp Test Procedure: Refer Ticket Risks: Low Priority: P2 --- linux-expsync/westeros-linux-expsync.cpp | 1 + westeros-player.cpp | 19 +++++----------- westeros-render-embedded.cpp | 28 ++++++++++++++++-------- westeros-render-gl.cpp | 17 ++++++++------ westeros-test.cpp | 12 ++++++---- 5 files changed, 44 insertions(+), 33 deletions(-) diff --git a/linux-expsync/westeros-linux-expsync.cpp b/linux-expsync/westeros-linux-expsync.cpp index b605bc9..1089e08 100644 --- a/linux-expsync/westeros-linux-expsync.cpp +++ b/linux-expsync/westeros-linux-expsync.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "westeros-linux-expsync.h" diff --git a/westeros-player.cpp b/westeros-player.cpp index 988591f..657b779 100644 --- a/westeros-player.cpp +++ b/westeros-player.cpp @@ -716,32 +716,26 @@ int main( int argc, char **argv ) while( g_ctx ) { - struct stat finfo; - if ( stat( "/tmp/wp-pause", &finfo ) == 0 ) + if ( remove( "/tmp/wp-pause" ) == 0 ) { - remove( "/tmp/wp-pause" ); gst_element_set_state(ctx->pipeline, GST_STATE_PAUSED); } - else if ( stat( "/tmp/wp-play", &finfo ) == 0 ) + else if ( remove( "/tmp/wp-play" ) == 0 ) { - remove( "/tmp/wp-play" ); gst_element_set_state(ctx->pipeline, GST_STATE_PLAYING); } - else if ( stat( "/tmp/wp-show", &finfo ) == 0 ) + else if ( remove( "/tmp/wp-show" ) == 0 ) { - remove( "/tmp/wp-show" ); g_object_set(G_OBJECT(ctx->westerossink), "show-video-window", TRUE, NULL ); } - else if ( stat( "/tmp/wp-hide", &finfo ) == 0 ) + else if ( remove( "/tmp/wp-hide" ) == 0 ) { - remove( "/tmp/wp-hide" ); g_object_set(G_OBJECT(ctx->westerossink), "show-video-window", FALSE, NULL ); } - else if ( stat( "/tmp/wp-zoom", &finfo ) == 0 ) + else if ( remove( "/tmp/wp-zoom" ) == 0 ) { static bool full= true; char work[32]; - remove( "/tmp/wp-zoom" ); if ( full ) { sprintf( work, "%d,%d,%d,%d", 200, 200, 640, 360 ); @@ -753,10 +747,9 @@ int main( int argc, char **argv ) full= !full; g_object_set(G_OBJECT(ctx->westerossink), "window-set", work, NULL ); } - else if ( stat( "/tmp/wp-peek", &finfo ) == 0 ) + else if ( remove( "/tmp/wp-peek" ) == 0 ) { GstState state, pending; - remove( "/tmp/wp-peek" ); gst_element_seek( ctx->pipeline, 1.0, diff --git a/westeros-render-embedded.cpp b/westeros-render-embedded.cpp index baa0534..978f09b 100644 --- a/westeros-render-embedded.cpp +++ b/westeros-render-embedded.cpp @@ -222,7 +222,7 @@ static char message[1024]; static bool emitFPS= false; -#define MAX_TEXTURES (2) +#define MAX_TEXTURES (4) struct _WstRenderSurface { @@ -327,6 +327,7 @@ typedef struct _WstRendererEMB float baseZOrder; bool fastPathActive; WstRenderer *rendererFast; + void *moduleFast; } WstRendererEMB; @@ -668,6 +669,11 @@ static void wstRendererEMBDestroy( WstRendererEMB *renderer ) free( renderer->rendererFast ); renderer->rendererFast= 0; } + if ( renderer->moduleFast ) + { + dlclose( renderer->moduleFast ); + renderer->moduleFast= 0; + } free( renderer ); } } @@ -2140,7 +2146,7 @@ static void wstRendererUpdateScene( WstRenderer *renderer ) rendererEMB->fastPathActive= false; } - if ( rendererEMB->fastPathActive ) + if ( rendererEMB->fastPathActive && rendererEMB->rendererFast ) { rendererEMB->rendererFast->outputX= renderer->outputX; rendererEMB->rendererFast->outputY= renderer->outputY; @@ -2258,16 +2264,19 @@ static void wstRendererUpdateScene( WstRenderer *renderer ) int renderFenceFd; rendererEMB->displaySync= wstCreateRenderSync(rendererEMB); renderFenceFd= wstCreateFenceFd(rendererEMB, rendererEMB->displaySync); - for( int i= 0; i < imax; ++i ) + if ( renderFenceFd >= 0 ) { - WstRenderSurface *surface= rendererEMB->surfaces[i]; - if ( surface->visible && (surface->bufferSync.bufferRelease != NULL) ) + for( int i= 0; i < imax; ++i ) { - assert( surface->bufferSync.bufferRelease->renderFenceFd == -1 ); - surface->bufferSync.bufferRelease->renderFenceFd= dup(renderFenceFd); + WstRenderSurface *surface= rendererEMB->surfaces[i]; + if ( surface->visible && (surface->bufferSync.bufferRelease != NULL) ) + { + assert( surface->bufferSync.bufferRelease->renderFenceFd == -1 ); + surface->bufferSync.bufferRelease->renderFenceFd= dup(renderFenceFd); + } } + close(renderFenceFd); } - close(renderFenceFd); } #endif } @@ -2344,7 +2353,7 @@ static void wstRendererSurfaceCommit( WstRenderer *renderer, WstRenderSurface *s rendererEMB->fastPathActive= false; } - if ( rendererEMB->fastPathActive ) + if ( rendererEMB->fastPathActive && rendererEMB->rendererFast ) { rendererEMB->rendererFast->surfaceCommit( rendererEMB->rendererFast, surface->surfaceFast, resource ); return; @@ -2783,6 +2792,7 @@ static void wstRendererInitFastPath( WstRendererEMB *renderer ) } renderer->rendererFast= rendererFast; + renderer->moduleFast= module; { renderer->baseZOrder= 0.5; diff --git a/westeros-render-gl.cpp b/westeros-render-gl.cpp index 97f4830..124f38e 100644 --- a/westeros-render-gl.cpp +++ b/westeros-render-gl.cpp @@ -219,7 +219,7 @@ typedef struct _WstShader static char message[1024]; -#define MAX_TEXTURES (2) +#define MAX_TEXTURES (4) struct _WstRenderSurface { @@ -2319,16 +2319,19 @@ static void wstRendererUpdateScene( WstRenderer *renderer ) int renderFenceFd; rendererGL->displaySync= wstCreateRenderSync(rendererGL); renderFenceFd= wstCreateFenceFd(rendererGL, rendererGL->displaySync); - for( int i= 0; i < imax; ++i ) + if ( renderFenceFd >= 0 ) { - WstRenderSurface *surface= rendererGL->surfaces[i]; - if ( surface->visible && (surface->bufferSync.bufferRelease != NULL) ) + for( int i= 0; i < imax; ++i ) { - assert( surface->bufferSync.bufferRelease->renderFenceFd == -1 ); - surface->bufferSync.bufferRelease->renderFenceFd= dup(renderFenceFd); + WstRenderSurface *surface= rendererGL->surfaces[i]; + if ( surface->visible && (surface->bufferSync.bufferRelease != NULL) ) + { + assert( surface->bufferSync.bufferRelease->renderFenceFd == -1 ); + surface->bufferSync.bufferRelease->renderFenceFd= dup(renderFenceFd); + } } + close(renderFenceFd); } - close(renderFenceFd); } #endif diff --git a/westeros-test.cpp b/westeros-test.cpp index 5c0572f..5b6c8a7 100644 --- a/westeros-test.cpp +++ b/westeros-test.cpp @@ -278,7 +278,7 @@ static long long currentTimeMillis() struct timeval tv; gettimeofday(&tv, NULL); - timeMillis = tv.tv_sec * 1000 + tv.tv_usec / 1000; + timeMillis = (long long)tv.tv_sec * 1000LL + tv.tv_usec / 1000; return timeMillis; } @@ -869,7 +869,7 @@ static void shellSurfaceStatus(void *data, AppCtx *ctx = (AppCtx*)data; AppSurface* surf; - printf("shellSurfaceStatus: id=%u name=%s x=%d y=%d w=%d h=%d visible=%d opacity=%d zorder=%f\n", + printf("shellSurfaceStatus: id=%u name=%s x=%d y=%d w=%d h=%d visible=%u opacity=%f zorder=%f\n", surfaceId, name, x, y, width, height, visible, wl_fixed_to_double(opacity), wl_fixed_to_double(zorder)); @@ -1306,10 +1306,14 @@ int main( int argc, char** argv) { int v= atoi(argv[++i]); printf("v=%d\n", v); - if ( v > 0 ) + if ( v > 0 && v < 1000000 ) { delay= v; printf("using delay=%d\n", delay ); + } + else if ( v >= 1000000 ) + { + printf("warning: delay value %d exceeds maximum (999999), keeping previous value\n", v); } } } @@ -2254,4 +2258,4 @@ static void renderGL( AppCtx *ctx, int width, int height, long long startTime, b { printf( "renderGL: glGetError() = %X\n", err ); } -} \ No newline at end of file +}