vlc.git
10 years agoFixed a potential race condition (projectm).
Laurent Aimar [Sat, 12 Dec 2009 21:16:19 +0000 (22:16 +0100)]
Fixed a potential race condition (projectm).

10 years agoReworked a bit projectm initialization.
Laurent Aimar [Sat, 12 Dec 2009 21:06:02 +0000 (22:06 +0100)]
Reworked a bit projectm initialization.

10 years agomacosx/framework: fixed MPEG2 exporting, updated iPod video profile (requires contrib...
Felix Paul Kühne [Sat, 12 Dec 2009 23:09:13 +0000 (00:09 +0100)]
macosx/framework: fixed MPEG2 exporting, updated iPod video profile (requires contribs with mp4a encoder) and added a method to stop all this

10 years agoUse VLC_CODEC_PPM
Rémi Denis-Courmont [Sat, 12 Dec 2009 21:57:10 +0000 (23:57 +0200)]
Use VLC_CODEC_PPM

10 years agoPPM image support
Johann Ransay [Tue, 8 Dec 2009 10:49:51 +0000 (11:49 +0100)]
PPM image support

PPM image format is already supported in FFMPEG. It would be possible to
support it in vlc too with the following patch.
The targetted usage of this change is to be able to do:
vlc --fake-file image.ppm fake://

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
10 years agoQt: new view mode for the playlist in an IconList like mode.
Jean-Baptiste Kempf [Sat, 12 Dec 2009 17:52:08 +0000 (18:52 +0100)]
Qt: new view mode for the playlist in an IconList like mode.

10 years agoQt: playlist. Remove unnecessary includes
Jean-Baptiste Kempf [Sat, 12 Dec 2009 17:24:12 +0000 (18:24 +0100)]
Qt: playlist. Remove unnecessary includes

and stretch the search to 1 in the playlist

10 years agoQt: PlaylistWidget parenting and code cleanup/simplifications
Jean-Baptiste Kempf [Sat, 12 Dec 2009 17:20:47 +0000 (18:20 +0100)]
Qt: PlaylistWidget parenting and code cleanup/simplifications

10 years agoQt: debug only if you want to.
Jean-Baptiste Kempf [Sat, 12 Dec 2009 17:27:33 +0000 (18:27 +0100)]
Qt: debug only if you want to.

10 years agoGLX 1.3: pick a frame buffer configuration with matching visual
Rémi Denis-Courmont [Sat, 12 Dec 2009 19:45:20 +0000 (21:45 +0200)]
GLX 1.3: pick a frame buffer configuration with matching visual

(refs #1672, 5dca2e339ed999d8d71182f50f5aa1d1927df0c9)

10 years agoGLX: inverted if
Rémi Denis-Courmont [Sat, 12 Dec 2009 19:40:39 +0000 (21:40 +0200)]
GLX: inverted if

10 years agoGLX: udpate view port after the X server resized the window
Rémi Denis-Courmont [Sat, 12 Dec 2009 19:08:27 +0000 (21:08 +0200)]
GLX: udpate view port after the X server resized the window

10 years agoFallback if gl.pc is missing (not tested)
Rémi Denis-Courmont [Sat, 12 Dec 2009 18:55:48 +0000 (20:55 +0200)]
Fallback if gl.pc is missing (not tested)

10 years agoXCB/GLX: we don't need GL Utilities, only GLX
Rémi Denis-Courmont [Sat, 12 Dec 2009 18:43:28 +0000 (20:43 +0200)]
XCB/GLX: we don't need GL Utilities, only GLX

10 years agoRemoved an invalid free added by 15643af1 (subtitle demuxer).
Laurent Aimar [Sat, 12 Dec 2009 18:22:26 +0000 (19:22 +0100)]
Removed an invalid free added by 15643af1 (subtitle demuxer).

10 years agoDo not rebufferize when transcoding to a non real time output.
Laurent Aimar [Sat, 12 Dec 2009 18:17:38 +0000 (19:17 +0100)]
Do not rebufferize when transcoding to a non real time output.

10 years agoFixed time/position report when using sout.
Laurent Aimar [Sat, 12 Dec 2009 18:11:17 +0000 (19:11 +0100)]
Fixed time/position report when using sout.

10 years agoProtect av_register_all call with vlc_avcodec_lock().
Laurent Aimar [Sat, 12 Dec 2009 10:12:47 +0000 (11:12 +0100)]
Protect av_register_all call with vlc_avcodec_lock().

10 years agoAdded an access using avformat protocol support.
Laurent Aimar [Sat, 12 Dec 2009 10:08:32 +0000 (11:08 +0100)]
Added an access using avformat protocol support.

The only way to test it for now is to use the following syntax:
avio://full_url
like for example avio://http://myhost/myfile.avi
It cannot be instanciated multiple times per process.

10 years agoRemove useless header check
Rémi Denis-Courmont [Sat, 12 Dec 2009 16:41:42 +0000 (18:41 +0200)]
Remove useless header check

10 years agoRemove useless DMPS extension checks
Rémi Denis-Courmont [Sat, 12 Dec 2009 16:39:03 +0000 (18:39 +0200)]
Remove useless DMPS extension checks

10 years ago--disable-xcb disables xvideo and glx implicitly
Rémi Denis-Courmont [Sat, 12 Dec 2009 16:34:13 +0000 (18:34 +0200)]
--disable-xcb disables xvideo and glx implicitly

10 years agoRemove old GLX plugin
Rémi Denis-Courmont [Sat, 12 Dec 2009 16:27:01 +0000 (18:27 +0200)]
Remove old GLX plugin

10 years agoXCB/GLX: resize
Rémi Denis-Courmont [Sat, 12 Dec 2009 16:23:32 +0000 (18:23 +0200)]
XCB/GLX: resize

10 years agoXCB: GLX 1.3
Rémi Denis-Courmont [Sat, 12 Dec 2009 16:12:31 +0000 (18:12 +0200)]
XCB: GLX 1.3

(This is untested as my current hardware driver only has GLX 1.2)

10 years agoXCB/XVideo: check version correctly
Rémi Denis-Courmont [Sat, 12 Dec 2009 12:45:07 +0000 (14:45 +0200)]
XCB/XVideo: check version correctly

X11 extensions are upward compatible only if they have the same major
version number. In other words, we wouldn't support XVideo >= 3.0.

10 years agoXCB/GLX: check that GLX >= 1.2 is available on the server side
Rémi Denis-Courmont [Sat, 12 Dec 2009 12:40:36 +0000 (14:40 +0200)]
XCB/GLX: check that GLX >= 1.2 is available on the server side

10 years agoXCB/GLX: initial GLX 1.2 support
Rémi Denis-Courmont [Thu, 10 Dec 2009 21:12:56 +0000 (23:12 +0200)]
XCB/GLX: initial GLX 1.2 support

This requires libx11-xcb, since the higher layers of GLX are not
available for pure X11 C Bindings currently.

TBD: resizing and GLX 1.3

10 years agovout wrapper: add xcb_glx
Rémi Denis-Courmont [Sat, 12 Dec 2009 11:06:14 +0000 (13:06 +0200)]
vout wrapper: add xcb_glx

10 years agoXCB: code factorization
Rémi Denis-Courmont [Thu, 10 Dec 2009 21:01:37 +0000 (23:01 +0200)]
XCB: code factorization

10 years agoXCB: move GLX-relevant helper to non-SHM-dependent file
Rémi Denis-Courmont [Sat, 12 Dec 2009 11:15:02 +0000 (13:15 +0200)]
XCB: move GLX-relevant helper to non-SHM-dependent file

10 years agortp sout: ensure seq value in rtsp is accurate
Pierre Ynard [Sat, 12 Dec 2009 02:12:02 +0000 (03:12 +0100)]
rtp sout: ensure seq value in rtsp is accurate

Handle caching and fix race conditions

10 years agortp sout: add missing caching option
Pierre Ynard [Fri, 11 Dec 2009 17:44:35 +0000 (18:44 +0100)]
rtp sout: add missing caching option

It was already used in the code...

10 years agomacosx/framework: Don't automatically fetch meta, only when asked.
Pierre d'Herbemont [Fri, 11 Dec 2009 15:17:33 +0000 (16:17 +0100)]
macosx/framework: Don't automatically fetch meta, only when asked.

This saves some precious memory if we don't browse them.

10 years agoQt: provide shortcuts for history items
Jean-Baptiste Kempf [Thu, 10 Dec 2009 18:20:22 +0000 (19:20 +0100)]
Qt: provide shortcuts for history items

Recents items from 1 to 9 are supported to Ctrl+1 to Ctrl+9

10 years agoQt: various cleanups and fixes
Jean-Baptiste Kempf [Wed, 9 Dec 2009 21:54:10 +0000 (22:54 +0100)]
Qt: various cleanups and fixes

10 years agoReduce the toolbar margins even more.
Jean-Baptiste Kempf [Wed, 9 Dec 2009 21:51:25 +0000 (22:51 +0100)]
Reduce the toolbar margins even more.

The height is one pixel less. I am not sure we can improve that a lot now.

10 years agoskins2: cosmetics in debug message
Erwan Tulou [Thu, 10 Dec 2009 22:10:02 +0000 (23:10 +0100)]
skins2: cosmetics in debug message

10 years agoskins2: better input management
Erwan Tulou [Thu, 10 Dec 2009 21:05:29 +0000 (22:05 +0100)]
skins2: better input management

This patch fixes failed assertions occurring sometimes on var_DelCallback for intf-event for input objects.

10 years agolibvlc: don't abort but return an error code if no modules were found.
Pierre d'Herbemont [Thu, 10 Dec 2009 22:05:27 +0000 (23:05 +0100)]
libvlc: don't abort but return an error code if no modules were found.

Also, let the possibility to run vlc -H.

Pointed-out-by Rémi Denis-Courmont <remi@remlab.net>.

10 years agoauhal: Don't spend 16MB of heap for nothing.
Pierre d'Herbemont [Thu, 10 Dec 2009 21:57:00 +0000 (22:57 +0100)]
auhal: Don't spend 16MB of heap for nothing.

This saves 16MB minus 16kB of live memory during audio stream playback on Mac OS X.

10 years agoauhal: Support 10.6 64bits framework.
Pierre d'Herbemont [Thu, 10 Dec 2009 21:49:52 +0000 (22:49 +0100)]
auhal: Support 10.6 64bits framework.

10 years agomacosx/framework: Don't attempt to do anything at exit or at construction this is...
Pierre d'Herbemont [Thu, 10 Dec 2009 20:20:59 +0000 (21:20 +0100)]
macosx/framework: Don't attempt to do anything at exit or at construction this is nasty for a Framework.

10 years agomacosx/framework: Make sure we can build for x86_64.
Pierre d'Herbemont [Thu, 10 Dec 2009 20:18:28 +0000 (21:18 +0100)]
macosx/framework: Make sure we can build for x86_64.

10 years agoqtcapture: Make sure we build on 10.6 64bits.
Pierre d'Herbemont [Thu, 10 Dec 2009 20:17:15 +0000 (21:17 +0100)]
qtcapture: Make sure we build on 10.6 64bits.

10 years agoshoutcast: Fix some leaks.
Pierre d'Herbemont [Thu, 10 Dec 2009 17:34:15 +0000 (18:34 +0100)]
shoutcast: Fix some leaks.

10 years agoSplit MIT-SHM check out of GetWindow
Rémi Denis-Courmont [Thu, 10 Dec 2009 21:11:51 +0000 (23:11 +0200)]
Split MIT-SHM check out of GetWindow

10 years agoRemove no-op
Rémi Denis-Courmont [Thu, 10 Dec 2009 21:09:26 +0000 (23:09 +0200)]
Remove no-op

10 years agoUse ...NonEmpty... for --open
Rémi Denis-Courmont [Thu, 10 Dec 2009 16:46:22 +0000 (18:46 +0200)]
Use ...NonEmpty... for --open

10 years agoFix --syslog
Rémi Denis-Courmont [Thu, 10 Dec 2009 16:45:04 +0000 (18:45 +0200)]
Fix --syslog

psz_logmode is tested for NULLity, so we need to use *NonEmpty*.
Also, always delete the variable. If the reference count was 1, we will
revert back to the configuration value, which makes no difference.

10 years agocore: config_GetPsz -> var_CreateGetNonEmptyString
Rémi Denis-Courmont [Thu, 10 Dec 2009 16:44:20 +0000 (18:44 +0200)]
core: config_GetPsz -> var_CreateGetNonEmptyString

10 years agopython-ctypes: define a .value() method for enums in java code
Olivier Aubert [Thu, 10 Dec 2009 14:59:17 +0000 (15:59 +0100)]
python-ctypes: define a .value() method for enums in java code

ATM, java bindings use Enum.ordinal() to convert the enum name to its value. However, this approach is broken in the case of discontinuous enums such as libvlc_media_option_t.
Java bindings maintainers should convert their code to use the enum.value() method.

10 years agopython-ctypes: add support for media stats in java generator
Olivier Aubert [Thu, 10 Dec 2009 14:56:58 +0000 (15:56 +0100)]
python-ctypes: add support for media stats in java generator

10 years agoQt4: check random button if random is set
Rafaël Carré [Thu, 10 Dec 2009 14:43:13 +0000 (15:43 +0100)]
Qt4: check random button if random is set

10 years agomacosx/framework: Fix three leaks in VLCStreamOutput.
Pierre d'Herbemont [Thu, 10 Dec 2009 10:16:29 +0000 (11:16 +0100)]
macosx/framework: Fix three leaks in VLCStreamOutput.

Pointed-out-by Mike Schrag <mschrag@mdimension.com>.

10 years agoshoutcast: Don't leak psz_load.
Pierre d'Herbemont [Thu, 10 Dec 2009 01:04:15 +0000 (02:04 +0100)]
shoutcast: Don't leak psz_load.

10 years agoavi: Don't leak in error code path.
Pierre d'Herbemont [Thu, 10 Dec 2009 01:03:33 +0000 (02:03 +0100)]
avi: Don't leak in error code path.

10 years agoconfig: Don't leak dataDir and configDir in dirs_macos.
Pierre d'Herbemont [Wed, 9 Dec 2009 16:44:49 +0000 (17:44 +0100)]
config: Don't leak dataDir and configDir in dirs_macos.

10 years agomacosx/framework: Fix a leak in VLCTime.
Pierre d'Herbemont [Wed, 9 Dec 2009 16:37:47 +0000 (17:37 +0100)]
macosx/framework: Fix a leak in VLCTime.

10 years agolibvlc: Make sure we don't continue vlc exectution if no modules where found.
Pierre d'Herbemont [Wed, 9 Dec 2009 15:47:31 +0000 (16:47 +0100)]
libvlc: Make sure we don't continue vlc exectution if no modules where found.

This is done to better diagnosticate misconfiguration of libvlc path.

10 years agoSkins2: Add missing return statements.
JP Dinger [Wed, 9 Dec 2009 12:50:07 +0000 (13:50 +0100)]
Skins2: Add missing return statements.
Spotted by Dominique Leuenberger. Thanks.

10 years agomissing: add sout_MuxGetStream
Pierre Ynard [Wed, 9 Dec 2009 12:09:00 +0000 (13:09 +0100)]
missing: add sout_MuxGetStream

10 years agoDon't append option to $PKG-CONFIG if it's empty
Christophe Mutricy [Tue, 8 Dec 2009 23:25:24 +0000 (23:25 +0000)]
Don't append option to $PKG-CONFIG if it's empty

10 years agosignals: ignore SIGHUP if its handler is SIG_IGN
Rémi Denis-Courmont [Tue, 8 Dec 2009 21:13:39 +0000 (23:13 +0200)]
signals: ignore SIGHUP if its handler is SIG_IGN

This works around GNU coreutils nohup not working with VLC.

Pointed-out-by: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
10 years agoMove x11-display config to core
Rémi Denis-Courmont [Tue, 8 Dec 2009 21:00:01 +0000 (23:00 +0200)]
Move x11-display config to core

It is used in many places, namely all X11 plugins _except_ the video
display ones. So it did not make much sense to keep it there IMHO.

10 years agoRevert "Contrib: block FFmpeg revision until dxva2 patch is updated for HEAD"
Laurent Aimar [Tue, 8 Dec 2009 21:00:38 +0000 (22:00 +0100)]
Revert "Contrib: block FFmpeg revision until dxva2 patch is updated for HEAD"

This reverts commit 1e56f368a9662b7fa59bf33242b816c6e0995d2b.

10 years agoFixed a typo in weight computation (dxva2).
Laurent Aimar [Tue, 8 Dec 2009 20:58:41 +0000 (21:58 +0100)]
Fixed a typo in weight computation (dxva2).

Noticed by GBeauchesne.

10 years agoFixed dxva2 patch for latest ffmpeg.
Laurent Aimar [Tue, 8 Dec 2009 20:58:08 +0000 (21:58 +0100)]
Fixed dxva2 patch for latest ffmpeg.

10 years agoQt4: provide the X11 display address through the window provider
Rémi Denis-Courmont [Tue, 8 Dec 2009 16:48:33 +0000 (18:48 +0200)]
Qt4: provide the X11 display address through the window provider

10 years agoXCB/window: pass display string to window owner
Rémi Denis-Courmont [Tue, 8 Dec 2009 20:21:20 +0000 (22:21 +0200)]
XCB/window: pass display string to window owner

10 years agoXCB outputs: use X11 display specified by the window provider
Rémi Denis-Courmont [Mon, 7 Dec 2009 21:59:48 +0000 (23:59 +0200)]
XCB outputs: use X11 display specified by the window provider

10 years agoRoom for window provider to pass the X11 display
Rémi Denis-Courmont [Mon, 7 Dec 2009 21:59:16 +0000 (23:59 +0200)]
Room for window provider to pass the X11 display

10 years agoQt4: check for Windows window system backend rather than platform
Rémi Denis-Courmont [Tue, 8 Dec 2009 16:35:54 +0000 (18:35 +0200)]
Qt4: check for Windows window system backend rather than platform

10 years agoHWND window really can only work inside Windows or WINE code
Rémi Denis-Courmont [Mon, 7 Dec 2009 21:19:48 +0000 (23:19 +0200)]
HWND window really can only work inside Windows or WINE code

10 years agovout_window_t: simplify via anynomous union
Rémi Denis-Courmont [Mon, 7 Dec 2009 21:17:46 +0000 (23:17 +0200)]
vout_window_t: simplify via anynomous union

10 years agoAvoid warning (braindead putenv() prototype!)
Rémi Denis-Courmont [Tue, 8 Dec 2009 16:47:51 +0000 (18:47 +0200)]
Avoid warning (braindead putenv() prototype!)

10 years agoQt4: fix buffer overflow
Rémi Denis-Courmont [Tue, 8 Dec 2009 16:33:35 +0000 (18:33 +0200)]
Qt4: fix buffer overflow

10 years agoFixed avcodec compilation with vaapi enabled.
Laurent Aimar [Tue, 8 Dec 2009 18:47:56 +0000 (19:47 +0100)]
Fixed avcodec compilation with vaapi enabled.

PIX_FMT_DXVA2_VLD is not yet in official ffmpeg.

10 years agoopengl: Link the gl texture to the picture.
Pierre d'Herbemont [Tue, 8 Dec 2009 18:25:03 +0000 (19:25 +0100)]
opengl: Link the gl texture to the picture.

This fixes the opengl "vout display" on Mac OS X.

10 years agoRemoved debug message (opengl).
Laurent Aimar [Tue, 8 Dec 2009 18:27:59 +0000 (19:27 +0100)]
Removed debug message (opengl).

10 years agoFixed picture_sys_t::texture initialisation with opengl for apple.
Laurent Aimar [Tue, 8 Dec 2009 18:25:28 +0000 (19:25 +0100)]
Fixed picture_sys_t::texture initialisation with opengl for apple.

10 years agolibvlccore: export sout_MuxGetStream
Rafaël Carré [Tue, 8 Dec 2009 13:32:57 +0000 (14:32 +0100)]
libvlccore: export sout_MuxGetStream

10 years agoavformat mux : use sout_MuxGetStream
Rafaël Carré [Tue, 8 Dec 2009 13:26:24 +0000 (14:26 +0100)]
avformat mux : use sout_MuxGetStream

10 years agomove MuxGetStream() to libvlccore, bump plugin ABI
Rafaël Carré [Tue, 8 Dec 2009 11:37:49 +0000 (12:37 +0100)]
move MuxGetStream() to libvlccore, bump plugin ABI

10 years agoasf: fix VLC_TS_INVALID comparison spotted by nefrir
Rafaël Carré [Tue, 8 Dec 2009 11:04:03 +0000 (12:04 +0100)]
asf: fix VLC_TS_INVALID comparison spotted by nefrir

10 years agomux_ogg: clearly initialize variables
Rafaël Carré [Tue, 8 Dec 2009 10:47:06 +0000 (11:47 +0100)]
mux_ogg: clearly initialize variables

10 years agomux_asf: use VLC_TS_INVALID (refs #3135)
Rafaël Carré [Tue, 8 Dec 2009 10:26:28 +0000 (11:26 +0100)]
mux_asf: use VLC_TS_INVALID (refs #3135)

10 years agopacketizer_mpegvideo: use VLC_TS_INVALID (refs #3135)
Rafaël Carré [Tue, 8 Dec 2009 10:04:54 +0000 (11:04 +0100)]
packetizer_mpegvideo: use VLC_TS_INVALID (refs #3135)

Note: cc_pts/dts are still set to 0, I can't tell if this value is the
starting timestamp, or if it means the timestamps are not valid.

Better understanding on how pf_get_cc and packetizers are called in
src/input would clarify (fenrir?)

10 years agofix doxygen documentation.
Rémi Duraffort [Tue, 8 Dec 2009 09:33:32 +0000 (10:33 +0100)]
fix doxygen documentation.

10 years agopacketizer_mpeg4video: use VLC_TS_INVALID (refs #3135)
Rafaël Carré [Tue, 8 Dec 2009 09:52:44 +0000 (10:52 +0100)]
packetizer_mpeg4video: use VLC_TS_INVALID (refs #3135)

10 years agopython bindings: indicate that old python bindings are deprecated.
Olivier Aubert [Tue, 8 Dec 2009 09:41:05 +0000 (10:41 +0100)]
python bindings: indicate that old python bindings are deprecated.

To build the old version, you have to pass the --force-deprecated option to the setup.py script.

10 years agolibvlc_media.h: fix documentation
Rémi Duraffort [Tue, 8 Dec 2009 09:11:30 +0000 (10:11 +0100)]
libvlc_media.h: fix documentation

10 years agolibvlc: add two functions
Rémi Duraffort [Tue, 8 Dec 2009 09:04:53 +0000 (10:04 +0100)]
libvlc: add two functions
* set a meta (without changing the file)
* save all meta to the file

10 years agoopengl: Fix a typo that lead to a crash.
Pierre d'Herbemont [Tue, 8 Dec 2009 02:18:30 +0000 (03:18 +0100)]
opengl: Fix a typo that lead to a crash.

Note, the opengl output is still broken on Mac OS X, in the way that no picture are rendered.

10 years agomacosx/framework: Fix a leak in VLCMediaListPlayer.
Pierre d'Herbemont [Mon, 7 Dec 2009 23:37:47 +0000 (00:37 +0100)]
macosx/framework: Fix a leak in VLCMediaListPlayer.

10 years agoFortune
Christophe Mutricy [Tue, 8 Dec 2009 00:23:52 +0000 (00:23 +0000)]
Fortune

10 years agoContrib: block FFmpeg revision until dxva2 patch is updated for HEAD
Jean-Baptiste Kempf [Mon, 7 Dec 2009 23:39:05 +0000 (00:39 +0100)]
Contrib: block FFmpeg revision until dxva2 patch is updated for HEAD

10 years agoContrib: use Qt 4.6.0 for windows.
Jean-Baptiste Kempf [Mon, 7 Dec 2009 23:16:16 +0000 (00:16 +0100)]
Contrib: use Qt 4.6.0 for windows.

10 years agoQt: state machine fixes part 1
Jean-Baptiste Kempf [Sat, 5 Dec 2009 11:42:45 +0000 (12:42 +0100)]
Qt: state machine fixes part 1

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
10 years agomacosx/framework: Make sure the nsobject drawable is never used after being freed.
Pierre d'Herbemont [Mon, 7 Dec 2009 17:49:02 +0000 (18:49 +0100)]
macosx/framework: Make sure the nsobject drawable is never used after being freed.

This issue was pointed out by Sébastien Zwickert.

We ensure this by two things:
- Retaining it by the media player and ensuring we are effectively stopped when releasing it. (ie, no one will use the drawable from now on).
- Retaining it during the life span of the vout. After a stop, the drawable might still be in the progress of receiving the notification of the vout removal, so we need it not to be freed during this period of time.
An alternative would be to create a protocol between drawable->vout to unregister the drawable.