mirror of https://github.com/mpv-player/mpv
vo_{drm,wlshm}: make query_format checks more correct
We're using mp_sws here, so we should ask it for format support and not the underlying library (usually swscale) directly.
This commit is contained in:
parent
aa75a0e9d2
commit
830f6ccd6b
|
@ -24,7 +24,6 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <drm_fourcc.h>
|
#include <drm_fourcc.h>
|
||||||
#include <libswscale/swscale.h>
|
|
||||||
|
|
||||||
#include "common/msg.h"
|
#include "common/msg.h"
|
||||||
#include "drm_atomic.h"
|
#include "drm_atomic.h"
|
||||||
|
@ -422,7 +421,8 @@ err:
|
||||||
|
|
||||||
static int query_format(struct vo *vo, int format)
|
static int query_format(struct vo *vo, int format)
|
||||||
{
|
{
|
||||||
return sws_isSupportedInput(imgfmt2pixfmt(format));
|
struct priv *p = vo->priv;
|
||||||
|
return mp_sws_supports_formats(p->sws, p->imgfmt, format) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int control(struct vo *vo, uint32_t request, void *arg)
|
static int control(struct vo *vo, uint32_t request, void *arg)
|
||||||
|
|
|
@ -21,8 +21,6 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include <libswscale/swscale.h>
|
|
||||||
|
|
||||||
#include "osdep/endian.h"
|
#include "osdep/endian.h"
|
||||||
#include "present_sync.h"
|
#include "present_sync.h"
|
||||||
#include "sub/osd.h"
|
#include "sub/osd.h"
|
||||||
|
@ -32,6 +30,8 @@
|
||||||
#include "vo.h"
|
#include "vo.h"
|
||||||
#include "wayland_common.h"
|
#include "wayland_common.h"
|
||||||
|
|
||||||
|
#define IMGFMT_WL_RGB MP_SELECT_LE_BE(IMGFMT_BGR0, IMGFMT_0RGB)
|
||||||
|
|
||||||
struct buffer {
|
struct buffer {
|
||||||
struct vo *vo;
|
struct vo *vo;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
@ -164,7 +164,8 @@ err:
|
||||||
|
|
||||||
static int query_format(struct vo *vo, int format)
|
static int query_format(struct vo *vo, int format)
|
||||||
{
|
{
|
||||||
return sws_isSupportedInput(imgfmt2pixfmt(format));
|
struct priv *p = vo->priv;
|
||||||
|
return mp_sws_supports_formats(p->sws, IMGFMT_WL_RGB, format) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int reconfig(struct vo *vo, struct mp_image_params *params)
|
static int reconfig(struct vo *vo, struct mp_image_params *params)
|
||||||
|
@ -197,7 +198,7 @@ static int resize(struct vo *vo)
|
||||||
vo_get_src_dst_rects(vo, &p->src, &p->dst, &p->osd);
|
vo_get_src_dst_rects(vo, &p->src, &p->dst, &p->osd);
|
||||||
|
|
||||||
p->sws->dst = (struct mp_image_params) {
|
p->sws->dst = (struct mp_image_params) {
|
||||||
.imgfmt = MP_SELECT_LE_BE(IMGFMT_BGR0, IMGFMT_0RGB),
|
.imgfmt = IMGFMT_WL_RGB,
|
||||||
.w = width,
|
.w = width,
|
||||||
.h = height,
|
.h = height,
|
||||||
.p_w = 1,
|
.p_w = 1,
|
||||||
|
|
Loading…
Reference in New Issue