Initialize only video subsystem in screen.c

SDL may initialize several subsystems (e.g. video and audio). Initialize
only video in screen.c, and call SQL_Quit in any case.
This commit is contained in:
Romain Vimont 2018-03-21 11:27:52 +01:00 committed by Romain Vimont
parent 78da66f126
commit 14112d8b11
4 changed files with 7 additions and 7 deletions

View File

@ -292,5 +292,7 @@ int main(int argc, char *argv[]) {
avformat_network_deinit(); // ignore failure
SDL_Quit();
return res;
}

View File

@ -139,7 +139,7 @@ SDL_bool scrcpy(const struct scrcpy_options *options) {
LOGW("Cannot request to keep default signal handlers");
}
if (!sdl_init_and_configure()) {
if (!sdl_video_init()) {
ret = SDL_FALSE;
goto finally_destroy_server;
}

View File

@ -10,14 +10,12 @@
#define DISPLAY_MARGINS 96
SDL_bool sdl_init_and_configure(void) {
if (SDL_Init(SDL_INIT_VIDEO)) {
LOGC("Could not initialize SDL: %s", SDL_GetError());
SDL_bool sdl_video_init(void) {
if (SDL_InitSubSystem(SDL_INIT_VIDEO)) {
LOGC("Could not initialize SDL video: %s", SDL_GetError());
return SDL_FALSE;
}
atexit(SDL_Quit);
// Use the best available scale quality
if (!SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "2")) {
LOGW("Could not enable bilinear filtering");

View File

@ -35,7 +35,7 @@ struct screen {
}
// init SDL and set appropriate hints
SDL_bool sdl_init_and_configure(void);
SDL_bool sdl_video_init(void);
// initialize default values
void screen_init(struct screen *screen);