From cefc478a1f20041f88295fe6fc5607da2e651bce Mon Sep 17 00:00:00 2001 From: WireFisher <20874936+WireFisher@users.noreply.github.com> Date: Sun, 22 May 2022 18:10:15 +0800 Subject: [PATCH] fix: avoid ilclient_get_input_buffer failure Function `ilclient_get_input_buffer` will return Null when the third parameter (block) is 0 and there is temporarily no buffer available in the free list. Calling `ilclient_get_input_buffer` with "block" turned-on should prevent the caller from getting Null pointer repeatedly. Thus, the program won't suffer the "Got NULL buffer" error. --- renderers/audio_renderer_rpi.c | 2 +- renderers/video_renderer_rpi.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/renderers/audio_renderer_rpi.c b/renderers/audio_renderer_rpi.c index bad51bc6..07f2afea 100644 --- a/renderers/audio_renderer_rpi.c +++ b/renderers/audio_renderer_rpi.c @@ -328,7 +328,7 @@ static void audio_renderer_rpi_render_buffer(audio_renderer_t *renderer, raop_nt if (audio_delay > 100000) r->first_packet_time = 0; - OMX_BUFFERHEADERTYPE *buffer = ilclient_get_input_buffer(r->audio_renderer, 100, 0); + OMX_BUFFERHEADERTYPE *buffer = ilclient_get_input_buffer(r->audio_renderer, 100, 1); if (!buffer) break; diff --git a/renderers/video_renderer_rpi.c b/renderers/video_renderer_rpi.c index a4a6e459..c61334b3 100755 --- a/renderers/video_renderer_rpi.c +++ b/renderers/video_renderer_rpi.c @@ -451,7 +451,7 @@ static void video_renderer_rpi_render_buffer(video_renderer_t *renderer, raop_nt int offset = 0; while (offset < data_len) { - OMX_BUFFERHEADERTYPE *buffer = ilclient_get_input_buffer(r->video_decoder, 130, 0); + OMX_BUFFERHEADERTYPE *buffer = ilclient_get_input_buffer(r->video_decoder, 130, 1); if (buffer == NULL) logger_log(renderer->logger, LOGGER_ERR, "Got NULL buffer!"); if (!buffer) exit(-1);