summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d88a203)
raw | patch | inline | side by side (parent: d88a203)
author | Vincent Stehlé <v-stehle@ti.com> | |
Mon, 27 Aug 2012 16:31:51 +0000 (18:31 +0200) | ||
committer | Vincent Stehlé <v-stehle@ti.com> | |
Mon, 27 Aug 2012 17:06:44 +0000 (19:06 +0200) |
Introduce a new "qualifier" on displays and display buffers, to keep track of
whether we have a single buffer for Y/U/V or if we have Y and U/V separated.
KMS display buffers are multiplanar, and X11 display buffers are
non-multiplanar since latest non-multiplanar dri2video in xf86-video-omap.
Signed-off-by: Vincent Stehlé <v-stehle@ti.com>
whether we have a single buffer for Y/U/V or if we have Y and U/V separated.
KMS display buffers are multiplanar, and X11 display buffers are
non-multiplanar since latest non-multiplanar dri2video in xf86-video-omap.
Signed-off-by: Vincent Stehlé <v-stehle@ti.com>
util/display-kms.c | patch | blob | history | |
util/display-x11.c | patch | blob | history | |
util/util.h | patch | blob | history |
diff --git a/util/display-kms.c b/util/display-kms.c
index 882117b970a21c16a1524ee63c365e08f835c34c..106582abbdfe72033a046373eee9d5c028e472af 100644 (file)
--- a/util/display-kms.c
+++ b/util/display-kms.c
buf->fourcc = fourcc;
buf->width = w;
buf->height = h;
+ buf->multiplanar = true;
buf->nbo = 1;
disp->width = 0;
disp->height = 0;
+ disp->multiplanar = true;
for (i = 0; i < (int)disp_kms->connectors_count; i++) {
struct connector *c = &disp_kms->connector[i];
connector_find_mode(disp, c);
}
}
- MSG("using %d connectors, %dx%d display",
- disp_kms->connectors_count, disp->width, disp->height);
+ MSG("using %d connectors, %dx%d display, multiplanar: %d",
+ disp_kms->connectors_count, disp->width, disp->height, disp->multiplanar);
return disp;
diff --git a/util/display-x11.c b/util/display-x11.c
index 0144612a909009b327e4090c36d1842150e5b3fa..9553dc6127c35ecba204f10e826031375cbb12fa 100644 (file)
--- a/util/display-x11.c
+++ b/util/display-x11.c
buf->fourcc = fourcc;
buf->width = w;
buf->height = h;
+ buf->multiplanar = false;
for (j = 0; dri2bufs[i].names[j]; j++) {
buf->bo[j] = omap_bo_from_name(disp->dev, dri2bufs[i].names[j]);
disp->get_vid_buffers = get_vid_buffers;
disp->post_buffer = post_buffer;
disp->post_vid_buffer = post_vid_buffer;
+ disp->multiplanar = false;
/* note: set args to NULL after we've parsed them so other modules know
* that it is already parsed (since the arg parsing is decentralized)
diff --git a/util/util.h b/util/util.h
index 363ad72c1ecb7051d1a465aad7fdcc6b6cfb0115..28a345adeefe3202c3ab88dbb6e5f5d14ed35c87 100644 (file)
--- a/util/util.h
+++ b/util/util.h
struct omap_bo *bo[4];
uint32_t pitches[4];
struct list unlocked;
+ bool multiplanar; /* True when Y and U/V are in separate buffers. */
};
/* State variables, used to maintain the playback rate. */
int (*post_buffer)(struct display *disp, struct buffer *buf);
int (*post_vid_buffer)(struct display *disp, struct buffer *buf,
uint32_t x, uint32_t y, uint32_t w, uint32_t h);
+
+ bool multiplanar; /* True when Y and U/V are in separate buffers. */
};
/* Print display related help */