summaryrefslogtreecommitdiffstats
path: root/video/out/vo.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vo.c')
-rw-r--r--video/out/vo.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/video/out/vo.c b/video/out/vo.c
index 82da6b5369..b7b017138d 100644
--- a/video/out/vo.c
+++ b/video/out/vo.c
@@ -782,15 +782,17 @@ static void run_query_format(void *p)
{
void **pp = p;
struct vo *vo = pp[0];
- *(int *)pp[2] = vo->driver->query_format(vo, *(int *)pp[1]);
+ uint8_t *list = pp[1];
+ for (int format = IMGFMT_START; format < IMGFMT_END; format++)
+ list[format - IMGFMT_START] = vo->driver->query_format(vo, format);
}
-int vo_query_format(struct vo *vo, int format)
+// For each item in the list (allocated as uint8_t[IMGFMT_END - IMGFMT_START]),
+// set the supported format flags.
+void vo_query_formats(struct vo *vo, uint8_t *list)
{
- int ret;
- void *p[] = {vo, &format, &ret};
+ void *p[] = {vo, list};
mp_dispatch_run(vo->in->dispatch, run_query_format, p);
- return ret;
}
// Calculate the appropriate source and destination rectangle to