diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-03-25 15:25:55 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-03-25 15:25:55 +0100 |
commit | e9e1b673a111366ad9071933f3469891a735243a (patch) | |
tree | 0c82a2031a82b7d56537ff23f8084c42382ecbd7 /src/odr-sourcecompanion.cpp | |
parent | 7ad4a211a9bcba9c78e6a41e0ad1f20460e8896e (diff) | |
download | ODR-SourceCompanion-e9e1b673a111366ad9071933f3469891a735243a.tar.gz ODR-SourceCompanion-e9e1b673a111366ad9071933f3469891a735243a.tar.bz2 ODR-SourceCompanion-e9e1b673a111366ad9071933f3469891a735243a.zip |
Add --identifier option to specify content of EDI ODRv TAG
Diffstat (limited to 'src/odr-sourcecompanion.cpp')
-rw-r--r-- | src/odr-sourcecompanion.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/odr-sourcecompanion.cpp b/src/odr-sourcecompanion.cpp index b8c5547..b233e2c 100644 --- a/src/odr-sourcecompanion.cpp +++ b/src/odr-sourcecompanion.cpp @@ -1,5 +1,5 @@ /* ------------------------------------------------------------------ - * Copyright (C) 2019 Matthias P. Braendli + * Copyright (C) 2020 Matthias P. Braendli * Copyright (C) 2017 AVT GmbH - Fabien Vercasson * Copyright (C) 2011 Martin Storsjo * @@ -89,6 +89,7 @@ void usage(const char* name) { " --sbr Force the usage of SBR\n" " --ps Force the usage of PS\n" " Output and pad parameters:\n" + " --identifier=ID An identifier string that is sent in the ODRv EDI TAG. Max 32 characters length.\n" " -o, --output=URI Output ZMQ uri. (e.g. 'tcp://localhost:9000')\n" " If more than one ZMQ output is given, the socket\n" " will be connected to all listed endpoints.\n" @@ -151,6 +152,7 @@ int main(int argc, char *argv[]) {"rate", required_argument, 0, 'r'}, {"stats", required_argument, 0, 'S'}, {"secret-key", required_argument, 0, 'k'}, + {"identifier", required_argument, 0, 3 }, {"input-uri", required_argument, 0, 'I'}, {"control-uri", required_argument, 0, 6 }, {"timeout", required_argument, 0, 7 }, @@ -185,6 +187,8 @@ int main(int argc, char *argv[]) bool allowSBR = false; bool allowPS = false; + string identifier; + vector<string> edi_output_uris; bool tist_enabled = false; uint32_t tist_delay_ms = 0; @@ -209,6 +213,16 @@ int main(int argc, char *argv[]) allowPS = true; allowSBR = true; break; + case 3: // Identifier for in-band version information + identifier = optarg; + /* The 32 character length restriction is arbitrary, but guarantees + * that the EDI packet will not grow too large */ + if (identifier.size() > 32) { + fprintf(stderr, "Output Identifier too long!\n"); + usage(argv[0]); + return 1; + } + break; case 'b': bitrate = stoi(optarg); break; @@ -323,6 +337,18 @@ int main(int argc, char *argv[]) } } + if (not edi_output_uris.empty()) { + stringstream ss; + ss << PACKAGE_NAME << " " << +#if defined(GITVERSION) + GITVERSION << +#else + PACKAGE_VERSION << +#endif + " " << identifier; + edi_output.set_odr_version_tag(ss.str()); + } + if (padlen != 0) { int flags; if (mkfifo(pad_fifo, S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH) != 0) { |