diff --git a/src/media/media_recorder.cpp b/src/media/media_recorder.cpp index 34c8eada2eaa6ecf578779720fdedb3ac2f02dbe..472555f895d634436ba47fc0f78887dfc7735e8e 100644 --- a/src/media/media_recorder.cpp +++ b/src/media/media_recorder.cpp @@ -200,6 +200,8 @@ MediaRecorder::addStream(bool isVideo, bool fromPeer, MediaStream ms) ms.name = (fromPeer ? "a:1" : "a:2"); ++nbReceivedAudioStreams_; } + // print index instead of count + RING_DBG() << "Recorder input #" << (nbReceivedAudioStreams_ + nbReceivedVideoStreams_ - 1) << ": " << ms; streams_[isVideo][fromPeer] = ms; // wait until all streams are ready before writing to the file @@ -365,12 +367,7 @@ MediaRecorder::setupVideoOutput() if (encoderStream.format < 0) return encoderStream; - RING_DBG() << "Video recorder '" - << (encoderStream.name.empty() ? "(null)" : encoderStream.name) - << "' properties: " - << av_get_pix_fmt_name(static_cast<AVPixelFormat>(encoderStream.format)) << ", " - << encoderStream.width << "x" << encoderStream.height << ", " - << encoderStream.frameRate << " fps"; + RING_DBG() << "Recorder output: " << encoderStream; return encoderStream; } @@ -437,12 +434,7 @@ MediaRecorder::setupAudioOutput() if (encoderStream.format < 0) return encoderStream; - RING_DBG() << "Audio recorder '" - << (encoderStream.name.empty() ? "(null)" : encoderStream.name) - << "' properties: " - << av_get_sample_fmt_name(static_cast<AVSampleFormat>(encoderStream.format)) << ", " - << encoderStream.sampleRate << " Hz, " - << encoderStream.nbChannels << " channels"; + RING_DBG() << "Recorder output: " << encoderStream; return encoderStream; } diff --git a/src/media/media_stream.h b/src/media/media_stream.h index 5e9fffb402bc972ebbab229981138d362a2d942a..1475d8882bc77701f5baf1a048eb5a398454c6df 100644 --- a/src/media/media_stream.h +++ b/src/media/media_stream.h @@ -96,4 +96,22 @@ struct MediaStream { } }; +inline std::ostream& operator<<(std::ostream& os, const MediaStream& ms) +{ + if (ms.isVideo) { + os << (ms.name.empty() ? "(null)" : ms.name) << ": " + << av_get_pix_fmt_name(static_cast<AVPixelFormat>(ms.format)) << " video, " + << ms.width << "x" << ms.height << ", " + << ms.frameRate << " fps (" << ms.timeBase << ")"; + } else { + os << (ms.name.empty() ? "(null)" : ms.name) << ": " + << av_get_sample_fmt_name(static_cast<AVSampleFormat>(ms.format)) << " audio, " + << ms.nbChannels << " channel(s), " + << ms.sampleRate << " Hz (" << ms.timeBase << ")"; + } + if (ms.firstTimestamp > 0) + os << ", start: " << ms.firstTimestamp; + return os; +} + }; // namespace ring