OPTION_TIMECODE_STREAM,
OPTION_TIMECODE_STDOUT,
OPTION_QUICK_CUT_KEYS,
+ OPTION_10_BIT,
OPTION_10_BIT_INPUT,
OPTION_10_BIT_OUTPUT,
OPTION_INPUT_YCBCR_INTERPRETATION,
fprintf(stderr, " --default-hdmi-input default to HDMI over SDI inputs for cards that have both\n");
fprintf(stderr, " --fake-cards-audio make fake (disconnected) cards output a simple tone\n");
fprintf(stderr, " --v4l-output DEVICE send video (no audio) to V4L2 output/loopback\n");
- fprintf(stderr, " --http-uncompressed-video send uncompressed NV12 video to HTTP clients\n");
fprintf(stderr, " --http-x264-video send x264-compressed video to HTTP clients\n");
fprintf(stderr, " --record-x264-video store x264-compressed video to disk (implies --http-x264-video,\n");
fprintf(stderr, " removes the need for working VA-API encoding)\n");
fprintf(stderr, " --timecode-stream show timestamp and timecode in stream\n");
fprintf(stderr, " --timecode-stdout show timestamp and timecode on standard output\n");
fprintf(stderr, " --quick-cut-keys enable direct cutting by Q, W, E, ... keys\n");
- fprintf(stderr, " --10-bit-input use 10-bit video input (requires compute shaders)\n");
- fprintf(stderr, " --10-bit-output use 10-bit video output (requires compute shaders,\n");
- fprintf(stderr, " implies --record-x264-video)\n");
+ fprintf(stderr, " --10-bit use 10-bit color depth\n");
fprintf(stderr, " --input-ycbcr-interpretation=CARD,{rec601,rec709,auto}[,{limited,full}]\n");
fprintf(stderr, " Y'CbCr coefficient standard of card CARD (default auto)\n");
fprintf(stderr, " auto is rec601 for SD, rec709 for HD, always limited\n");
{ "default-hdmi-input", no_argument, 0, OPTION_DEFAULT_HDMI_INPUT },
{ "fake-cards-audio", no_argument, 0, OPTION_FAKE_CARDS_AUDIO },
{ "v4l-output", required_argument, 0, OPTION_V4L_OUTPUT },
- { "http-uncompressed-video", no_argument, 0, OPTION_HTTP_UNCOMPRESSED_VIDEO },
{ "http-x264-video", no_argument, 0, OPTION_HTTP_X264_VIDEO },
{ "record-x264-video", no_argument, 0, OPTION_RECORD_X264_VIDEO },
{ "separate-x264-disk-encode", no_argument, 0, OPTION_SEPARATE_X264_DISK_ENCODE },
{ "timecode-stream", no_argument, 0, OPTION_TIMECODE_STREAM },
{ "timecode-stdout", no_argument, 0, OPTION_TIMECODE_STDOUT },
{ "quick-cut-keys", no_argument, 0, OPTION_QUICK_CUT_KEYS },
- { "10-bit-input", no_argument, 0, OPTION_10_BIT_INPUT },
- { "10-bit-output", no_argument, 0, OPTION_10_BIT_OUTPUT },
+ { "10-bit", no_argument, 0, OPTION_10_BIT },
{ "input-ycbcr-interpretation", required_argument, 0, OPTION_INPUT_YCBCR_INTERPRETATION },
{ "mjpeg-export-cards", required_argument, 0, OPTION_MJPEG_EXPORT_CARDS },
+
+ // Deprecated variants.
+ { "10-bit-input", no_argument, 0, OPTION_10_BIT_INPUT },
+ { "10-bit-output", no_argument, 0, OPTION_10_BIT_OUTPUT },
+
{ 0, 0, 0, 0 }
};
vector<string> theme_dirs;
case OPTION_V4L_OUTPUT:
global_flags.v4l_output_device = optarg;
break;
- case OPTION_HTTP_UNCOMPRESSED_VIDEO:
- global_flags.uncompressed_video_to_http = true;
- break;
case OPTION_HTTP_MUX:
global_flags.stream_mux_name = optarg;
break;
global_flags.enable_quick_cut_keys = true;
break;
case OPTION_10_BIT_INPUT:
- global_flags.ten_bit_input = true;
+ fprintf(stderr, "NOTE: --10-bit-input is a deprecated alias for --10-bit.\n");
+ global_flags.bit_depth = 10;
break;
case OPTION_10_BIT_OUTPUT:
- global_flags.ten_bit_output = true;
- global_flags.x264_bit_depth = 10;
+ fprintf(stderr, "NOTE: --10-bit-output is a deprecated alias for --10-bit.\n");
+ global_flags.bit_depth = 10;
+ break;
+ case OPTION_10_BIT:
+ global_flags.bit_depth = 10;
break;
case OPTION_INPUT_YCBCR_INTERPRETATION: {
char *ptr = strchr(optarg, ',');
}
}
- if (global_flags.uncompressed_video_to_http +
- global_flags.x264_video_to_http +
+ if (global_flags.x264_video_to_http +
global_flags.av1_video_to_http > 1) {
- fprintf(stderr, "ERROR: --http-{uncompressed,x264,av1}-video are mutually incompatible\n");
+ fprintf(stderr, "ERROR: --http-{x264,av1}-video are mutually incompatible\n");
exit(1);
}
- if (global_flags.ten_bit_output) {
+ if (global_flags.bit_depth == 10) {
global_flags.x264_video_to_disk = true; // No 10-bit Quick Sync support.
- if (global_flags.av1_video_to_http) {
- fprintf(stderr, "ERROR: 10-bit AV1 output is not supported yet\n");
- exit(1);
- } else {
+ if (!global_flags.av1_video_to_http) {
global_flags.x264_video_to_http = true;
}
}
- if (global_flags.x264_video_to_disk && !global_flags.uncompressed_video_to_http && !global_flags.av1_video_to_http) {
+ if (global_flags.x264_video_to_disk && !global_flags.av1_video_to_http) {
global_flags.x264_video_to_http = true; // Quick Sync to HTTP but x264 to disk doesn't make sense.
}
if (global_flags.min_num_cards <= 0) {