mirror of
https://github.com/mpv-player/mpv
synced 2025-03-29 15:00:27 +00:00
options: simplify --android-surface-size handling
This commit is contained in:
parent
7831e52238
commit
3054bcc62c
@ -417,7 +417,6 @@ char *format_file_size(int64_t size);
|
|||||||
#define UPDATE_SCREENSAVER (1 << 16) // --stop-screensaver
|
#define UPDATE_SCREENSAVER (1 << 16) // --stop-screensaver
|
||||||
#define UPDATE_VOL (1 << 17) // softvol related options
|
#define UPDATE_VOL (1 << 17) // softvol related options
|
||||||
#define UPDATE_LAVFI_COMPLEX (1 << 18) // --lavfi-complex
|
#define UPDATE_LAVFI_COMPLEX (1 << 18) // --lavfi-complex
|
||||||
#define UPDATE_VO_RESIZE (1 << 19) // --android-surface-size
|
|
||||||
#define UPDATE_HWDEC (1 << 20) // --hwdec
|
#define UPDATE_HWDEC (1 << 20) // --hwdec
|
||||||
#define UPDATE_DVB_PROG (1 << 21) // some --dvbin-...
|
#define UPDATE_DVB_PROG (1 << 21) // some --dvbin-...
|
||||||
#define UPDATE_SUB_HARD (1 << 22) // subtitle opts. that need full reinit
|
#define UPDATE_SUB_HARD (1 << 22) // subtitle opts. that need full reinit
|
||||||
|
@ -92,7 +92,6 @@ extern const struct m_sub_options d3d11va_conf;
|
|||||||
extern const struct m_sub_options angle_conf;
|
extern const struct m_sub_options angle_conf;
|
||||||
extern const struct m_sub_options cocoa_conf;
|
extern const struct m_sub_options cocoa_conf;
|
||||||
extern const struct m_sub_options macos_conf;
|
extern const struct m_sub_options macos_conf;
|
||||||
extern const struct m_sub_options android_conf;
|
|
||||||
extern const struct m_sub_options wayland_conf;
|
extern const struct m_sub_options wayland_conf;
|
||||||
extern const struct m_sub_options vaapi_conf;
|
extern const struct m_sub_options vaapi_conf;
|
||||||
|
|
||||||
@ -166,6 +165,9 @@ static const m_option_t mp_vo_opt_list[] = {
|
|||||||
#endif
|
#endif
|
||||||
#if HAVE_DRM
|
#if HAVE_DRM
|
||||||
{"", OPT_SUBSTRUCT(drm_opts, drm_conf)},
|
{"", OPT_SUBSTRUCT(drm_opts, drm_conf)},
|
||||||
|
#endif
|
||||||
|
#if HAVE_EGL_ANDROID
|
||||||
|
{"android-surface-size", OPT_SIZE_BOX(android_surface_size)},
|
||||||
#endif
|
#endif
|
||||||
{"swapchain-depth", OPT_INT(swapchain_depth), M_RANGE(1, 8)},
|
{"swapchain-depth", OPT_INT(swapchain_depth), M_RANGE(1, 8)},
|
||||||
{0}
|
{0}
|
||||||
@ -784,10 +786,6 @@ static const m_option_t mp_opts[] = {
|
|||||||
{"", OPT_SUBSTRUCT(macos_opts, macos_conf)},
|
{"", OPT_SUBSTRUCT(macos_opts, macos_conf)},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAVE_EGL_ANDROID
|
|
||||||
{"", OPT_SUBSTRUCT(android_opts, android_conf)},
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_WAYLAND
|
#if HAVE_WAYLAND
|
||||||
{"", OPT_SUBSTRUCT(wayland_opts, wayland_conf)},
|
{"", OPT_SUBSTRUCT(wayland_opts, wayland_conf)},
|
||||||
#endif
|
#endif
|
||||||
|
@ -62,6 +62,8 @@ typedef struct mp_vo_opts {
|
|||||||
// vo_drm
|
// vo_drm
|
||||||
struct drm_opts *drm_opts;
|
struct drm_opts *drm_opts;
|
||||||
|
|
||||||
|
struct m_geometry android_surface_size;
|
||||||
|
|
||||||
int swapchain_depth; // max number of images to render ahead
|
int swapchain_depth; // max number of images to render ahead
|
||||||
} mp_vo_opts;
|
} mp_vo_opts;
|
||||||
|
|
||||||
@ -340,7 +342,6 @@ typedef struct MPOpts {
|
|||||||
struct d3d11va_opts *d3d11va_opts;
|
struct d3d11va_opts *d3d11va_opts;
|
||||||
struct cocoa_opts *cocoa_opts;
|
struct cocoa_opts *cocoa_opts;
|
||||||
struct macos_opts *macos_opts;
|
struct macos_opts *macos_opts;
|
||||||
struct android_opts *android_opts;
|
|
||||||
struct wayland_opts *wayland_opts;
|
struct wayland_opts *wayland_opts;
|
||||||
struct dvd_opts *dvd_opts;
|
struct dvd_opts *dvd_opts;
|
||||||
struct vaapi_opts *vaapi_opts;
|
struct vaapi_opts *vaapi_opts;
|
||||||
|
@ -6475,7 +6475,7 @@ void mp_option_change_callback(void *ctx, struct m_config_option *co, int flags,
|
|||||||
if (flags & UPDATE_LAVFI_COMPLEX)
|
if (flags & UPDATE_LAVFI_COMPLEX)
|
||||||
update_lavfi_complex(mpctx);
|
update_lavfi_complex(mpctx);
|
||||||
|
|
||||||
if (flags & UPDATE_VO_RESIZE) {
|
if (opt_ptr == &opts->vo->android_surface_size) {
|
||||||
if (mpctx->video_out)
|
if (mpctx->video_out)
|
||||||
vo_control(mpctx->video_out, VOCTRL_EXTERNAL_RESIZE, NULL);
|
vo_control(mpctx->video_out, VOCTRL_EXTERNAL_RESIZE, NULL);
|
||||||
}
|
}
|
||||||
|
@ -24,21 +24,6 @@
|
|||||||
#include "options/m_config.h"
|
#include "options/m_config.h"
|
||||||
#include "vo.h"
|
#include "vo.h"
|
||||||
|
|
||||||
struct android_opts {
|
|
||||||
struct m_geometry surface_size;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define OPT_BASE_STRUCT struct android_opts
|
|
||||||
const struct m_sub_options android_conf = {
|
|
||||||
.opts = (const struct m_option[]) {
|
|
||||||
{"android-surface-size", OPT_SIZE_BOX(surface_size),
|
|
||||||
.flags = UPDATE_VO_RESIZE},
|
|
||||||
{0}
|
|
||||||
},
|
|
||||||
.size = sizeof(struct android_opts),
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct vo_android_state {
|
struct vo_android_state {
|
||||||
struct mp_log *log;
|
struct mp_log *log;
|
||||||
ANativeWindow *native_window;
|
ANativeWindow *native_window;
|
||||||
@ -95,16 +80,14 @@ ANativeWindow *vo_android_native_window(struct vo *vo)
|
|||||||
bool vo_android_surface_size(struct vo *vo, int *out_w, int *out_h)
|
bool vo_android_surface_size(struct vo *vo, int *out_w, int *out_h)
|
||||||
{
|
{
|
||||||
struct vo_android_state *ctx = vo->android;
|
struct vo_android_state *ctx = vo->android;
|
||||||
void *tmp = talloc_new(NULL);
|
|
||||||
struct android_opts *opts = mp_get_config_group(tmp, vo->global, &android_conf);
|
|
||||||
|
|
||||||
int w = opts->surface_size.w, h = opts->surface_size.h;
|
int w = vo->opts->android_surface_size.w,
|
||||||
|
h = vo->opts->android_surface_size.h;
|
||||||
if (!w)
|
if (!w)
|
||||||
w = ANativeWindow_getWidth(ctx->native_window);
|
w = ANativeWindow_getWidth(ctx->native_window);
|
||||||
if (!h)
|
if (!h)
|
||||||
h = ANativeWindow_getHeight(ctx->native_window);
|
h = ANativeWindow_getHeight(ctx->native_window);
|
||||||
|
|
||||||
talloc_free(tmp);
|
|
||||||
if (w <= 0 || h <= 0) {
|
if (w <= 0 || h <= 0) {
|
||||||
MP_ERR(ctx, "Failed to get height and width.\n");
|
MP_ERR(ctx, "Failed to get height and width.\n");
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user