Skip to content

Commit 858453d

Browse files
committed
vcap/deltacast_dvi: accept fullhelp
+ improved cfg handling
1 parent f423d75 commit 858453d

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/video_capture/deltacast_dvi.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ struct vidcap_deltacast_dvi_state {
103103
#endif // defined DELTA_DVI_DEPRECATED
104104

105105

106-
static void usage(void);
107106
static decltype(EEDDIDOK) CheckEEDID(BYTE pEEDIDBuffer[256]);
108107

109108
const static map<VHD_DV_EEDID_PRESET, const char *> edid_presets = {
@@ -122,10 +121,12 @@ const static map<VHD_DV_EEDID_PRESET, const char *> edid_presets = {
122121
{ (VHD_DV_EEDID_PRESET) -1, "avoid E-EDID loading" },
123122
};
124123

125-
static void usage(void)
124+
static void
125+
usage(bool full)
126126
{
127127
col() << "Usage:\n";
128128
col() << SBOLD(SRED("\t-t deltacast-dv") << "[:device=<index>][:channel=<channel>][:codec=<color_spec>][:preset=<preset>|:format=<format>]") << "\n";
129+
col() << SBOLD("\t-t deltacast-dv:[full]help") << "\n";
129130
col() << "where\n";
130131

131132
col() << SBOLD("\t<index>") << " - index of DVI card\n";
@@ -148,7 +149,7 @@ static void usage(void)
148149
col() << SBOLD("\t<format>") << " may be format description (DVI-A), E-EDID will be ignored\n";
149150
col() << "\t\tvideo format is in the format " << SBOLD("<width>x<height>@<fps>") << "\n";
150151

151-
print_available_delta_boards(false);
152+
print_available_delta_boards(full);
152153
}
153154

154155
static decltype(EEDDIDOK) CheckEEDID(BYTE pEEDIDBuffer[256])
@@ -465,26 +466,26 @@ vidcap_deltacast_dvi_init(struct vidcap_params *params, void **state)
465466
return VIDCAP_INIT_AUDIO_NOT_SUPPORTED;
466467
}
467468

468-
char *init_fmt = NULL,
469-
*tmp = NULL;
470-
if (vidcap_params_get_fmt(params) != NULL)
471-
tmp = init_fmt = strdup(vidcap_params_get_fmt(params));
472-
if(init_fmt && strcmp(init_fmt, "help") == 0) {
473-
free(tmp);
474-
usage();
469+
const char *cfg = vidcap_params_get_fmt(params);
470+
if (strcmp(cfg, "help") == 0 ||
471+
strcmp(cfg, "fullhelp") == 0) {
472+
usage(strcmp(cfg, "fullhelp") == 0);
475473
return VIDCAP_INIT_NOERR;
476474
}
477475

478476
s = new vidcap_deltacast_dvi_state();
479477
if(s == NULL) {
480478
printf("Unable to allocate DELTACAST state\n");
481-
goto error;
479+
return VIDCAP_INIT_FAIL;
482480
}
483481

484482
s->codec = BGR;
485483
s->configured = false;
486484
s->BoardHandle = s->StreamHandle = NULL;
487485

486+
char *init_fmt = strdup(cfg);
487+
char *tmp = init_fmt;
488+
488489
if(init_fmt)
489490
{
490491
char *save_ptr = NULL;

0 commit comments

Comments
 (0)