vector<string> frame_filenames; // Under frame_mu.
atomic<int64_t> metric_received_frames[MAX_STREAMS]{{0}};
vector<string> frame_filenames; // Under frame_mu.
atomic<int64_t> metric_received_frames[MAX_STREAMS]{{0}};
for (unsigned i = 0; i < MAX_STREAMS; ++i) {
global_metrics.add("received_frames", {{ "stream", to_string(i) }}, &metric_received_frames[i]);
}
for (unsigned i = 0; i < MAX_STREAMS; ++i) {
global_metrics.add("received_frames", {{ "stream", to_string(i) }}, &metric_received_frames[i]);
}
if (global_flags.stream_source.empty() || global_flags.stream_source == "/dev/null") {
// Save the user from some repetitive messages.
if (global_flags.stream_source.empty() || global_flags.stream_source == "/dev/null") {
// Save the user from some repetitive messages.
// Convert pts to our own timebase.
AVRational stream_timebase = format_ctx->streams[pkt.stream_index]->time_base;
// Convert pts to our own timebase.
AVRational stream_timebase = format_ctx->streams[pkt.stream_index]->time_base;