Commit Graph

385 Commits

Author SHA1 Message Date
John Preston 518d1da736 Fail streaming if no codec for a stream. 2019-03-11 12:08:14 +04:00
John Preston 22356eb01c Fix initial video duration display. 2019-03-11 12:08:14 +04:00
John Preston b5eb88a32f Closed alpha version 1.5.15.2. 2019-03-11 12:08:13 +04:00
John Preston 6887993f92 Report streaming failed. 2019-03-11 12:08:13 +04:00
John Preston 71b733a018 Display receivedTill in video player controls. 2019-03-11 12:08:13 +04:00
John Preston e2eb9cea00 Apply sample_aspect_ratio in streaming. 2019-03-11 12:08:12 +04:00
John Preston 99e96a5b13 Allow looping video without audio in streaming. 2019-03-11 12:08:12 +04:00
John Preston c27456277e Support streaming of local files. 2019-03-11 12:08:11 +04:00
John Preston dafa286b18 Show option to download on streaming error. 2019-03-11 12:08:11 +04:00
John Preston f0963a332a Fix crash on failed streaming. 2019-03-11 12:08:10 +04:00
John Preston 8171828c2a Fix build on GCC. 2019-03-11 12:08:09 +04:00
John Preston a8aa66d191 Check frame format before sws_getCachedContext. 2019-03-11 12:08:09 +04:00
John Preston c574119718 Implement file reference update in streaming. 2019-03-11 12:08:08 +04:00
John Preston 648cd44ddd Display correct video / music state. 2019-03-11 12:08:08 +04:00
John Preston fde8dd9607 Play streaming audio in player. 2019-03-11 12:08:08 +04:00
John Preston f1e0cd6c1d Play streaming video in mediaview. 2019-03-11 11:52:11 +04:00
John Preston 44df10d6cb Improve working with cache in streaming. 2019-03-11 11:49:54 +04:00
John Preston b6a757842a Pause loading if loaded for 1 minute. 2019-03-11 11:49:54 +04:00
John Preston 4636c74586 Remove from memory old file slices. 2019-03-11 11:49:54 +04:00
John Preston 2208621050 First version of caching in media streaming. 2019-03-11 11:49:54 +04:00
John Preston ccd04b98b9 Fix sync video to audio. 2019-03-11 11:49:54 +04:00
John Preston d37b65e624 If stuck wait for three seconds of packets. 2019-03-11 11:49:54 +04:00
John Preston 3e9b811875 Implement precise seek in streaming. 2019-03-11 11:49:54 +04:00
John Preston 44c562d8ba Fix streaming seek, display progress. 2019-03-11 11:49:53 +04:00
John Preston 93c548c013 Support streaming speed changing. 2019-03-11 11:49:53 +04:00
John Preston a7d9281768 Implement pause / resume in streaming. 2019-03-11 11:49:53 +04:00
John Preston 3b369fc98e Buffer audio when waiting data in streaming. 2019-03-11 11:49:53 +04:00
John Preston e5cd7e6d40 Fix streaming from the middle of the file. 2019-03-11 11:49:53 +04:00
John Preston 99d05ba967 Sync video stream to audio stream. 2019-03-11 11:49:53 +04:00
John Preston ec9512899e Support streaming playback speed 0.5 - 2. 2019-03-11 11:49:22 +04:00
John Preston 26ea6c4e63 Provide receivedTill for streamed tracks. 2019-03-11 11:49:22 +04:00
John Preston 8e44a7f5c4 Basic code for video streaming + testing on video. 2019-03-11 11:49:22 +04:00
John Preston a093cb6274 Move some logic to Media::Streaming::Player. 2019-03-11 11:49:21 +04:00
John Preston 64f2f330f6 Render first frame when starting streaming. 2019-03-11 11:49:21 +04:00
John Preston 473e30e594 Basic code for media streaming + testing on music. 2019-03-11 11:49:21 +04:00
23rd f48d8538c0 Added ability to see attached stickers on photos. 2019-03-10 22:10:36 +04:00
23rd 78d00bcf22 Refactored counting idle time.
- psIdleTime() was replaced with Platform::LastUserInputTime().
 - _lastTimeVideoPlayedAt was moved to Application as _lastNonIdleTime.
 - Call of updateNonIdle() was added while voice is recording.
 - Fixed #5695.
 - Thanks Preston. =)
