]> git.sesse.net Git - nageru/blobdiff - flags.cpp
Support audio-only FFmpeg inputs. Somewhat wonky, though.
[nageru] / flags.cpp
index c65903abacda4fc7b98911f27dd165569b1bfcd8..70c85b16c6fa5cbf8c63271e3d64edaa7ed66357 100644 (file)
--- a/flags.cpp
+++ b/flags.cpp
@@ -33,6 +33,7 @@ enum LongOption {
        OPTION_HTTP_COARSE_TIMEBASE,
        OPTION_HTTP_AUDIO_CODEC,
        OPTION_HTTP_AUDIO_BITRATE,
+       OPTION_HTTP_PORT,
        OPTION_NO_TRANSCODE_AUDIO,
        OPTION_FLAT_AUDIO,
        OPTION_GAIN_STAGING,
@@ -56,6 +57,7 @@ enum LongOption {
        OPTION_OUTPUT_SLOP_FRAMES,
        OPTION_TIMECODE_STREAM,
        OPTION_TIMECODE_STDOUT,
+       OPTION_QUICK_CUT_KEYS,
        OPTION_10_BIT_INPUT,
        OPTION_10_BIT_OUTPUT,
        OPTION_INPUT_YCBCR_INTERPRETATION,
@@ -108,12 +110,12 @@ void usage(Program program)
        fprintf(stderr, "      --http-audio-bitrate=KBITS  audio codec bit rate to use for HTTP streams\n");
        fprintf(stderr, "                                  (default is %d, ignored unless --http-audio-codec is set)\n",
                DEFAULT_AUDIO_OUTPUT_BIT_RATE / 1000);
+       fprintf(stderr, "      --http-port=PORT            which port to use for the built-in HTTP server\n");
+       fprintf(stderr, "                                  (default is %d)\n", DEFAULT_HTTPD_PORT);
        if (program == PROGRAM_KAERU) {
                fprintf(stderr, "      --no-transcode-audio        copy encoded audio raw from the source stream\n");
                fprintf(stderr, "                                    (requires --http-audio-codec= to be set)\n");
        }
-       fprintf(stderr, "      --http-coarse-timebase      use less timebase for HTTP (recommended for muxers\n");
-       fprintf(stderr, "                                  that handle large pts poorly, like e.g. MP4)\n");
        if (program == PROGRAM_NAGERU) {
                fprintf(stderr, "      --flat-audio                start with most audio processing turned off\n");
                fprintf(stderr, "                                    (can be overridden by e.g. --enable-limiter)\n");
@@ -144,6 +146,7 @@ void usage(Program program)
                fprintf(stderr, "                                    dropping the frame (default 0.5)\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");
@@ -184,9 +187,9 @@ void parse_flags(Program program, int argc, char * const argv[])
                { "x264-vbv-max-bitrate", required_argument, 0, OPTION_X264_VBV_MAX_BITRATE },
                { "x264-param", required_argument, 0, OPTION_X264_PARAM },
                { "http-mux", required_argument, 0, OPTION_HTTP_MUX },
-               { "http-coarse-timebase", no_argument, 0, OPTION_HTTP_COARSE_TIMEBASE },
                { "http-audio-codec", required_argument, 0, OPTION_HTTP_AUDIO_CODEC },
                { "http-audio-bitrate", required_argument, 0, OPTION_HTTP_AUDIO_BITRATE },
+               { "http-port", required_argument, 0, OPTION_HTTP_PORT },
                { "no-transcode-audio", no_argument, 0, OPTION_NO_TRANSCODE_AUDIO },
                { "flat-audio", no_argument, 0, OPTION_FLAT_AUDIO },
                { "gain-staging", required_argument, 0, OPTION_GAIN_STAGING },
@@ -210,6 +213,7 @@ void parse_flags(Program program, int argc, char * const argv[])
                { "output-slop-frames", required_argument, 0, OPTION_OUTPUT_SLOP_FRAMES },
                { "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 },
                { "input-ycbcr-interpretation", required_argument, 0, OPTION_INPUT_YCBCR_INTERPRETATION },
@@ -285,15 +289,15 @@ void parse_flags(Program program, int argc, char * const argv[])
                case OPTION_HTTP_MUX:
                        global_flags.stream_mux_name = optarg;
                        break;
-               case OPTION_HTTP_COARSE_TIMEBASE:
-                       global_flags.stream_coarse_timebase = true;
-                       break;
                case OPTION_HTTP_AUDIO_CODEC:
                        global_flags.stream_audio_codec_name = optarg;
                        break;
                case OPTION_HTTP_AUDIO_BITRATE:
                        global_flags.stream_audio_codec_bitrate = atoi(optarg) * 1000;
                        break;
+               case OPTION_HTTP_PORT:
+                       global_flags.http_port = atoi(optarg);
+                       break;
                case OPTION_NO_TRANSCODE_AUDIO:
                        global_flags.transcode_audio = false;
                        break;
@@ -403,6 +407,9 @@ void parse_flags(Program program, int argc, char * const argv[])
                case OPTION_TIMECODE_STDOUT:
                        global_flags.display_timecode_on_stdout = true;
                        break;
+               case OPTION_QUICK_CUT_KEYS:
+                       global_flags.enable_quick_cut_keys = true;
+                       break;
                case OPTION_10_BIT_INPUT:
                        global_flags.ten_bit_input = true;
                        break;