提交 37d05f80 编写于 作者: Z Zhang Rui

ijksdl: add SDL_VoutDisplayYUVOverlay

上级 36d5f414
...@@ -448,7 +448,7 @@ static void video_image_display(FFPlayer *ffp) ...@@ -448,7 +448,7 @@ static void video_image_display(FFPlayer *ffp)
is->last_display_rect = rect; is->last_display_rect = rect;
} }
#else #else
SDL_VoutDisplayYUVOverlay(vp->bmp); SDL_VoutDisplayYUVOverlay(ffp->vout, vp->bmp);
#endif #endif
} }
} }
......
...@@ -44,6 +44,13 @@ SDL_VoutSurface *SDL_VoutSetVideoMode(SDL_Vout *vout, int w, int h, int bpp, Uin ...@@ -44,6 +44,13 @@ SDL_VoutSurface *SDL_VoutSetVideoMode(SDL_Vout *vout, int w, int h, int bpp, Uin
return vout->set_video_mode(vout, w, h, bpp, flags); return vout->set_video_mode(vout, w, h, bpp, flags);
} }
int SDL_VoutDisplayYUVOverlay(SDL_Vout *vout, SDL_VoutOverlay *overlay)
{
if (vout && overlay && vout->display_overlay)
return vout->display_overlay(vout, overlay);
return -1;
}
int SDL_VoutLockYUVOverlay(SDL_VoutOverlay *overlay) int SDL_VoutLockYUVOverlay(SDL_VoutOverlay *overlay)
{ {
if (overlay && overlay->lock) if (overlay && overlay->lock)
...@@ -60,14 +67,6 @@ int SDL_VoutUnlockYUVOverlay(SDL_VoutOverlay *overlay) ...@@ -60,14 +67,6 @@ int SDL_VoutUnlockYUVOverlay(SDL_VoutOverlay *overlay)
return -1; return -1;
} }
int SDL_VoutDisplayYUVOverlay(SDL_VoutOverlay *overlay)
{
if (overlay && overlay->display)
return overlay->display(overlay);
return -1;
}
void SDL_VoutFreeYUVOverlay(SDL_VoutOverlay *overlay) void SDL_VoutFreeYUVOverlay(SDL_VoutOverlay *overlay)
{ {
if (!overlay) if (!overlay)
......
...@@ -45,7 +45,6 @@ typedef struct SDL_VoutOverlay { ...@@ -45,7 +45,6 @@ typedef struct SDL_VoutOverlay {
void (*free_l)(SDL_VoutOverlay *overlay); void (*free_l)(SDL_VoutOverlay *overlay);
int (*lock)(SDL_VoutOverlay *overlay); int (*lock)(SDL_VoutOverlay *overlay);
int (*unlock)(SDL_VoutOverlay *overlay); int (*unlock)(SDL_VoutOverlay *overlay);
int (*display)(SDL_VoutOverlay *overlay);
} SDL_VoutOverlay; } SDL_VoutOverlay;
typedef struct SDL_VoutSurface_Opaque SDL_VoutSurface_Opaque; typedef struct SDL_VoutSurface_Opaque SDL_VoutSurface_Opaque;
...@@ -66,14 +65,15 @@ typedef struct SDL_Vout { ...@@ -66,14 +65,15 @@ typedef struct SDL_Vout {
SDL_Vout_Opaque *opaque; SDL_Vout_Opaque *opaque;
void (*free_l)(SDL_Vout *vout); void (*free_l)(SDL_Vout *vout);
SDL_VoutSurface *(*set_video_mode)(SDL_Vout *vout, int w, int h, int bpp, Uint32 flags); SDL_VoutSurface *(*set_video_mode)(SDL_Vout *vout, int w, int h, int bpp, Uint32 flags);
int (*display_overlay)(SDL_Vout *vout, SDL_VoutOverlay *overlay);
} SDL_Vout; } SDL_Vout;
void SDL_VoutFree(SDL_Vout *vout); void SDL_VoutFree(SDL_Vout *vout);
SDL_VoutSurface *SDL_VoutSetVideoMode(SDL_Vout *vout, int w, int h, int bpp, Uint32 flags); SDL_VoutSurface *SDL_VoutSetVideoMode(SDL_Vout *vout, int w, int h, int bpp, Uint32 flags);
int SDL_VoutDisplayYUVOverlay(SDL_Vout *vout, SDL_VoutOverlay *overlay);
int SDL_VoutLockYUVOverlay(SDL_VoutOverlay *overlay); int SDL_VoutLockYUVOverlay(SDL_VoutOverlay *overlay);
int SDL_VoutUnlockYUVOverlay(SDL_VoutOverlay *overlay); int SDL_VoutUnlockYUVOverlay(SDL_VoutOverlay *overlay);
int SDL_VoutDisplayYUVOverlay(SDL_VoutOverlay *overlay);
void SDL_VoutFreeYUVOverlay(SDL_VoutOverlay *overlay); void SDL_VoutFreeYUVOverlay(SDL_VoutOverlay *overlay);
#endif #endif
...@@ -96,6 +96,12 @@ static SDL_VoutSurface *vout_set_video_mode(SDL_Vout *vout, int w, int h, int bp ...@@ -96,6 +96,12 @@ static SDL_VoutSurface *vout_set_video_mode(SDL_Vout *vout, int w, int h, int bp
return surface; return surface;
} }
static int voud_display_overlay(SDL_Vout *vout, SDL_VoutOverlay *overlay)
{
// FIXME: implement
return -1;
}
SDL_Vout *SDL_VoutAndroid_CreateForANativeWindow() SDL_Vout *SDL_VoutAndroid_CreateForANativeWindow()
{ {
SDL_Vout *vout = SDL_Vout_CreateInternal(); SDL_Vout *vout = SDL_Vout_CreateInternal();
...@@ -117,6 +123,7 @@ SDL_Vout *SDL_VoutAndroid_CreateForANativeWindow() ...@@ -117,6 +123,7 @@ SDL_Vout *SDL_VoutAndroid_CreateForANativeWindow()
vout->opaque = opaque; vout->opaque = opaque;
vout->free_l = vout_free; vout->free_l = vout_free;
vout->set_video_mode = vout_set_video_mode; vout->set_video_mode = vout_set_video_mode;
vout->display_overlay = voud_display_overlay;
return vout; return vout;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册