2019-03-10 22:02:58 +04:00
John Preston e174025a92
Fix travis build. 2019-03-09 15:27:36 +04:00
23rd 4ed1835d32 Fixed Ctrl + F shortcut for full screen toggle in media view. 2019-02-20 11:43:50 +04:00
John Preston fe618bd652 Use crl::time/now instead of TimeMs/getms. 2019-02-19 11:06:33 +04:00
John Preston 7c1704e68b Fix crash in EditCaptionBox. 2019-02-17 13:51:53 +04:00
John Preston 98cb85df66 Polymorphic classes without virtual dtor warning. 2019-02-15 15:55:34 +04:00
John Preston 032694ad9e Move files to media/audio and media/clip. 2019-02-13 15:41:33 +03:00
John Preston 5437215677 Use premultiplied format for GIF frames. 2019-02-13 15:19:05 +03:00
John Preston ae6c152988 Version 1.5.15: Fix macOS media viewer overlay.
Regression was introduced in c1a0dad2b7.
2019-02-12 19:55:35 +03:00
John Preston c1a0dad2b7 Use QOpenGLWidget for macOS media viewer overlay.
Also move mediaview to media/view/media_view_overlay_widget.
2019-02-12 14:00:47 +03:00
John Preston b28e374e06 Fix Media::Audio::Instance destruction. 2019-02-01 10:09:55 +03:00
John Preston a1baa23a52 Use both thumbnails in photos and documents.
Fixes #5602.
2019-01-28 13:10:45 +03:00
John Preston a70e72f75d Application->Sandbox, Messenger->Application. 2019-01-23 12:51:58 +04:00
John Preston c5a41e1f55 Divide data/data_peer and remove from PCH. 2019-01-17 12:21:29 +04:00
John Preston 0d6a36e187 Fix volume widget position.
Fixes #5467.
2019-01-17 12:20:50 +04:00
John Preston 6d08394adc Divide history_media_types to several modules. 2018-12-21 17:09:31 +04:00
John Preston 3bd0efa91e Use 1.7x instead of 2x in voice messages. 2018-12-03 19:33:34 +04:00
John Preston b3ffbeb63e Improve code for Shortcuts handling. 2018-11-20 19:38:40 +04:00
John Preston e3b6e1325e Use AL_DIRECT_CHANNELS_SOFT for audio playback.
See https://github.com/telegramdesktop/tdesktop/issues/2580.
2018-11-16 20:17:58 +04:00
John Preston 2d05281ba9 Add configuration for OpenAL effects usage. 2018-11-09 16:28:15 +04:00
John Preston 9a1069c1ae Fix resuming audio on call end. 2018-11-09 11:27:12 +04:00
John Preston 346cb4e203 Fix some bugs in double playback speed.
- Apply double speed for all voice tracks, not only for the current.
- Use dedicated atomic in Mixer for the voice speed (fix race).
- Store the playback speed in user settings, not in global settings.
- Use float64 for setting (just consistency, no float-s right now).
2018-11-08 17:06:22 +04:00
Magnus Groß de8518a112 Implement double playback speed
This adds double playback speed for both voice messages and round video
messages.
The 2x playback speed setting is global and is saved in local storage.

