From 6226cf2809b02648cb9d2ba6c5b884d4f96318ac Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Sat, 15 Apr 2017 23:30:28 +0300
Subject: [PATCH] Display video message playback progress time.

---
 Telegram/SourceFiles/history/history_media_types.cpp | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/Telegram/SourceFiles/history/history_media_types.cpp b/Telegram/SourceFiles/history/history_media_types.cpp
index 3f68212ec..fce8a29f6 100644
--- a/Telegram/SourceFiles/history/history_media_types.cpp
+++ b/Telegram/SourceFiles/history/history_media_types.cpp
@@ -1826,6 +1826,8 @@ void HistoryGif::draw(Painter &p, const QRect &r, TextSelection selection, TimeM
 			}
 		}
 		updateStatusText();
+	} else if (_gif && _gif->mode() == Media::Clip::Reader::Mode::Video) {
+		updateStatusText();
 	}
 	auto radial = isRadialAnimation(ms);
 
@@ -2040,7 +2042,11 @@ QString HistoryGif::mediaTypeString() const {
 
 void HistoryGif::setStatusSize(int32 newSize) const {
 	if (_data->isRoundVideo()) {
-		_statusText = formatDurationText(_data->duration());
+		if (newSize < 0) {
+			_statusText = formatDurationText(-newSize - 1);
+		} else {
+			_statusText = formatDurationText(_data->duration());
+		}
 	} else {
 		HistoryFileMedia::setStatusSize(newSize, _data->size, -2, 0);
 	}
@@ -2057,6 +2063,10 @@ void HistoryGif::updateStatusText() const {
 		statusSize = _data->loadOffset();
 	} else if (_data->loaded()) {
 		statusSize = FileStatusSizeLoaded;
+		if (_gif && _gif->mode() == Media::Clip::Reader::Mode::Video) {
+			auto state = Media::Player::mixer()->currentState(AudioMsgId::Type::Video);
+			statusSize = -1 - (state.position / state.frequency);
+		}
 	} else {
 		statusSize = FileStatusSizeReady;
 	}