[vlc-devel] Re: cddax vs cdda plugins

R. Bernstein rocky at panix.com
Sat Dec 11 03:37:30 CET 2004

=?iso-8859-15?Q?Cl=E9ment?= Stenac writes:
 > The fact that they don't appear in the navigation behaviour is the
 > wanted behaviour. 

It is not wanted by me. In fact, I find it annoying. :-)

 > Tracks are added as playlist items, which is a more
 > intuitive view. 

Is this a result of some survey I'm just learning of and missed out
on?  Or is what you mean you find it intuitive so therefore everyone
else must find it intuitive too?

 > You then play tracks instead of playing the whole CD.

I'm not exactly sure what this means - it is a bit vague. But I'm not
sure what gives one the authority to say that "playing tracks" is
better or worse than "playing a whole CD."

In the xine libcdio CD-DA plugin the user can decide whether to make
the slider and seeking "duration" represent the entire CD or the
duration of track that is currently being played. For some music like
a symphony or an opera, one may want to view the work as the primary
unit (which is closer to "the whole CD" and tracks are someone's
convenient subdivisions of that, like bookmarks. So I find it
perfectly logical to want to express something like I'd like to go 5
minutes before the end or half-way into the entire work independent of
how someone might have been divided the work into tracks. To the
extent I could present the illusion of these two alternative views of
a CD in the xine plugin, I let the user decide which view (s)he wants.

With VCD's this is the issue becomes even more pronounced.  A "track"
has a gap associated with it (although now with CD authoring programs
one can decide not to do that). However in a VCD, an entry point is
inside a track and is an entity that can be navigated; it doesn't have
a gap associated with it, like bookmark inside a CD track. And again a
MPEG "track" may contain a whole play/movie, or a scene in a play and
the entry points might the subdivisions of that that someone found
interesting. I've often set an entry point at a place in what in
animation terms is called an "animation sequence" which is not be
strictly at the beginning of a scene.

In any well-designed media player, multiple points of view and access
are a good thing. vlc has multiple front ends, and multiple ways to
play different formats of audio and video. We don't force someone to
use a particular GUI or a particular audio format.  Similarly, it is a
good thing to have multiple ways navigate a CD-DA, namely by playlist
(which you clearly prefer) or by track (which I sometimes prefer).

 > I don't understand what you mean with Next and Previous. You can't do
 > next title and previous anymore, true, you use the playlist's next and
 > previous buttons, which works for me.

I find it odd to change the CD-DA plugin so it no longer provides the
more familiar track view. CD-DA tracks and track numbers,
next/previous tracks are pretty standard, the vlc playlist model isn't
(yet). I would like "play next/previous track" buttons independent of
how the playlist is set up; also a way to "play track number x". For
this it seems natural to me to list all of the tracks in the wxWindows
"Navigation" drop-down menu. This menu also conveniently provides its
own "next" and "previous" buttons, presumably because these may
sometimes have different behaviors from the ">" and "<" buttons which
have just changed behavior. In the xine plugin, I also allow entering
the track number in sort of "hot key" way. Again when I enter 5, I
generally mean "track 5 of the current CD, not playlist entry 5
although I am not opposed to allowing users choose which kind of
entity is desired.

 > > tracks of a CD be listed under a "folder" in a playlist rather than a
 > > flat list, does not offset the disadvantage of the navigation bar and
 > > navigation broken, and the broken time indicator inability to seek.
 > I don't understand what you mean here. I have no problem seeking and the
 > time indicator is working fine for me.

It works when CDDB is enabled and there is CDDB information. If for
some reason you can't get CDDB information, it doesn't appear even
though the correct durations are correct and appear in the playlist!

I've just yet again looked over the code to see what it is so special
about having LIBCDDB in case there was something that I possibly set
in conditional libcddb code in this regard. No. And although one can
get durations from CDDB, I don't. Instead I calculate it based on
frame numbers.

This is a big mystery. Right now I'm leaning towards a bug somewhere
outside the CD-DA code. In fact I haven't been able to force this by
hardcoding in numbers info.i_size or input.i_duration. 

 > > I see the there is "modules/access/directory.c" which uses
 > > playlist_NodeAddItem and I guess that's for file browsing. I just
 > > tried that and it too seems to have the same Navigation brokenness.
 > I really don't see what you mean here. Navigation is only for media
 > which have title. It can (or not) apply to CD, and to DVDs but that's
 > not for files.

My concern is not really for file browsing and don't care to argue
that point. Let others do so if they find that objectionable.

Navigation is separate from a playlist, especially in its current
expression in vlc. A playlist is a static thing and Navigation is more
dynamic and user-interactable.

But although I see navigation and playlist (and also stream and media
information) as separate, what I am really arguing for is *another* or
*alternative* view of a CD, as it is physically stored on the medium
(or in a CD-image if you have libcdio), rather than how might have
been decided to be arranged and embedded in a playlist. Turning a CD
into a playlist and then forcing people to view the CD in that
incarnation or in those terms I don't find "intutitive". In fact the
playlist-independent and physical-medium-dependent view is I think the
more common and prevalent, even if it is not "wanted" - by you.

This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html

More information about the vlc-devel mailing list