Fixes #4907
2018-11-08 17:05:34 +04:00
John Preston ef38572d5a Detect and send supports_streaming bit for videos. 2018-11-07 18:10:00 +04:00
John Preston ef64d9c188 Show round videos in Info layer. 2018-11-05 17:18:54 +04:00
John Preston 466444e17d Extract float player controller. 2018-11-05 15:16:09 +04:00
John Preston b420f5b41b Fix crash in round video playback. 2018-11-05 14:00:53 +04:00
John Preston 5192049194 Resume audio when call ends. 2018-11-04 15:51:39 +04:00
John Preston da358615e0 Generate high quality video thumbnail when loaded. 2018-11-04 15:51:38 +04:00
John Preston bf31722931 Show collage/slideshow as an album in MediaView. 2018-11-04 15:51:38 +04:00
John Preston 595134cab5 Move image-related modules to ui/image/. 2018-11-04 15:51:37 +04:00
John Preston 113f665295 Move Image and derived to ui/image. 2018-11-04 15:51:36 +04:00
John Preston 2812d2911f Remove media_volume icon, use volume slider. 2018-10-15 11:06:27 +03:00
John Preston 2e5a0e056c Move to std::optional. 2018-09-21 19:28:46 +03:00
John Preston 1ffbec0215 Finish animations disabling.
Replace some infinite animations with static layouts.
2018-09-20 21:26:10 +03:00
John Preston 0c8709ca5f Replace App::self() with Auth().user().
Always have self Auth().user() when AuthSession exists.
2018-09-19 19:22:13 +03:00
John Preston 069232ec1b Allow changing limits for cache in Settings. 2018-09-01 18:56:08 +03:00
John Preston 9147c12687 Add basic implementation of Storage::Cache DB. 2018-09-01 18:56:08 +03:00
John Preston 839885910c Pass FileOrigin in all file downloads. 2018-08-20 17:26:28 +03:00
John Preston fddc3d6ad9 Workaround MSVC 15.8 regressions. 2018-08-17 14:01:16 +03:00
John Preston 777bf7d8d9 Fix video seeking.
Regression was introduced in d0e854e9d8.

Each time you hide() a widget its mousePress state is reset and
mouseMoveEvent() / mouseReleaseEvent() handlers are never called.

So you can't toggle (hide + show) widgets that are mouse-pressed.

