* toolbox: New --update-version switch, which builds the version.c file
from current date, user/hostname/domainname, compiler version and
svn changeset.
* src/libvlc.c: Exported API to access data from version.c.
* modules/control/http.c: New variables vlc_compile_time, vlc_compile_by,
vlc_compile_host, vlc_compile_domain, vlc_compiler and vlc_changeset.
To stream use a commandline similar to this:
./vlc dvdsimple:///dev/dvd --sub-filter=osdmenu --osdmenu-file=share/osdmenu/default.cfg --extraintf rc --sout '#transcode{sfilter=osdmenu}:std{mux=ts,access=udp,url=127.0.0.1:1234}' -vvvv
For local playback a commandline like this is needed:
./vlc dvdsimple:///dev/dvd --sub-filter=osdmenu --osdmenu-file=share/osdmenu/default.cfg -vvvv
Have fun with the basic functionality - jpsaman.
- complete functionality except "Extract" (I'm going to fix that next week)
* MainMenu.nib: re-orded the window-menu a bit
* wizard.*: added a method to launch it from the bookmarks
- the adjust-image-filter and the audio-filters are completely useable
ToDo:
- complete i18n support
- video-filters
- loading the settings from the prefs correctly
- probably minor layout tweaks, etc.
along with libjpeg and libtiff. SDL has been heavily patched not to
hijack main() on Darwin, you should do the same for other platforms.
Also fixed a huge number of typos in the Makefile, and reverted to
an old version of ffmpeg because our friends there are breaking
everything again.
* Makefile.am: Re-added the "Default" directory for Xcode 2.1.
Disabled by default, enable with --enable-loader
There's no sanity checks in configure so don't do it if your platform is not compatible.
zorglub and Anil report it works for WMV3 with the dmo decoder plugin.
It seems to crash with Quicktime (after displaying a few frame ?).
There's no RealVideo decoder so, won't do that, but it probably could as well.
Legal considerations
=====================
Section 2 of the GPL puts no restriction on what you link with so long as
you have obtained the program from source (and compiled it yourself), so
this is OK.
It is not clear to me whether it is ok to provide binaries with this
feature enabled. Maybe it would infringe on the GPL and, hence, on VLC's
past contributors intellectual rights. So if in doubt don't put this in
binary package you make.
done:
- all items are included with complete l10n support
- checkboxes and select-file-buttons behave as they are supposed to
todo:
- implementation of the logic, i.e. handling of the collected values, respective manipulation of the GUI, start of the stream
- move some arrays to an external header file
- some GUI things (e.g. radio buttons on page 2, etc. - see FIXMEs)
- implementation of some help-dialogues (it might be necessary to create a re-usable window in the nib for that, since NSAlert is Panther and Tiger only)
- l10n string fixes (both in OSX and WX)
=> most of the work still needs to be done
New VLC_EXPORTs are now added at the end of module_symbols_t so that
offsets of other function pointers are preserved.
Deleted VLC_EXPORTs are replaced with dummy pointers for padding.
Of course, it doesn't solve the problem with changing shared structures
format :/ and it may cause SVN conflicts when multiple people changes
VLC_EXPORT. I doubt it can be avoided though.
* Added package-win32-base-exe-cygwin Makefile target, for Cygwin/msys users who don't need wine. (This should really be folded into the package-win32-base-exe target, but I'm not sure what the best way to detect a Cygwin/msys build environment is ...)
* Each module can declare a "human-readable short name" with set_name
* Modules are sorted by category (set_category, set_subcategory).
Modules configs can be separated by set_section()
* Separated audio-filter and audio-visual
* Separated extraintf and control
* New command and widget : add_module_list() for comma-separated modules
* Vfilters now use "," as separator
* include/vlc_xml.h, src/misc/xml.c: core wrapper for XML modules.
* modules/misc/xml/xtag.c: trivial XML parser module.
* modules/misc/xml/libxml.c: XML parser module using libxml2.
* modules/gui/skins2/parser/*: removed dependancy on libxml2 and use an XML module.
+ extras/contrib/src/*: build libmpeg2 w/o mmxext and 3dnow on BeOS
(buggy compiler)
+ modules/gui/beos/*: quick compile fixes
+ modules/video_filter/deinterlace.c: require mmxext instead of mmx
+ Makefile.am: on BeOS, build a VLC bundle a la OS X
- The VLCApplication is now launched at the vlc.c level instead of at the module level. Allows VLC to be a more valid Mac application, also removes the vout intf dependancy (use ncurses to disp. video :).
This wasn't done at the libvlc level, because a mozilla plugin would no longer be able to function properly.
- Some functionality of the macosx vout may not work without the OS X GUI, and not all of this is checked yet.
- There is a symlink in VLC.app/Contents/Mac called clivlc that will force it back to a fullblown cli app when you want, so it can still be run by a user who isn't logged in via GUI.
- there are some autorelease leaks which need to be tackled.
- moved a lot of the VLCApplication func. to the VLCMain class.
- VLCMain is a +sharedInstance now.
- the complete OS X interface is still badly broken because of the many API changes lately. any volunteers?
Examples:
VLC.app/Contents/MacOS/VLC [-I macosx]
launches VLC as before (requires you to be logged in via GUI)
VLC.app/Contents/MacOS/VLC -I ncurses
launch vlc with a ncurses intf and display video on your mac
(requires you to be logged in via GUI)
VLC.app/Contents/MacOS/clivlc -I telnet -d
launch vlm remotely trough ssh in daemon mode, on a GUI'less server for instance, and stream your vids
Now how is that for combining GUI and cli in one application on the mac?!!? :)
jlj? I finally understand now how the OS X interface works !
- will now determine desired image size by itself
- the hdid mount command mounted the image as root if no user is logged in via GUI.
this is very undesirable for nightly builds.
now uses the mount command and a local mountpoint.
- fix goom location
- some small url improvements. please test the contrib system.
* modules/gui/macosx/*
- autodetect Quartz Extreme. Use OpenGL vout if present.
- --macosx-vout auto|quartz|opengl to force a vout.
* Makefile.am: add share/http/vlm to target.
* NEWS: small updates
* AUTHORS: updated my email address.
- The SAP handler now runs in a separate thread.
- RTP sessions can be announced with sap (sdp=sap://,name=...)
TODO: Make this more configurable
- Better SDP generation (the timestamp problem is not resolved)
About this, there is a problem : as, for a RTP session, the URI
is the complete SDP, if the session is recreated, as the URI has
changed, a new item is added to the playlist
- Experimental flow control algorithm :
It does not follow the "Recommended" implementation, as it needs
to count the sessions (to achieve this, we should make this work
together with the SAP listener)
It is disabled by default (use --sap-flow-control to enable).
When it is disabled, sap announcement interval is set by --sap-interval
* src/misc/net.c : created net_ReadNonBlock
* sap.c : Fixed memory problem
* 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.
+ new input_Control() function (doesn't do much for now).
+ started bookmarks support through input_Control().
+ new --bookmarks={name=foo,bytes=foo,time=foo},{...} config option.
* src/video_output/*:
+ started support for embeddable vouts (vout_RequestWindow()/vout_ReleaseWindow())
+ new --video-x/y config options
* src/playlist/item.c
src/playlist/info.c
src/playlist/item-ext.c
src/playlist/group.c
src/playlist/sort.c
src/playlist/loadsave.c
include/vlc_playlist.h
- New playlist_info structures and accessors
It works pretty like the old input_info (with categories)
It provides modularity to the playlist
- Removed ppsz_options and i_options from playlist_item
(we use the special category Options)
- Added a unique id to each playlist_item to be able to track the
items accross playlist reorders
- Simplified adding of items.
- playlist_AddExt is removed
- playlist_AddItem is still here and exported but should not be used
- use playlist_Add( p_playlist, uri, name, duration, mode, pos )
and use the accessors for all other things
- Added setters for fields of the playlist_item structure
- Introduced "item-change" and "playlist-current" playlist variables
to give more flexibility than only intf-change
At the moment, duration is still in the structure (easier to use, IMHO)
* src/input/input.c
src/libvlc.c :
playlist item options parsing changed
* include/vlc_common.h : added playlist_info structures
fix support of audio channel mixers, like the headphone channel mixer
for instance, which was broken since the introduction of user audio
filters; if specified by the user and compatible with the audio
pipeline, we add the channel mixer after the user filters.
-> unfortunately, this fix removed two strings and introduced 4 new
ones
-> TODO: allow the user to choose only amongst channel mixers, not
all available audio filters
* vlc.exe.manifest Makefile.am install-win32 :
add a manifest file to allow the win32 gui to use Windows XP visual
styles when available.
* modules/LIST: updated
* Makefile.am: include new OS X art in the dist.
* NEWS: updated
* */.cvsignore: added and improved some of these.
* modules/gui/macosx/prefs_widgets.?:
- new config controls much like in the wxwindows module. not yet in use.
- beware not tested irl. but it compiles :)
download a precompiled binary package, or to build all the packages
from the sources, at the user's option. It is currently written for
Mac OS X, but could easily be ported to other platforms.
* ALL: bring the project files to XCode.
10.2 users should revert the change in Makefile.am or they won't be able to
build VLC on their machine. Editing the project files will probably also not
be possible for them.
- splitted the enormous playlist.c file
- implemented a better item group system: groups have a name
and must be created before use by
playlist_CreateGroup( p_playlist, "newgroupname")
* modules/misc/sap.c
- Create our own playlist group ("SAP") and use it
* modules/access/slp.c
- Create our own playlist group ("SLP") and use it
* modules/demux/util/id3tag.c
- Trigger playlist update when we have parsed our tag
* modules/gui/wxwindows/interface.cpp
- Fixed the about box by using vlc_wraptext
- Added the simple open and the streaming wizard icons
*** Icons need to be changed ! ***
- Added the visualization to the extended gui
* modules/gui/wxwindows/preferences.cpp && include/vlc_help.h
- Enlarged the window to fit the wrapped text
- Added help for audio encoders
* modules/gui/wxwindows/stream.cpp & open.cpp & include/vlc_interface.h
- Created a "streaming wizard" window (3-step streaming)
* modules/gui/wxwindows/iteminfo.cpp:
- Group change is now based on the name
* modules/gui/wxwindows/playlist.cpp
- Added author and group columns to the listview
- Redesigned the window
- Added the Sort menu with several criteria (title, author, group)
- Added up/down buttons to move an item in the playlist
- Added the group menu to enable/disable a group in an understandable way
TODO:
-----
* playlist core :
- Implement advanced sort capabilities (multi-criteria)
- File format to save the new features
- export playlist (to M3U, eg)
- more robust group creation (duplicates check, ...)
* wxWindows playlist:
The idea of a treeview seems impossible, because of wxWindow's treeview,
that don't allow multi-selection, and, as far as I know, multi-columns.
- Provide a frontend to advanced sort (when it's done :-) )
- Allow moving items by drag & drop (well, if possible, haven't checked yet)
- Allow moving several items at once
- Customizable listview (ability to remove/move columns)
- Find a solution to the focus problem
(when you change track, the selected one scrolls at the
bottom of the visible screen)
* wxWindows interface:
- New icons, our icons begin to get old and not so pretty
- Find a solution for the volume bar (nobody understands what it is)
* include/vlc_video.h: new video_frame_format_t structure which defines the properties of a video frame.
* include/vlc/decoder.h: include vlc_codec.h
* src/misc/objects.c: added VLC_OBJECT_PACKETIZER and VLC_OBJECT_ENCODER object types.
* modules/stream_out/transcode.c, modules/codec/theora.c: experimental theora video encoder.
* src/input/*: some cleanup.
* modules/gui/macosx/output.m: updated part of the Stream output dialog
* modules/demux/util/sub.c: removed sub_detect() and moved the sub-file and
sub-autodetect file options to src/input/input.c
* src/input/input.c: added the moved options and use them to add subtitle
tracks.
* src/libvlc.h: description strings etc for sub-file and sub-autodetect-file
* src/input/subtitles.c: new subtitles_Detect() largely based on the
code used by MPlayer. Adapted for coding style and structure differences.
The autodetect routine can now detect multiple subtitle files and assigns scores
based on their names. if they much well enough they are sorted based on their
score. It will then return this set, and they will all be added as SPU tracks
to the current stream. The (un)selecting of these tracks will need to be fixed
because they all get assigned the es id 0xFF currently.