diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport.cpp b/Telegram/SourceFiles/calls/group/calls_group_viewport.cpp index 4dded7c580..7fa5a3c8ad 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport.cpp @@ -791,13 +791,13 @@ void Viewport::updateTilesGeometryColumn(int outerWidth) { top += height + st::groupCallVideoSmallSkip; } }; - const auto topPeer = _large ? _large->row()->peer().get() : nullptr; + const auto topPeer = _large ? _large->peer().get() : nullptr; const auto reorderNeeded = [&] { if (!topPeer) { return false; } for (const auto &tile : _tiles) { - if (tile.get() != _large && tile->row()->peer() == topPeer) { + if (tile.get() != _large && tile->peer() == topPeer) { return (tile.get() != _tiles.front().get()) && !tile->trackOrUserpicSize().isEmpty(); } @@ -813,7 +813,7 @@ void Viewport::updateTilesGeometryColumn(int outerWidth) { ranges::stable_partition( _tilesForOrder, [&](not_null tile) { - return (tile->row()->peer() == topPeer); + return (tile->peer() == topPeer); }); for (const auto &tile : _tilesForOrder) { layoutNext(tile); diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp b/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp index 4d2743be90..7bf31ba2ab 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport_opengl.cpp @@ -460,7 +460,7 @@ void Viewport::RendererGL::validateUserpicFrame( } const auto size = tile->trackOrUserpicSize(); tileData.userpicFrame = PeerData::GenerateUserpicImage( - tile->row()->peer(), + tile->peer(), tile->row()->ensureUserpicView(), size.width(), 0); @@ -1239,7 +1239,7 @@ void Viewport::RendererGL::validateDatas() { j->stale = false; const auto index = (j - begin(_tileData)); _tileDataIndices[i] = index; - const auto peer = tiles[i]->row()->peer(); + const auto peer = tiles[i]->peer(); if ((j->peer != peer) || (j->nameVersion != peer->nameVersion()) || (j->nameRect.width() != width)) { @@ -1263,7 +1263,7 @@ void Viewport::RendererGL::validateDatas() { continue; } const auto id = quintptr(tiles[i]->track().get()); - const auto peer = tiles[i]->row()->peer(); + const auto peer = tiles[i]->peer(); const auto paused = (tiles[i]->track()->state() == Webrtc::VideoState::Paused); auto index = int(_tileData.size()); diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp b/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp index 4809d6dfe8..9f006fa064 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport_raster.cpp @@ -82,7 +82,7 @@ void Viewport::RendererSW::validateUserpicFrame( const auto size = tile->trackOrUserpicSize(); data.userpicFrame = Images::BlurLargeImage( PeerData::GenerateUserpicImage( - tile->row()->peer(), + tile->peer(), tile->row()->ensureUserpicView(), size.width(), 0), diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.cpp b/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.cpp index 1b31a2012b..03dff5674e 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.cpp @@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "calls/group/calls_group_viewport_tile.h" +#include "calls/group/calls_group_members_row.h" #include "webrtc/webrtc_video_track.h" #include "lang/lang_keys.h" #include "ui/round_rect.h" @@ -33,11 +34,11 @@ Viewport::VideoTile::VideoTile( : _endpoint(endpoint) , _update(std::move(update)) , _track(std::move(track)) +, _peer(_track.row->peer()) , _trackSize(std::move(trackSize)) , _rtmp(endpoint.rtmp()) , _self(self) { Expects(_track.track != nullptr); - Expects(_track.row != nullptr); using namespace rpl::mappers; _track.track->stateValue( diff --git a/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.h b/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.h index 6f85f4a01b..a7b537be46 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.h +++ b/Telegram/SourceFiles/calls/group/calls_group_viewport_tile.h @@ -37,6 +37,9 @@ public: [[nodiscard]] not_null row() const { return _track.row; } + [[nodiscard]] not_null peer() const { + return _peer; + } [[nodiscard]] bool rtmp() const { return _rtmp; } @@ -113,8 +116,9 @@ private: const VideoEndpoint _endpoint; const Fn _update; + const VideoTileTrack _track; + const not_null _peer; - VideoTileTrack _track; QRect _geometry; TileAnimation _animation; rpl::variable _trackSize;