]> git.sesse.net Git - vlc/log
vlc
15 years agoMerge branch 1.0-bugfix
Rémi Denis-Courmont [Sat, 23 May 2009 09:43:00 +0000 (12:43 +0300)]
Merge branch 1.0-bugfix

15 years agoFix initialization order
Rémi Denis-Courmont [Sat, 23 May 2009 09:39:56 +0000 (12:39 +0300)]
Fix initialization order

15 years agoRevert "Elide a bit of code that looks dead. There looks to be a memory leak, too."
Rémi Denis-Courmont [Sat, 23 May 2009 09:38:14 +0000 (12:38 +0300)]
Revert "Elide a bit of code that looks dead. There looks to be a memory leak, too."

This reverts commit 8018c67dc1970cf2536a3fd1f93e92c7a9dc9d07.

15 years agoFixed demux_vaControlHelper GET_TIME implementation.
Laurent Aimar [Fri, 22 May 2009 19:30:16 +0000 (21:30 +0200)]
Fixed demux_vaControlHelper GET_TIME implementation.

It should return the current time even when the size isn't known.

15 years agomacosx: added an entry to Video->Aspect-ratio to disable our AR-lock for one session.
Felix Paul Kühne [Fri, 22 May 2009 17:46:13 +0000 (19:46 +0200)]
macosx: added an entry to Video->Aspect-ratio to disable our AR-lock for one session.

Based upon an idea by Philipp Biermann.

An actual vlc-option for this will be created in the master branch.

Note that this feature does only affect VLCEmbeddedWindow - our plain vout window enforces the AR.

15 years agomacosx: fixed controls in new main window
Felix Paul Kühne [Fri, 22 May 2009 15:08:28 +0000 (17:08 +0200)]
macosx: fixed controls in new main window

15 years agomacosx: fix crash when trying to use the video menu
Felix Paul Kühne [Fri, 22 May 2009 10:36:47 +0000 (12:36 +0200)]
macosx: fix crash when trying to use the video menu

15 years agoElide a bit of code that looks dead. There looks to be a memory leak, too.
JP Dinger [Fri, 22 May 2009 09:08:16 +0000 (11:08 +0200)]
Elide a bit of code that looks dead. There looks to be a memory leak, too.

15 years agoRecover from documented undefined value return on gnu platforms.
JP Dinger [Fri, 22 May 2009 01:05:14 +0000 (03:05 +0200)]
Recover from documented undefined value return on gnu platforms.

15 years agoMoving system includes to happen before vlc includes should obviate
JP Dinger [Fri, 22 May 2009 00:25:27 +0000 (02:25 +0200)]
Moving system includes to happen before vlc includes should obviate
the need for compilation fixes with standard headers.

15 years agoForgotten dirac packetizer in LIST.
Jean-Baptiste Kempf [Thu, 21 May 2009 23:09:19 +0000 (01:09 +0200)]
Forgotten dirac packetizer in LIST.

15 years agoClean up vcdx a bit. Or a lot. It compiles, but I can't test. Since apparently nobody...
JP Dinger [Thu, 21 May 2009 22:55:47 +0000 (00:55 +0200)]
Clean up vcdx a bit. Or a lot. It compiles, but I can't test. Since apparently nobody uses this anyway it shouldn't be a big problem.

15 years agoRefactor vcdx info.c dropping a few memory leaks and other problems. It compiles...
JP Dinger [Thu, 21 May 2009 21:16:09 +0000 (23:16 +0200)]
Refactor vcdx info.c dropping a few memory leaks and other problems. It compiles, but I can't test it.

15 years agomacosx: added new graphics to project file so they get included in the bundle
Felix Paul Kühne [Thu, 21 May 2009 21:59:55 +0000 (23:59 +0200)]
macosx: added new graphics to project file so they get included in the bundle

15 years agomacosx: merge the nib fle containing Eric Dudiak's interface rework
Felix Paul Kühne [Thu, 21 May 2009 21:50:14 +0000 (23:50 +0200)]
macosx: merge the nib fle containing Eric Dudiak's interface rework

15 years agomacosx: added graphics from Eric Dudiak's interface rework
Felix Paul Kühne [Thu, 21 May 2009 21:09:13 +0000 (23:09 +0200)]
macosx: added graphics from Eric Dudiak's interface rework

