* modules/stream_out/transcode.c: hack to work around ffmpeg encoding which doesn't like frames with identical pts.
* modules/codec/ffmpeg/encoder.c: one missing AV_NOPTS_VALUE.
* modules/gui/skins2/src/dialogs.cpp: the dialogs provider needs to be of VLC_OBJECT_DIALOGS type.
* modules/gui/skins2/src/vlcproc.cpp: honour p_intf->b_die.
* input: if we failed to open the file, and the name has a '%', we
decode it as a url encoded one and we retry.
(Btw, this will break playing of paths that have '%' and ':' )
* src/window_manager.cpp: added a synchVisibility() method to show the
visible windows (because they may have be hidden by the window manager)
* all: removed the dirty hacks from the previous commit ;)
* x11/x11_display.cpp: the "parent" window now receive structure
notify events
* x11/x11_window.cpp: same thing for the other windows
* x11/x11_loop.cpp: when the "parent" window receives a map notify event,
we show all the windows because it doesn't seem to be automatic.
To have this working, we must update the visibility variable of the
windows when they are hidden by the window manager
* x11/x11_window.cpp: reset the "drawable" variable to 0 before the vout child
window is destroyed (it is not enough i guess...)
* utils/var_text.cpp: unregister the observer to the Stream variable
in the destructor ! (fix a crash when changing skin)
* x11_display.cpp: create a dummy "parent" window for the task bar
* x11_window.cpp: use XSetTransientForHint() to associate the windows
to the "parent" window -> single window in the task bar
* playlist.c: better random algorithm: do not play an item if it has
already been played (check the i_nb_played variable)
* item.c: initialize i_nb_played to 0
* src/vlcproc.cpp: DO NOT update the GUI directly from the vlc callbacks,
skins are not reentrant (at least with x11). Put commands in the queue
instead.
* commands/cmd_vars: commands to change variables
* controls/ctrl_list.cpp: automatic scroll when the stream changes
* src/bitmap.cpp: removed the scandinavian characters from the
text font, they don't belong to ASCII (caused a stack corruption)
* all: support of shuffle from the skins2 interface:
- created a bool variable "playlist.isRandom" and 2 commands
"playlist.setRandom(true)" and "playlist.setRandom(false)"
- known bug: the playlist doesn't scroll automatically when the
stream changes
* stream: fixed cast of lvalue.
* input: fixed "position" value as soon as possible after a see, this
way the intf doesn't show strange seek bar behavour.
* src/video_output/vout_intf.c: new vout_ControlWindow() function.
* modules/gui/wxwindows/video.cpp: implement vout_ControlWindow().
* modules/video_output/directx/events.c, modules/video_output/x11/xcommon.c:
+ call vout_ControlWindow() when resizing in embedded mode.
+ implemented a VOUT_REPARENT/CLOSE mode in Control() so the interface can signal that it closes its video window.
* skins2: Anchors are now stored in the layouts, not in the windows.
If you change the layout all anchorings are lost, except for anchors that
are in the same position in the old and the new layouts.
Adding more 'persistent' anchorings should not be very difficult.
Gildas Bazin [Wed, 31 Mar 2004 20:52:31 +0000 (20:52 +0000)]
* src/input/control.c: added INPUT_ADD_INFO/INPUT_SET_NAME to input_Control().
* src/input/input.c:
+ introduced input_item_t that is shared between the playlist/vlm and the input thread (contains input name, options, infos, etc...).
+ changed prototype of input_CreateThread() to input_thread_t *input_CreateThread( vlc_object_t *, input_item_t * ).
* ALL: use input_item_t and INPUT_ADD_INFO when necessary.
Derk-Jan Hartman [Wed, 31 Mar 2004 00:24:22 +0000 (00:24 +0000)]
Fall back to plain C with default C character encoding when UTF8 fails.
now you can see at least something with those SAP announces with Latin char encoding.
Laurent Aimar [Mon, 29 Mar 2004 21:26:54 +0000 (21:26 +0000)]
* ogg: cast of lvalue ... gibalou could you test this patch ?
(I have changed a ((uint8_t *)op.bytes) -= 4; and I'm not sure what it
was meant to do as op.bytes is a "long")
Laurent Aimar [Mon, 29 Mar 2004 18:58:28 +0000 (18:58 +0000)]
* vlc_common.h: removed all cast in TAB_*. GCC doesn't like anymore
cast of lvalue. -> Don't use them anymore in C++ code.
( Don't use *(void**)&p, it won't work because of aliasing problem).
* vlc_meta.h: don't use TAB_* as this file is included in C++ code.
Laurent Aimar [Mon, 29 Mar 2004 14:28:00 +0000 (14:28 +0000)]
* livedotcom.cpp: use stream_Demux* to support muxed stream. It's far
from stable, but begin to work. (Tested only with TS).
Limitation: no synchro with others stream if any (anyway, it would be
a bit stupid to have such stream).
Laurent Aimar [Mon, 29 Mar 2004 14:25:25 +0000 (14:25 +0000)]
* stream: added stream_DemuxNew, stream_DemuxSend, stream_DemuxDelete
to chain demuxer.
- stream_DemuxNew: create a special stream_t, launch a thread that
will open a demuxer, and call p_demux->pf_demux until asked to die.
- stream_DemuxSend: append a block to be used by the new demuxer.
- stream_DemuxDelete : free all data...
Laurent Aimar [Mon, 29 Mar 2004 14:21:47 +0000 (14:21 +0000)]
* mpeg_audio: fixed input infos update, and removed all tabs.
(each vlc_object_find has to be followed by a vlc_object_release once
the object isn't needed anymore)
Btw, I think we should better do that update in src/input/input_dec.c,
this way it will work with every decoder AND a decoder should not touch
p_input (decoders will be used by transcode for instance ...)