summaryrefslogtreecommitdiff
path: root/utils/kmstest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/kmstest.cpp')
-rw-r--r--utils/kmstest.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/utils/kmstest.cpp b/utils/kmstest.cpp
index 0a8ca22..c6cf129 100644
--- a/utils/kmstest.cpp
+++ b/utils/kmstest.cpp
@@ -351,7 +351,7 @@ static void parse_fb(Card& card, const string& fb_str, OutputInfo* output, Plane
// 400x400-NV12
const regex fb_re("(?:(\\d+)x(\\d+))?" // 400x400
"(?:-)?" // -
- "(\\w\\w\\w\\w)?"); // NV12
+ "(\\w+)?"); // NV12
smatch sm;
if (!regex_match(fb_str, sm, fb_re))
@@ -361,8 +361,13 @@ static void parse_fb(Card& card, const string& fb_str, OutputInfo* output, Plane
w = stoul(sm[1]);
if (sm[2].matched)
h = stoul(sm[2]);
- if (sm[3].matched)
- format = fourcc_str_to_pixel_format(sm[3]);
+ if (sm[3].matched) {
+ try {
+ format = find_pixel_format_by_name(sm[3]);
+ } catch (const invalid_argument& e) {
+ format = fourcc_str_to_pixel_format(sm[3]);
+ }
+ }
}
vector<Framebuffer*> v;
@@ -400,7 +405,7 @@ static const char* usage_str =
" or\n"
" [<crtc>:]<pclk>,<hact>/<hfp>/<hsw>/<hbp>/<hsp>,<vact>/<vfp>/<vsw>/<vbp>/<vsp>[,i]\n"
" -p, --plane=PLANE PLANE is [<plane>:][<x>,<y>-]<w>x<h>\n"
- " -f, --fb=FB FB is [<w>x<h>][-][<4cc>]\n"
+ " -f, --fb=FB FB is [<w>x<h>][-][<fmtname>|<4cc>]\n"
" -v, --view=VIEW VIEW is <x>,<y>-<w>x<h>\n"
" -P, --property=PROP=VAL Set PROP to VAL in the previous DRM object\n"
" --dmt Search for the given mode from DMT tables\n"