Fixes #4802.
2018-06-06 11:58:07 +03:00
John Preston a42fb1f7b7 Fix microphone sandbox access request.
Fixes #4783.
2018-06-04 18:39:20 +03:00
John Preston dd81f5d59f Replace base::lambda with shorter term.
base::lambda -> Fn (type alias for std::function).
base::lambda_once -> FnMut (type alias for base::unique_function).
base::lambda_guarded -> crl::guard.
base::lambda_call_type_t -> crl::deduced_call_type.
2018-06-04 18:38:27 +03:00
John Preston d0e854e9d8 Allow showing boxes in passport panel. 2018-06-03 23:16:35 +03:00
John Preston 1392e05ab1 Move all gsl::byte helpers to base/bytes module. 2018-06-03 23:16:34 +03:00
John Preston 5e7642b42a Support markdown and replaces in media captions. 2018-05-24 16:03:21 +03:00
John Preston 87d6081408 Version 1.2.16: Fix build in Xcode 9.3. 2018-04-07 12:47:08 +04:00
John Preston eb00641dfa Mark autoplayed voice/video messages as read. 2018-03-10 00:55:58 +03:00
John Preston 8bacc74d8b Request dialog list entries when needed.
Also save the original server-side int32 date in HistoryItems.
2018-02-08 12:20:54 +03:00
John Preston a47981054f Feed info profile placeholder. 2018-02-08 12:20:51 +03:00
John Preston 89941a8e83 Fix layout update notifications in Info::Media. 2018-02-08 12:20:50 +03:00
John Preston 861ab85ca1 Fix voice/video messages in chats/feed. 2018-02-08 12:20:50 +03:00
John Preston 91f369a0b3 Handle view resize/repaint requests for mainView. 2018-02-08 12:20:49 +03:00
John Preston 04c8c95634 Use notify* instead of mark* in Data::Session. 2018-02-08 12:20:49 +03:00
John Preston 8a56ede187 Move all (item/view/media) maps to Data::Session. 2018-02-08 12:20:49 +03:00
John Preston 7425e80f05 Use HistoryMedia as view, add Data::Media. 2018-02-08 12:20:48 +03:00
John Preston 97a9089ebf Move draw / getState code to HistoryView::Message.
Item dimensions broken for now.
Also remove history.h from pch.
2018-02-08 12:20:48 +03:00
John Preston bee474f6e9 Remove history_item and layout from pch.
Also move some code to separate modules.
Also create history item views by Window::Controller.
2018-02-08 12:20:47 +03:00
John Preston 794e31505b First version of feed section view. 2018-02-08 12:20:46 +03:00
John Preston 6a9556d42c Move non-settings session data to Data::Session.
Rename AuthSessionData to AuthSessionSettings, move data away.
2018-02-08 12:20:46 +03:00
John Preston ea7441ae77 Use single LEGAL file with license and copyright. 2018-01-03 13:23:14 +03:00
John Preston e89350d4b7 Reuse resample code from FFMpegLoader for video.
AbstractAudioFFMpegLoader used in FFMpegLoader and ChildFFMpegLoader.
2018-01-02 20:22:13 +03:00
John Preston 95399bef2b Improve swresample library usage.
It looks like different AVFrame-s can have different audio encoding
parameters, so now we setup/re-setup swr context using parameters
from current audio frame. Hopefully it will fix some audio crashes.
2018-01-02 19:18:53 +03:00
John Preston af552fb4c0 Replace base/task_queue with crl. 2017-12-31 00:28:38 +03:00
John Preston ea51f976f2 Alpha version 1.2.5: Workaround GCC 7.2 ICE. 2017-12-29 21:47:49 +03:00
John Preston 2a409e3734 Add files from clipboard to composed album.
Fixes #4243.
2017-12-29 20:02:23 +03:00
John Preston 0171a4e874 Handle click on group thumb item in MediaView. 2017-12-29 17:58:53 +03:00
John Preston 2bcbb5a5be Display group / userpic thumbnails in MediaView. 2017-12-29 16:44:36 +03:00
John Preston 5b4694a4eb Move text options constant to a separate module.
Also start MediaView group thumbs code.
2017-12-28 16:06:06 +03:00
John Preston 2569df9e5a Rename some Ui methods.
myEnsureResized -> Ui::SendPendingMoveResizeEvents.
myGrab -> Ui::GrabWidget.
myGrabImage -> Ui::GrabWidgetToImage.
2017-12-26 19:20:08 +03:00
John Preston 8e45b09083 Use different indentation for rpl operators.
It works better with Visual Studio IDE.
2017-12-26 19:20:07 +03:00
John Preston 3b3a705a67 First working code for sending albums. 2017-12-26 19:20:06 +03:00
John Preston e023092744 Use RectPart(s) instead of ImageRoundCorner(s). 2017-12-18 21:54:11 +04:00
John Preston 574f4a73cb Add some checks to video sound stream decoding. 2017-12-12 18:56:37 +04:00
John Preston 97c15865a5 Move some code around.
Move logs:SignalHandlers to core/crash_reports:CrashReports.
Move all pre-launch windows to core/crash_report_window module.
Move some global code to core/launcher:Launcher.
It should replace settings / platform_specific module in some way.
2017-12-12 16:47:32 +04:00
John Preston 8b69e6ab99 Rename some methods in DocumentData.
Also fix voice message mark as read when autoplaying after previous.
Also show play icon and don't show playlist for audio files that do
not have shared music files attributes but have audio file mime type.
2017-12-10 14:28:04 +04:00
John Preston 4ef3de5287 Always specify seek position in TimeMs.
This way it won't rely on the sample rate of the audio file.

Fixes #4139.
2017-12-10 12:52:38 +04:00
John Preston 5a7d8bcffb Add audio playlist using Info::Media::ListWidget. 2017-12-09 19:13:06 +04:00
John Preston 4e2c8bbc26 Use SharedMediaMergedViewer() for audio player.
That way audio files and voice/video messages will play in context
(one after another with ability to go to next or previous in player)
almost always, no matter at what part of message history we are.
2017-12-09 14:02:51 +04:00
John Preston 9bbcbd4bb3 Remove all legacy media overview code. 2017-12-08 22:34:26 +04:00
John Preston e273695cc9 Fix planar audio playback (for example .flac).
Also add some more crash information logging.

