From b9f32b108b1e3392d1ca6884f3c960f18acaa0d6 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sat, 28 Oct 2017 13:44:27 +0200 Subject: [PATCH] Make the HTTP port settable. --- defs.h | 1 + flags.cpp | 7 +++++++ flags.h | 1 + kaeru.cpp | 2 +- mixer.cpp | 2 +- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/defs.h b/defs.h index 9a3fce7..a5679af 100644 --- a/defs.h +++ b/defs.h @@ -18,6 +18,7 @@ #define LOCAL_DUMP_PREFIX "record-" #define LOCAL_DUMP_SUFFIX ".nut" #define DEFAULT_STREAM_MUX_NAME "nut" // Only for HTTP. Local dump guesses from LOCAL_DUMP_SUFFIX. +#define DEFAULT_HTTPD_PORT 9095 #define MUX_OPTS { \ /* Make seekable .mov files. */ \ { "movflags", "empty_moov+frag_keyframe+default_base_moof" }, \ diff --git a/flags.cpp b/flags.cpp index c65903a..41365c5 100644 --- 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, @@ -108,6 +109,8 @@ 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"); @@ -187,6 +190,7 @@ void parse_flags(Program program, int argc, char * const argv[]) { "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 }, @@ -294,6 +298,9 @@ void parse_flags(Program program, int argc, char * const argv[]) 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; diff --git a/flags.h b/flags.h index e6bf08e..83d1894 100644 --- a/flags.h +++ b/flags.h @@ -54,6 +54,7 @@ struct Flags { double output_buffer_frames = 6.0; double output_slop_frames = 0.5; int max_input_queue_frames = 6; + int http_port = DEFAULT_HTTPD_PORT; bool display_timecode_in_stream = false; bool display_timecode_on_stdout = false; bool ten_bit_input = false; diff --git a/kaeru.cpp b/kaeru.cpp index 425870e..6d98cce 100644 --- a/kaeru.cpp +++ b/kaeru.cpp @@ -208,7 +208,7 @@ int main(int argc, char *argv[]) BasicStats basic_stats(/*verbose=*/false); global_basic_stats = &basic_stats; - httpd.start(9095); + httpd.start(global_flags.http_port); signal(SIGUSR1, adjust_bitrate); signal(SIGUSR2, adjust_bitrate); diff --git a/mixer.cpp b/mixer.cpp index 6ec12e8..f45880d 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -353,7 +353,7 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards) theme.reset(new Theme(global_flags.theme_filename, global_flags.theme_dirs, resource_pool.get(), num_cards)); // Start listening for clients only once VideoEncoder has written its header, if any. - httpd.start(9095); + httpd.start(global_flags.http_port); // First try initializing the then PCI devices, then USB, then // fill up with fake cards until we have the desired number of cards. -- 2.39.2