17 vector<GStreamerDefinition> goutputs;
19 if (!gopts->doesOptionExist(
"gstreamer")) {
return goutputs; }
26 auto goutput_node = gopts->getOptionNode(
"gstreamer");
28 if (!goutput_node || goutput_node.IsNull() || !goutput_node.IsSequence()) {
return goutputs; }
30 for (
auto goutput_item : goutput_node) {
31 goutputs.emplace_back(
32 gopts->get_required_variable_in_option<
string>(goutput_item,
"format"),
33 gopts->get_required_variable_in_option<
string>(goutput_item,
"filename"),
34 gopts->get_variable_in_option<
string>(goutput_item,
"type",
"event")
50 string help =
"Define output formats and filenames. It can be used to select event or stream outputs.\n";
51 help +=
"The file extension is added automatically based on the format.\n \n";
52 help +=
"\nSupported formats:\n \n";
55 help +=
"Output types:\n \n";
57 help +=
" - event: write events\n";
58 help +=
" - stream: write frame time snapshots\n";
60 help +=
"Example that defines two gstreamer outputs:\n \n";
61 help +=
" -gstreamer=\"[{format: root, filename: out}, {format: csv, filename: out}]\"\n";
63 help +=
"The produced files structure depends on the accumulation method used: \n \n";
64 help +=
" - event-based digitization (like flux) will have one file for every thread, with \"_t<thread>\" appended to the filename \n";
65 help +=
" - run-based digitization (like dosimeter) will have one file only\n";
70 string ebuffer_help =
"Number of events each streamer keeps in memory before flushing them to the\n";
71 ebuffer_help +=
"output file. Larger values reduce I/O frequency at the cost of more memory.\n \n";
72 ebuffer_help +=
"Example: -ebuffer=100\n";
74 "number of events kept in memory before flushing them to the filestream"), ebuffer_help);
80 {
"type",
"event",
"type of output file"},
static const std::vector< std::string > & supported_formats()
Return the list of output format tokens supported by the module.
vector< GStreamerDefinition > getGStreamerDefinition(const std::shared_ptr< GOptions > &gopts)
Parse all configured gstreamer output definitions from the options container.
GOptions defineOptions()
Define the options contributed by the gstreamer module.
Shared constants and error codes for the gstreamer module.
Core streaming interface and helper utilities for the gstreamer module.
Option and configuration helpers for the gstreamer module.
constexpr const char * GSTREAMER_LOGGER
Logger category name used by gstreamer components.
constexpr RequiredValue REQUIRED
constexpr int DEFAULT_GSTREAMER_BUFFER_FLUSH_LIMIT
Default number of buffered events before a GStreamer instance flushes its internal buffer.