Fixes #4120.
2017-12-08 12:57:43 +04:00
John Preston a495de7cf8 Ask OpenAL to use kDefaultFrequency (48 kHz). 2017-12-02 13:27:32 +04:00
John Preston 2161858088 Fail resampling audio with inconsistent frames. 2017-12-02 12:58:52 +04:00
John Preston 13ab055fe0 Add debug information about crash in ffmpeg. 2017-11-30 15:41:15 +04:00
John Preston f1f955b7ac Pass already-members when adding members to channel. 2017-11-19 18:41:52 +04:00
John Preston aec496d520 Remove RTL Override symbols from filenames. 2017-11-16 07:59:09 +04:00
John Preston 54cc3e6315 Shared media multiple items selection. 2017-11-16 07:59:07 +04:00
John Preston 65cc4d3fbc Support item repaint in Info media overview. 2017-11-16 07:59:06 +04:00
John Preston d1687ab963 Improve info wrapping in section / layer.
Also move layerwidget to window/layer_widget.
Also replace ui/effects/widget_fade_wrap with ui/wrap/fade_wrap.
2017-11-16 07:59:05 +04:00
John Preston ffc20e4492 Divide structs into several data/ modules. 2017-11-16 07:59:04 +04:00
John Preston c302219f9e Use rpl in some widgets and effects. 2017-11-16 07:59:02 +04:00
John Preston 1c8db1e2e9 Fix travis build for the latest ffmpeg code. 2017-11-13 13:55:11 +04:00
John Preston 48e2a5472e Return not_null<History*> in App::history(). 2017-09-03 15:45:43 +03:00
John Preston 25ffaaaa2d Replace t_assert() with Assert().
Also use this assertions for Expects(), Ensures() and Unexpected().
2017-08-30 19:15:42 +03:00
John Preston b3da99c302 Replace gsl::not_null<T*> with just not_null<T*>. 2017-08-30 19:15:41 +03:00
John Preston f2801d4775 Fix possible crash in file download after error.
Regression was introduced in 2fa2fa41c5.

In file download failed handler we suggest to try to load the file
once again to the same location. After some changes we started to
forget filename before failed handler. That resulted in large files
loading to memory instead of hard drive.

Add a precondition in FileLoader to prevent such bugs in the future.
2017-08-30 19:15:34 +03:00
John Preston 012d59ab42 Use nullptr instead of std::unique_ptr<Type>(). 2017-08-30 19:15:25 +03:00
John Preston e209737b1a Display and follow unread mentions in history. 2017-08-30 19:15:13 +03:00
John Preston ab35829358 Remove App::app(), App::uploader(), App::api().
Also use Auth() instead of AuthSession::Current*().
2017-08-25 14:39:18 +03:00
John Preston 96a2af842f Remove glitch with video messages floating player. 2017-08-01 21:14:44 +03:00
John Preston 0402b4f5f4 Add X / V vector icon to checkbox Toggle view.
Also use them in the admin rights / restrictions boxes.
2017-07-09 18:06:27 +03:00
John Preston da0d78135d Some refactoring in working with text entities.
Also move this code to TextUtilities namespace.
2017-07-06 14:37:42 +03:00
John Preston 3b864d63b9 Fix crash in audio player destructor. 2017-06-30 09:21:44 +03:00
John Preston cedf8a65e7 Better channel log entry layout inside messages.
Also move HistoryService class to a separate module.
2017-06-30 09:21:42 +03:00
John Preston e39b95175b Handle channel event log mouse events. 2017-06-30 09:21:42 +03:00
John Preston 110e7c8074 Finalize rename / move. 2017-06-29 11:39:38 +03:00
John Preston 66662e02a6 Fix crash in video player seeking.
Regression was introduced in 87ff770020.

Seek handler may destroy controller so first the playback is updated.
2017-05-31 11:58:43 +03:00
John Preston 6148b78745 Read after AVERROR_INVALIDDATA in video sound.
Partially reverse c1c3e4af5b that stopped on error in such cases.
2017-05-26 17:18:58 +03:00
John Preston 10e34aa996 Fix a crash in round videos with a message text. 2017-05-26 15:20:11 +03:00
John Preston e0978f86d1 Alpha 1.1.3: Fix some render in macOS. 2017-05-24 17:36:58 +03:00
John Preston 25587d7e8e Replace different side enums with RectPart.
Including Ui::Shadow::Side, App::RectPart and ImportantTooltip::Side.
2017-05-24 16:25:20 +03:00
John Preston c91e29d15d Improve floating player show / hide animations.
Also replace Window::Corner with a generic RectPart enumeration.
2017-05-24 16:25:20 +03:00
John Preston ee6d80673a Snap floating player to column and corner. 2017-05-24 16:25:17 +03:00
John Preston 8f290451b6 Handle mouse clicks in floating player widget. 2017-05-24 16:25:16 +03:00