Add --audio-codec option

Introduce the selection mechanism. Alternative codecs will be added
later.
This commit is contained in:
Romain Vimont
2023-02-18 19:05:43 +01:00
parent 153b17390b
commit 87afca911f
10 changed files with 63 additions and 6 deletions

View File

@@ -60,6 +60,7 @@
#define OPT_VIDEO_CODEC 1040
#define OPT_NO_AUDIO 1041
#define OPT_AUDIO_BIT_RATE 1042
#define OPT_AUDIO_CODEC 1043
struct sc_option {
char shortopt;
@@ -108,6 +109,13 @@ static const struct sc_option options[] = {
"Unit suffixes are supported: 'K' (x1000) and 'M' (x1000000).\n"
"Default is 196K (196000).",
},
{
.longopt_id = OPT_AUDIO_CODEC,
.longopt = "audio-codec",
.argdesc = "name",
.text = "Select an audio codec (opus).\n"
"Default is opus.",
},
{
.shortopt = 'b',
.longopt = "bit-rate",
@@ -1420,6 +1428,16 @@ parse_video_codec(const char *optarg, enum sc_codec *codec) {
return false;
}
static bool
parse_audio_codec(const char *optarg, enum sc_codec *codec) {
if (!strcmp(optarg, "opus")) {
*codec = SC_CODEC_OPUS;
return true;
}
LOGE("Unsupported audio codec: %s (expected opus)", optarg);
return false;
}
static bool
parse_args_with_getopt(struct scrcpy_cli_args *args, int argc, char *argv[],
const char *optstring, const struct option *longopts) {
@@ -1666,6 +1684,11 @@ parse_args_with_getopt(struct scrcpy_cli_args *args, int argc, char *argv[],
return false;
}
break;
case OPT_AUDIO_CODEC:
if (!parse_audio_codec(optarg, &opts->audio_codec)) {
return false;
}
break;
case OPT_OTG:
#ifdef HAVE_USB
opts->otg = true;