diff --git a/applications/gui/src/media_panel.cpp b/applications/gui/src/media_panel.cpp index 2801e2dc896d0861aa0b890cffa2e11405ef3e44..4677cb7e06e1482fd9a21f656ae50f5df25add10 100644 --- a/applications/gui/src/media_panel.cpp +++ b/applications/gui/src/media_panel.cpp @@ -42,7 +42,7 @@ MediaPanel::MediaPanel(ftl::gui::Screen *screen, ftl::gui::SourceWindow *sourceW auto recordpopup = recordbutton_->popup(); recordpopup->setLayout(new GroupLayout()); recordpopup->setTheme(screen->toolbuttheme); - recordpopup->setAnchorHeight(150); + recordpopup->setAnchorHeight(180); auto itembutton = new Button(recordpopup, "2D snapshot (.png)"); itembutton->setCallback([this]() { _startRecording(RecordMode::Snapshot2D); @@ -227,6 +227,7 @@ void MediaPanel::_startRecording(MediaPanel::RecordMode mode) { record_mode_ = mode; screen_->activeCamera()->startVideoRecording(filename, ""); } else if (mode == RecordMode::Live2D) { + record_mode_ = mode; screen_->activeCamera()->startVideoRecording("", "ftl://live.utu.fi"); } } diff --git a/components/codecs/src/nvpipe_encoder.cpp b/components/codecs/src/nvpipe_encoder.cpp index 98d2c47a7f2bcf0a69533388909dc57bdc0fe36e..c9f662183cd1d007914e7ada1baeb5c913aef763 100644 --- a/components/codecs/src/nvpipe_encoder.cpp +++ b/components/codecs/src/nvpipe_encoder.cpp @@ -88,7 +88,7 @@ static uint64_t calculateBitrate(definition_t def, float ratescale) { } bitrate *= 1000.0f*1000.0f; - float minrate = 0.25f * bitrate; + float minrate = 0.05f * bitrate; return uint64_t((bitrate - minrate)*ratescale + minrate); } @@ -167,13 +167,14 @@ bool NvPipeEncoder::encode(const cv::cuda::GpuMat &in, ftl::codecs::Packet &pkt) if (!_createEncoder(pkt, fmt)) return false; - if (isLossy(pkt.codec) && pkt.bitrate != last_bitrate_) { + // Doesn't seem to work + /*if (isLossy(pkt.codec) && pkt.bitrate != last_bitrate_) { uint64_t bitrate = calculateBitrate(pkt.definition, float(pkt.bitrate)/255.0f) * pkt.frame_count; const int fps = 1000/ftl::timer::getInterval(); LOG(INFO) << "Changing bitrate: " << bitrate; NvPipe_SetBitrate(nvenc_, bitrate, fps); last_bitrate_ = pkt.bitrate; - } + }*/ //LOG(INFO) << "NvPipe Encode: " << int(definition) << " " << in.cols; @@ -262,7 +263,7 @@ static NvPipe_Format selectFormat(const Packet &pkt, format_t fmt) { bool NvPipeEncoder::_encoderMatch(const ftl::codecs::Packet &pkt, format_t fmt) { return compression_ == selectCompression(pkt, fmt) && format_ == selectFormat(pkt, fmt) && - codec_ == selectCodec(pkt); + codec_ == selectCodec(pkt) && last_bitrate_ == pkt.bitrate; } bool NvPipeEncoder::_createEncoder(const ftl::codecs::Packet &pkt, format_t fmt) { diff --git a/components/streams/src/sender.cpp b/components/streams/src/sender.cpp index 8277a73d96ab07a1b84fe9d418557ca86f38dcd6..6f4cb32891b45606c45493b4f94dcf3034bfdb0f 100644 --- a/components/streams/src/sender.cpp +++ b/components/streams/src/sender.cpp @@ -349,6 +349,8 @@ void Sender::_encodeChannel(ftl::rgbd::FrameSet &fs, Channel c, bool reset) { FTL_Profile("Encoder",0.02); + LOG(INFO) << "Enocode bitrate: " << (int)pkt.bitrate; + if (enc->encode(sroi, pkt)) { stream_->post(spkt, pkt);