diff mbox

[FFmpeg-devel] ffplay: allow fallback to software renderer

Message ID 1479417528-6109-1-git-send-email-cus@passwd.hu
State Accepted
Headers show

Commit Message

Marton Balint Nov. 17, 2016, 9:18 p.m. UTC
Signed-off-by: Marton Balint <cus@passwd.hu>
---
 ffplay.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Josh Dekker Nov. 17, 2016, 9:26 p.m. UTC | #1
On 17/11/2016 21:18, Marton Balint wrote:
> Signed-off-by: Marton Balint <cus@passwd.hu>
> ---
>  ffplay.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/ffplay.c b/ffplay.c
> index 12502f2..63c0e19 100644
> --- a/ffplay.c
> +++ b/ffplay.c
> @@ -1282,6 +1282,10 @@ static int video_open(VideoState *is, Frame *vp)
>          if (window) {
>              SDL_RendererInfo info;
>              renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
> +            if (!renderer) {
> +                av_log(NULL, AV_LOG_WARNING, "Failed to initialize a hardware accelerated renderer.\n");
> +                renderer = SDL_CreateRenderer(window, -1, 0);
Shouldn't this be SDL_RENDERER_PRESENTVSYNC instead of 0?
> +            }
>              if (renderer) {
>                  if (!SDL_GetRendererInfo(renderer, &info))
>                      av_log(NULL, AV_LOG_VERBOSE, "Initialized %s renderer.\n", info.name);
>

If the hwaccel renderer fails, it may be useful to give the user the 
SDL_Error as well.

F.ex:
av_log(NULL, AV_LOG_WARNING, "Failed to intialize a hardware accelerated 
renderer: %s\n", SDL_GetError());
Marton Balint Nov. 20, 2016, 11:14 p.m. UTC | #2
On Thu, 17 Nov 2016, Josh de Kock wrote:

> On 17/11/2016 21:18, Marton Balint wrote:
>> Signed-off-by: Marton Balint <cus@passwd.hu>
>> ---
>>  ffplay.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/ffplay.c b/ffplay.c
>> index 12502f2..63c0e19 100644
>> --- a/ffplay.c
>> +++ b/ffplay.c
>> @@ -1282,6 +1282,10 @@ static int video_open(VideoState *is, Frame *vp)
>>          if (window) {
>>              SDL_RendererInfo info;
>>              renderer = SDL_CreateRenderer(window, -1, 
> SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
>> +            if (!renderer) {
>> +                av_log(NULL, AV_LOG_WARNING, "Failed to initialize a 
> hardware accelerated renderer.\n");
>> +                renderer = SDL_CreateRenderer(window, -1, 0);
> Shouldn't this be SDL_RENDERER_PRESENTVSYNC instead of 0?

Software renderer does not support it, so no.

>> +            }
>>              if (renderer) {
>>                  if (!SDL_GetRendererInfo(renderer, &info))
>>                      av_log(NULL, AV_LOG_VERBOSE, "Initialized %s 
> renderer.\n", info.name);
>>
>
> If the hwaccel renderer fails, it may be useful to give the user the 
> SDL_Error as well.
>
> F.ex:
> av_log(NULL, AV_LOG_WARNING, "Failed to intialize a hardware accelerated 
> renderer: %s\n", SDL_GetError());

Ok, pushed with that change.

Thanks,
Marton
diff mbox

Patch

diff --git a/ffplay.c b/ffplay.c
index 12502f2..63c0e19 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1282,6 +1282,10 @@  static int video_open(VideoState *is, Frame *vp)
         if (window) {
             SDL_RendererInfo info;
             renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
+            if (!renderer) {
+                av_log(NULL, AV_LOG_WARNING, "Failed to initialize a hardware accelerated renderer.\n");
+                renderer = SDL_CreateRenderer(window, -1, 0);
+            }
             if (renderer) {
                 if (!SDL_GetRendererInfo(renderer, &info))
                     av_log(NULL, AV_LOG_VERBOSE, "Initialized %s renderer.\n", info.name);