15 years agomacosx: clean Dudiak's code a bit
Felix Paul Kühne [Thu, 21 May 2009 21:02:08 +0000 (23:02 +0200)]
macosx: clean Dudiak's code a bit

15 years agocompilation fix
Felix Paul Kühne [Thu, 21 May 2009 20:38:33 +0000 (22:38 +0200)]
compilation fix

15 years agomacosx: added Eric Dudiak's source files to the respective lists
Felix Paul Kühne [Thu, 21 May 2009 20:26:40 +0000 (22:26 +0200)]
macosx: added Eric Dudiak's source files to the respective lists

15 years agomacosx: merge Eric Dudiak's code from GSoC 2008
Felix Paul Kühne [Thu, 21 May 2009 20:25:37 +0000 (22:25 +0200)]
macosx: merge Eric Dudiak's code from GSoC 2008

Nibs will be added later on. No user-visible change as of yet.

15 years agoActually initialize media_list_player
Rémi Denis-Courmont [Thu, 21 May 2009 19:36:31 +0000 (22:36 +0300)]
Actually initialize media_list_player

I guess nobody ever tried to use that piece of code.

N.B.: dose not apply to bugfix due to earlier non-backported bugfixes

15 years agoMissing initializer
Rémi Denis-Courmont [Thu, 21 May 2009 19:41:09 +0000 (22:41 +0300)]
Missing initializer

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
15 years agoQt4: activate playlist item on right click (fix #2749)
Rémi Denis-Courmont [Thu, 21 May 2009 18:32:02 +0000 (21:32 +0300)]
Qt4: activate playlist item on right click (fix #2749)

Also, show the popup menu on press rather than release.

15 years agoQt4: activate playlist item on right click (fix #2749)
Rémi Denis-Courmont [Thu, 21 May 2009 18:32:02 +0000 (21:32 +0300)]
Qt4: activate playlist item on right click (fix #2749)

Also, show the popup menu on press rather than release.

15 years agoRemove unhandled error warning
Rémi Denis-Courmont [Thu, 21 May 2009 17:18:53 +0000 (20:18 +0300)]
Remove unhandled error warning

15 years agoRemove error value from locks and condvar initialization
Rémi Denis-Courmont [Thu, 21 May 2009 17:06:47 +0000 (20:06 +0300)]
Remove error value from locks and condvar initialization

On Linux, these functions cannot fail. On Windows, mutexes cannot fail
and neither can real condition varaibles (but we use events instead to
support pre-Vista versions). In practice, the needed resources are
allocated as part of the mutex structure and per-thread data.

In any case, basically none of the call sites for those functions were
checking for errors. It seems best to abort in case of error than to
hit undefined behaviour. We probably do not want to clutter the tree
with untested never used error paths.

15 years agoWinCE does not support spin locks
Rémi Denis-Courmont [Thu, 21 May 2009 17:03:19 +0000 (20:03 +0300)]
WinCE does not support spin locks

15 years agoInclude "config.h" first
Rémi Denis-Courmont [Thu, 21 May 2009 16:45:49 +0000 (19:45 +0300)]
Include "config.h" first

15 years agovlc_clone() and vlc_thread_create() must be checked for errors
Rémi Denis-Courmont [Thu, 21 May 2009 16:43:30 +0000 (19:43 +0300)]
vlc_clone() and vlc_thread_create() must be checked for errors

Those two functions can actually fail and leave the handle undefined.
vlc_join() and vlc_thread_join() would then crash (say, be undefined),
so errors should be taken care of explicitly.

15 years agovlc_mutex_trylock() return value must be checked
Rémi Denis-Courmont [Thu, 21 May 2009 16:43:05 +0000 (19:43 +0300)]
vlc_mutex_trylock() return value must be checked

15 years agoFix mouse key strings
Rémi Denis-Courmont [Thu, 21 May 2009 15:56:34 +0000 (18:56 +0300)]
Fix mouse key strings

15 years agoMerge branch 1.0-bugfix into master
Rémi Denis-Courmont [Thu, 21 May 2009 15:30:26 +0000 (18:30 +0300)]
Merge branch 1.0-bugfix into master

15 years agoXCB/window: really handle media keys
Rémi Denis-Courmont [Thu, 21 May 2009 15:27:30 +0000 (18:27 +0300)]
XCB/window: really handle media keys

15 years agowin32 vout: factorize code
Geoffroy Couprie [Thu, 21 May 2009 15:08:54 +0000 (17:08 +0200)]
win32 vout: factorize code

15 years agoDo not use values within the Unicode points range for special keys
Rémi Denis-Courmont [Thu, 21 May 2009 15:12:40 +0000 (18:12 +0300)]
Do not use values within the Unicode points range for special keys

Also remove conflict between browser back/forward and mouse wheel.

15 years agomacosx: finally completed the progress-panel's implementation
Felix Paul Kühne [Thu, 21 May 2009 15:03:47 +0000 (17:03 +0200)]
macosx: finally completed the progress-panel's implementation

15 years agomacosx: fixed compilation warning
Felix Paul Kühne [Thu, 21 May 2009 15:02:53 +0000 (17:02 +0200)]
macosx: fixed compilation warning

15 years agomacosx: finally completed the progress-panel's implementation
Felix Paul Kühne [Thu, 21 May 2009 15:03:47 +0000 (17:03 +0200)]
macosx: finally completed the progress-panel's implementation

15 years agomacosx: fixed compilation warning
Felix Paul Kühne [Thu, 21 May 2009 15:02:53 +0000 (17:02 +0200)]
macosx: fixed compilation warning

15 years agoKeyToString: divide and conquer
Rémi Denis-Courmont [Thu, 21 May 2009 13:49:39 +0000 (16:49 +0300)]
KeyToString: divide and conquer

15 years agoCheck that keys are sorted properly
Rémi Denis-Courmont [Thu, 21 May 2009 13:41:27 +0000 (16:41 +0300)]
Check that keys are sorted properly

15 years agoPut keys in VLC key code order
Rémi Denis-Courmont [Thu, 21 May 2009 13:41:04 +0000 (16:41 +0300)]
Put keys in VLC key code order

15 years agoMedia keys are supported NOT only on Windows
Rémi Denis-Courmont [Thu, 21 May 2009 13:26:48 +0000 (16:26 +0300)]
Media keys are supported NOT only on Windows

15 years agoGet rid of KEY_ASCII and KEY_SPECIAL
Rémi Denis-Courmont [Thu, 21 May 2009 13:22:09 +0000 (16:22 +0300)]
Get rid of KEY_ASCII and KEY_SPECIAL

15 years agomacosx: NEWS and THANKS
Felix Paul Kühne [Thu, 21 May 2009 12:23:49 +0000 (14:23 +0200)]
macosx: NEWS and THANKS

15 years agomacosx: fixed Xcode project file and make dist (new document icons...)
Felix Paul Kühne [Thu, 21 May 2009 12:17:18 +0000 (14:17 +0200)]
macosx: fixed Xcode project file and make dist (new document icons...)

15 years agonew document icons for mac os x
Dominic Spitaler [Sun, 17 May 2009 22:13:36 +0000 (00:13 +0200)]
new document icons for mac os x

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
15 years agotest: Add a test for media_player_next().
Pierre d'Herbemont [Thu, 21 May 2009 06:34:03 +0000 (23:34 -0700)]
test: Add a test for media_player_next().

Doesn't work because variables callback can't be removed from their own callbacks.
Some work will be required here.

15 years agolibvlc: Use a separate lock for media_list_lock and refcounting.
Pierre d'Herbemont [Thu, 21 May 2009 06:19:35 +0000 (23:19 -0700)]
libvlc: Use a separate lock for media_list_lock and refcounting.

Those finer grained locks help the media_list_player.

15 years agotest: Don't do the pause() test, this can't work.
Pierre d'Herbemont [Thu, 21 May 2009 06:12:17 +0000 (23:12 -0700)]
test: Don't do the pause() test, this can't work.

Basically pause() might play(). This may need some revamping.

15 years agotest: Fix media_player test.
Pierre d'Herbemont [Thu, 21 May 2009 05:38:00 +0000 (22:38 -0700)]
test: Fix media_player test.

libvlc_Ended is the state we want to check.
When paused, if the media ended before, we need to allow that state.

15 years agotest: Fix log issued in test_media_list_player_play_item_at_index.
Pierre d'Herbemont [Thu, 21 May 2009 05:07:25 +0000 (22:07 -0700)]
test: Fix log issued in test_media_list_player_play_item_at_index.

15 years agotest: Reenable media_list_player test. And explain why meta test is disabled.
Pierre d'Herbemont [Wed, 20 May 2009 06:03:12 +0000 (23:03 -0700)]
test: Reenable media_list_player test. And explain why meta test is disabled.

Works here.

15 years agotest: Fix meta.c test building.
Pierre d'Herbemont [Thu, 21 May 2009 05:01:06 +0000 (22:01 -0700)]
test: Fix meta.c test building.

15 years agotest: Make sure we wait for the correct state in media_player test.
Pierre d'Herbemont [Wed, 20 May 2009 05:59:36 +0000 (22:59 -0700)]
test: Make sure we wait for the correct state in media_player test.

15 years agotest: Disable debug output in libvlc tests.
Pierre d'Herbemont [Wed, 20 May 2009 05:55:19 +0000 (22:55 -0700)]
test: Disable debug output in libvlc tests.

15 years agoWinCE: add replacement getcwd() function
Pierre Ynard [Wed, 20 May 2009 22:11:37 +0000 (00:11 +0200)]
WinCE: add replacement getcwd() function

As WinCE doesn't support working directories, this function is
basically empty, and merely returns an error.

15 years agoqt4: update the MRL when the fps change (desktop).
Rémi Duraffort [Wed, 20 May 2009 22:04:39 +0000 (00:04 +0200)]
qt4: update the MRL when the fps change (desktop).
Should fix #2767.

15 years agoFactorization.
Rémi Duraffort [Wed, 20 May 2009 20:06:07 +0000 (22:06 +0200)]
Factorization.

15 years agoMerge branch '1.0-bugfix'
Rémi Duraffort [Wed, 20 May 2009 19:53:35 +0000 (21:53 +0200)]
Merge branch '1.0-bugfix'

Conflicts:

src/control/media_player.c

15 years agoFix potential object leak.
Rémi Duraffort [Wed, 20 May 2009 19:02:08 +0000 (21:02 +0200)]
Fix potential object leak.

15 years agoNo need to check for a NULL as libvlc_media_release is checking.
Rémi Duraffort [Wed, 20 May 2009 18:55:55 +0000 (20:55 +0200)]
No need to check for a NULL as libvlc_media_release is checking.

15 years agoUse var_CountChoices instead of var_Change(VLC_VAR_GETCHOICES) when applicable.
Rémi Duraffort [Wed, 20 May 2009 18:34:36 +0000 (20:34 +0200)]
Use var_CountChoices instead of var_Change(VLC_VAR_GETCHOICES) when applicable.

15 years agoCreate a function to free the memory allocated when calling
Rémi Duraffort [Tue, 19 May 2009 17:51:02 +0000 (19:51 +0200)]
Create a function to free the memory allocated when calling
var_Change(VLC_VAR_GETCHOICES). The memory was freed by a call to
var_Change(VLC_VAR_FREELIST). That's not a good idea as we were doing a lookup
just to free some memory.

15 years agoSimplifications.
Rémi Duraffort [Wed, 20 May 2009 08:16:57 +0000 (10:16 +0200)]
Simplifications.

15 years agoRemove unwanted "\v".
Rémi Duraffort [Wed, 20 May 2009 17:07:27 +0000 (19:07 +0200)]
Remove unwanted "\v".

15 years agoMerge branch 1.0-bugfix
Rémi Denis-Courmont [Wed, 20 May 2009 16:46:41 +0000 (19:46 +0300)]
Merge branch 1.0-bugfix

Conflicts:
modules/video_filter/extract.c
modules/video_filter/marq.c
projects/mozilla/control/npolibvlc.cpp
src/control/video.c

15 years agomacosx: fixed the updateInfoPanel crash
Felix Paul Kühne [Wed, 20 May 2009 16:04:24 +0000 (18:04 +0200)]
macosx: fixed the updateInfoPanel crash

This also 'fixes' RTSP playback crashes (#2742)

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
15 years agomacosx: fixed menubar appearance in fullscreen mode by partially reverting [46c93c9cc...
Felix Paul Kühne [Wed, 20 May 2009 16:22:39 +0000 (18:22 +0200)]
macosx: fixed menubar appearance in fullscreen mode by partially reverting [46c93c9cc984b99142b6e7321c8f5c4c8c4e65bb]

There is no 64bit-save aka non-Carbon replacement for this feature yet.

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
15 years agomacosx: fixed menubar appearance in fullscreen mode by partially reverting [46c93c9cc...
Felix Paul Kühne [Wed, 20 May 2009 16:22:39 +0000 (18:22 +0200)]
macosx: fixed menubar appearance in fullscreen mode by partially reverting [46c93c9cc984b99142b6e7321c8f5c4c8c4e65bb]

There is no 64bit-save aka non-Carbon replacement for this feature yet.

15 years agoFree rtsp commands on close
Sébastien Escudier [Wed, 20 May 2009 07:32:57 +0000 (09:32 +0200)]
Free rtsp commands on close

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
15 years agomacosx: fixed the updateInfoPanel crash
Felix Paul Kühne [Wed, 20 May 2009 16:04:24 +0000 (18:04 +0200)]
macosx: fixed the updateInfoPanel crash

This also 'fixes' RTSP playback crashes (#2742)

15 years agoMozilla: remove logging support
Rémi Denis-Courmont [Wed, 20 May 2009 15:39:17 +0000 (18:39 +0300)]
Mozilla: remove logging support

You don't want random web pages listing, say, the content of your
hard drive (file/xspf-open://C:/ ?). For debugging purpose, the standard
error from Mozilla is probably better than Javascript anyway, not to
mention that the libvlc logging APi is really brain-damaged.

15 years agoFix a (really) small memleak (even if i_count is 0, some memory is allocated
Rémi Duraffort [Wed, 20 May 2009 11:00:52 +0000 (13:00 +0200)]
Fix a (really) small memleak (even if i_count is 0, some memory is allocated
for the strucure).

15 years agomacosx: fixed 'Codec details pane does not work correctly', closes #2630
Felix Paul Kühne [Wed, 20 May 2009 10:52:43 +0000 (12:52 +0200)]
macosx: fixed 'Codec details pane does not work correctly', closes #2630

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
15 years agomacosx: fixed 'Codec details pane does not work correctly', closes #2630
Felix Paul Kühne [Wed, 20 May 2009 10:52:43 +0000 (12:52 +0200)]
macosx: fixed 'Codec details pane does not work correctly', closes #2630

15 years agoFix memleak (same problem with var_Change())
Rémi Duraffort [Wed, 20 May 2009 10:24:05 +0000 (12:24 +0200)]
Fix memleak (same problem with var_Change())

15 years agoRemove another extra base64 decoder.
JP Dinger [Wed, 20 May 2009 10:01:27 +0000 (12:01 +0200)]
Remove another extra base64 decoder.

15 years agosdpplin_free() and rmff_free_header() already check for NULL.
JP Dinger [Wed, 20 May 2009 09:47:43 +0000 (11:47 +0200)]
sdpplin_free() and rmff_free_header() already check for NULL.

15 years agoconfigure: default disable xcb on Darwin
Felix Paul Kühne [Wed, 20 May 2009 09:47:48 +0000 (11:47 +0200)]
configure: default disable xcb on Darwin

15 years agoFix potential object leak (test the conditions before doing anything).
Rémi Duraffort [Wed, 20 May 2009 09:15:43 +0000 (11:15 +0200)]
Fix potential object leak (test the conditions before doing anything).

15 years agosprintf +n in file.c, plus add and use vlc_num_keys and vlc_num_modifiers.
JP Dinger [Tue, 19 May 2009 08:03:22 +0000 (10:03 +0200)]
sprintf +n in file.c, plus add and use vlc_num_keys and vlc_num_modifiers.

Signed-off-by: JP Dinger <jpd@videolan.org>
15 years agoFix memleak (same problem with var_Change(VLC_VAR_FREELIST)).
Rémi Duraffort [Wed, 20 May 2009 09:03:10 +0000 (11:03 +0200)]
Fix memleak (same problem with var_Change(VLC_VAR_FREELIST)).

15 years agoFix memleak (the memory allocated by var_Control(VLC_VAR_GETCHOICES) must be
Rémi Duraffort [Wed, 20 May 2009 08:32:22 +0000 (10:32 +0200)]
Fix memleak (the memory allocated by var_Control(VLC_VAR_GETCHOICES) must be
deallocated).

15 years agoRevert "zip access: fix #2467. Now it's able to open files with non ASCII names,...
Geoffroy Couprie [Tue, 19 May 2009 22:36:26 +0000 (00:36 +0200)]
Revert "zip access: fix #2467. Now it's able to open files with non ASCII names, but can't open files with non ASCII names inside of the zip file"

This reverts commit e3d08b7955a57485d8d301f33c583641899153a6.

15 years agoWin32: remove parts of the intl .rc that crash windres on the buildbot
Geoffroy Couprie [Tue, 19 May 2009 22:31:10 +0000 (00:31 +0200)]
Win32: remove parts of the intl .rc that crash windres on the buildbot

15 years agowin32: Add recent files to jump lists
Geoffroy Couprie [Tue, 19 May 2009 18:32:15 +0000 (20:32 +0200)]
win32: Add recent files to jump lists

15 years agozip access: fix #2467. Now it's able to open files with non ASCII names, but can...
Geoffroy Couprie [Thu, 14 May 2009 02:03:19 +0000 (04:03 +0200)]
zip access: fix #2467. Now it's able to open files with non ASCII names, but can't open files with non ASCII names inside of the zip file

15 years agoFix previous commit.
Rémi Duraffort [Tue, 19 May 2009 22:04:30 +0000 (00:04 +0200)]
Fix previous commit.

15 years agovariables: fix a potential crash/double free.
Rémi Duraffort [Tue, 19 May 2009 21:33:00 +0000 (23:33 +0200)]
variables: fix a potential crash/double free.
Indeed, giving a NULL to var_Change(VLC_VAR_SETSTRING) will lead to a crash the
next time this variable is used.

15 years agov4l2: fix memleak.
Rémi Duraffort [Tue, 19 May 2009 21:27:07 +0000 (23:27 +0200)]
v4l2: fix memleak.

15 years agoAccept 4.4.0, the bugs in 4.4.0 and 4.4.1 shouldn't affect us too much.
Jean-Baptiste Kempf [Tue, 19 May 2009 18:27:30 +0000 (20:27 +0200)]
Accept 4.4.0, the bugs in 4.4.0 and 4.4.1 shouldn't affect us too much.

But well, fine distros should upgrade their minor libQt.

15 years agoQt: change slightly the colours of the sound slider.
Jean-Baptiste Kempf [Tue, 19 May 2009 18:24:44 +0000 (20:24 +0200)]
Qt: change slightly the colours of the sound slider.

15 years agoQt: lower a bit the default sound slider.
Jean-Baptiste Kempf [Tue, 19 May 2009 18:10:14 +0000 (20:10 +0200)]
Qt: lower a bit the default sound slider.

15 years agoFixed some dvd spu streams that have multiple palette/alpha per packet.
Laurent Aimar [Tue, 19 May 2009 16:47:52 +0000 (18:47 +0200)]
Fixed some dvd spu streams that have multiple palette/alpha per packet.

15 years agoFixed potential segfault with broken DVD SPU streams.
Laurent Aimar [Tue, 19 May 2009 16:47:20 +0000 (18:47 +0200)]
Fixed potential segfault with broken DVD SPU streams.

15 years agoCosmetics (spudec).
Laurent Aimar [Tue, 19 May 2009 16:47:00 +0000 (18:47 +0200)]
Cosmetics (spudec).

15 years agoAdd a bunch of FIXMEs
Rémi Denis-Courmont [Tue, 19 May 2009 17:58:47 +0000 (20:58 +0300)]
Add a bunch of FIXMEs

15 years agoSharpen: thread safety and don't retain useless value
Rémi Denis-Courmont [Tue, 19 May 2009 17:58:25 +0000 (20:58 +0300)]
Sharpen: thread safety and don't retain useless value

15 years agoRotate: thread-safety
Rémi Denis-Courmont [Tue, 19 May 2009 17:53:03 +0000 (20:53 +0300)]
Rotate: thread-safety