diff --git a/src/media/audio/audio_rtp_session.cpp b/src/media/audio/audio_rtp_session.cpp index e354fd06816e07ad8f0b89859fc1a4706ad8d75b..bfb0fce5a75f4582a4e63b669c7ac6ccbd526d0d 100644 --- a/src/media/audio/audio_rtp_session.cpp +++ b/src/media/audio/audio_rtp_session.cpp @@ -137,6 +137,8 @@ AudioSender::setup(SocketPair& socketPair) return false; } + Smartools::getInstance().setLocalAudioCodec(audioEncoder_->getEncoderName()); + #ifdef DEBUG_SDP audioEncoder_->print_sdp(); #endif @@ -344,6 +346,8 @@ AudioReceiveThread::setup() return false; } + Smartools::getInstance().setRemoteAudioCodec(audioDecoder_->getDecoderName()); + ringbuffer_ = Manager::instance().getRingBufferPool().getRingBuffer(id_); return true; } @@ -364,8 +368,6 @@ AudioReceiveThread::process() } audioDecoder_->writeToRingBuffer(decodedFrame, *ringbuffer_, mainBuffFormat); - // Refresh the remote audio codec in the callback SmartInfo - Smartools::getInstance().setRemoteAudioCodec(audioDecoder_->getDecoderName()); return; case MediaDecoder::Status::DecodeError: diff --git a/src/media/video/sinkclient.cpp b/src/media/video/sinkclient.cpp index 17e43a99d5d39dc345377a274f0ec9b65d0a7340..aa267404f9a1439611d2c61919f0d98ff235d62d 100644 --- a/src/media/video/sinkclient.cpp +++ b/src/media/video/sinkclient.cpp @@ -332,9 +332,6 @@ SinkClient::update(Observable<std::shared_ptr<VideoFrame>>* /*obs*/, } #endif - // Send the resolution in smartInfo - Smartools::getInstance().setResolution(id_, f.width(), f.height()); - #if HAVE_SHM shm_->renderFrame(f); #endif diff --git a/src/media/video/video_receive_thread.cpp b/src/media/video/video_receive_thread.cpp index 96d6e147b288f0610f1817ff74283c13dd8c8199..a82a66a264ec9f9d1f61c64991ba73eadd6b2436 100644 --- a/src/media/video/video_receive_thread.cpp +++ b/src/media/video/video_receive_thread.cpp @@ -138,6 +138,9 @@ bool VideoReceiveThread::setup() // Send remote video codec in SmartInfo Smartools::getInstance().setRemoteVideoCodec(videoDecoder_->getDecoderName(), id_); + // Send the resolution in smartInfo + Smartools::getInstance().setResolution(id_, dstWidth_, dstHeight_); + return true; } diff --git a/src/media/video/video_sender.cpp b/src/media/video/video_sender.cpp index 8fb9916e0e68b682bcc65aa8adf90727f99faa55..93cfe1e0bff9bfd4212a6d49156c5360b6266ae7 100644 --- a/src/media/video/video_sender.cpp +++ b/src/media/video/video_sender.cpp @@ -50,6 +50,12 @@ VideoSender::VideoSender(const std::string& dest, const DeviceParams& dev, videoEncoder_->startIO(); videoEncoder_->print_sdp(); + + // Send local video codec in SmartInfo + Smartools::getInstance().setLocalVideoCodec(videoEncoder_->getEncoderName()); + + // Send the resolution in smartInfo + Smartools::getInstance().setResolution("local", dev.width, dev.height); } VideoSender::~VideoSender() @@ -69,9 +75,6 @@ VideoSender::encodeAndSendVideo(VideoFrame& input_frame) if (videoEncoder_->encode(input_frame, is_keyframe, frameNumber_++) < 0) RING_ERR("encoding failed"); - - // Send local video codec in SmartInfo - Smartools::getInstance().setLocalVideoCodec(videoEncoder_->getEncoderName()); } void