aboutsummaryrefslogtreecommitdiff
path: root/cast/standalone_sender/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cast/standalone_sender/main.cc')
-rw-r--r--cast/standalone_sender/main.cc24
1 files changed, 22 insertions, 2 deletions
diff --git a/cast/standalone_sender/main.cc b/cast/standalone_sender/main.cc
index 228c00b1..22a9b6fa 100644
--- a/cast/standalone_sender/main.cc
+++ b/cast/standalone_sender/main.cc
@@ -81,6 +81,9 @@ usage: %s <options> addr[:port] media_file
-v, --verbose: Enable verbose logging.
-h, --help: Show this help message.
+
+ -c, --codec: Specifies the video codec to be used. Can be one of:
+ vp8, vp9, av1. Defaults to vp8 if not specified.
)";
std::cerr << StringPrintf(kTemplate, argv0, argv0, kDefaultCastPort,
@@ -122,6 +125,7 @@ int StandaloneSenderMain(int argc, char* argv[]) {
{"tracing", no_argument, nullptr, 't'},
{"verbose", no_argument, nullptr, 'v'},
{"help", no_argument, nullptr, 'h'},
+ {"codec", required_argument, nullptr, 'c'},
{nullptr, 0, nullptr, 0}
};
@@ -131,9 +135,10 @@ int StandaloneSenderMain(int argc, char* argv[]) {
bool use_android_rtp_hack = false;
bool use_remoting = false;
bool is_verbose = false;
+ VideoCodec codec = VideoCodec::kVp8;
std::unique_ptr<TextTraceLoggingPlatform> trace_logger;
int ch = -1;
- while ((ch = getopt_long(argc, argv, "m:nd:artvh", kArgumentOptions,
+ while ((ch = getopt_long(argc, argv, "m:nd:artvhc:", kArgumentOptions,
nullptr)) != -1) {
switch (ch) {
case 'm':
@@ -168,6 +173,20 @@ int StandaloneSenderMain(int argc, char* argv[]) {
case 'h':
LogUsage(argv[0]);
return 1;
+ case 'c':
+ auto specified_codec = StringToVideoCodec(optarg);
+ if (specified_codec.is_value() &&
+ (specified_codec.value() == VideoCodec::kVp8 ||
+ specified_codec.value() == VideoCodec::kVp9 ||
+ specified_codec.value() == VideoCodec::kAv1)) {
+ codec = specified_codec.value();
+ } else {
+ OSP_LOG_ERROR << "Invalid --codec specified: " << optarg
+ << " is not one of: vp8, vp9, av1.";
+ LogUsage(argv[0]);
+ return 1;
+ }
+ break;
}
}
@@ -228,7 +247,8 @@ int StandaloneSenderMain(int argc, char* argv[]) {
.should_include_video = true,
.use_android_rtp_hack = use_android_rtp_hack,
.use_remoting = use_remoting,
- .should_loop_video = should_loop_video});
+ .should_loop_video = should_loop_video,
+ .codec = codec});
});
// Run the event loop until SIGINT (e.g., CTRL-C at the console) or