mirror of
https://github.com/mpv-player/mpv
synced 2025-03-20 10:17:31 +00:00
cuda: move --cuda-device to cuda_opts group
Also change a ta_free to talloc_free for consistency reasons.
This commit is contained in:
parent
73ad9eef28
commit
db12a2f224
@ -363,6 +363,21 @@ const struct m_sub_options mp_osd_render_sub_opts = {
|
||||
.change_flags = UPDATE_OSD,
|
||||
};
|
||||
|
||||
#undef OPT_BASE_STRUCT
|
||||
#define OPT_BASE_STRUCT struct cuda_opts
|
||||
|
||||
const struct m_sub_options cuda_conf = {
|
||||
.opts = (const struct m_option[]){
|
||||
{"decode-device", OPT_CHOICE(cuda_device, {"auto", -1}),
|
||||
M_RANGE(0, INT_MAX)},
|
||||
{0}
|
||||
},
|
||||
.size = sizeof(struct cuda_opts),
|
||||
.defaults = &(const struct cuda_opts){
|
||||
.cuda_device = -1,
|
||||
},
|
||||
};
|
||||
|
||||
#undef OPT_BASE_STRUCT
|
||||
#define OPT_BASE_STRUCT struct dvd_opts
|
||||
|
||||
@ -845,8 +860,7 @@ static const m_option_t mp_opts[] = {
|
||||
#endif
|
||||
|
||||
#if HAVE_CUDA_HWACCEL
|
||||
{"cuda-decode-device", OPT_CHOICE(cuda_device, {"auto", -1}),
|
||||
M_RANGE(0, INT_MAX)},
|
||||
{"cuda", OPT_SUBSTRUCT(cuda_opts, cuda_conf)},
|
||||
#endif
|
||||
|
||||
#if HAVE_VAAPI
|
||||
|
@ -365,6 +365,7 @@ typedef struct MPOpts {
|
||||
struct drm_opts *drm_opts;
|
||||
struct wayland_opts *wayland_opts;
|
||||
struct wingl_opts *wingl_opts;
|
||||
struct cuda_opts *cuda_opts;
|
||||
struct dvd_opts *dvd_opts;
|
||||
struct vaapi_opts *vaapi_opts;
|
||||
struct sws_opts *sws_opts;
|
||||
@ -373,6 +374,10 @@ typedef struct MPOpts {
|
||||
int cuda_device;
|
||||
} MPOpts;
|
||||
|
||||
struct cuda_opts {
|
||||
int cuda_device;
|
||||
};
|
||||
|
||||
struct dvd_opts {
|
||||
int angle;
|
||||
int speed;
|
||||
@ -384,6 +389,7 @@ struct filter_opts {
|
||||
};
|
||||
|
||||
extern const struct m_sub_options vo_sub_opts;
|
||||
extern const struct m_sub_options cuda_conf;
|
||||
extern const struct m_sub_options dvd_conf;
|
||||
extern const struct m_sub_options mp_subtitle_sub_opts;
|
||||
extern const struct m_sub_options mp_sub_filter_opts;
|
||||
|
13
video/cuda.c
13
video/cuda.c
@ -17,25 +17,24 @@
|
||||
|
||||
#include "hwdec.h"
|
||||
#include "options/m_config.h"
|
||||
#include "options/options.h"
|
||||
|
||||
#include <libavutil/hwcontext.h>
|
||||
|
||||
static struct AVBufferRef *cuda_create_standalone(struct mpv_global *global,
|
||||
struct mp_log *log, struct hwcontext_create_dev_params *params)
|
||||
{
|
||||
int decode_dev_idx;
|
||||
mp_read_option_raw(global, "cuda-decode-device", &m_option_type_choice,
|
||||
&decode_dev_idx);
|
||||
struct cuda_opts *opts = mp_get_config_group(NULL, global, &cuda_conf);
|
||||
|
||||
char *decode_dev = NULL;
|
||||
if (decode_dev_idx != -1) {
|
||||
decode_dev = talloc_asprintf(NULL, "%d", decode_dev_idx);
|
||||
}
|
||||
if (opts->cuda_device != -1)
|
||||
decode_dev = talloc_asprintf(NULL, "%d", opts->cuda_device);
|
||||
|
||||
AVBufferRef* ref = NULL;
|
||||
av_hwdevice_ctx_create(&ref, AV_HWDEVICE_TYPE_CUDA, decode_dev, NULL, 0);
|
||||
|
||||
ta_free(decode_dev);
|
||||
talloc_free(decode_dev);
|
||||
talloc_free(opts);
|
||||
return ref;
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "hwdec_cuda.h"
|
||||
#include "options/m_config.h"
|
||||
#include "options/options.h"
|
||||
#include "video/out/opengl/formats.h"
|
||||
#include "video/out/opengl/ra_gl.h"
|
||||
|
||||
@ -135,9 +136,9 @@ bool cuda_gl_init(const struct ra_hwdec *hw) {
|
||||
|
||||
p->decode_ctx = p->display_ctx;
|
||||
|
||||
int decode_dev_idx = -1;
|
||||
mp_read_option_raw(hw->global, "cuda-decode-device", &m_option_type_choice,
|
||||
&decode_dev_idx);
|
||||
struct cuda_opts *opts = mp_get_config_group(NULL, hw->global, &cuda_conf);
|
||||
int decode_dev_idx = opts->cuda_device;
|
||||
talloc_free(opts);
|
||||
|
||||
if (decode_dev_idx > -1) {
|
||||
CUcontext dummy;
|
||||
|
Loading…
Reference in New Issue
Block a user