From Pvolcko@concentric.net Tue, 15 Jun 1999 13:02:39 -0400 (EDT)
Date: Tue, 15 Jun 1999 13:02:39 -0400 (EDT)
From: Paul Volcko Pvolcko@concentric.net
Subject: [LinuxDVD] Linux DVD API

In some of my recent discussions with Andreas Bogk he made a suggestion
that an independent consortium of sorts be formed to work on a DVD API
(principally for Linux, but hopefully extensible to other OSes as well).
This consortium would design and build an API that would make programming
applications that use DVD Video possible without having to get the DVD
spec and go through the problems involved with current DVD Video
programming. 

I like the idea and would like to explore it some here on the list.
Hopefully there is a good number of people here so we can hash through
this pretty good fairly quickly.

The benefits of such a project are somewhat obvious:
1) no more having to pay $5,000 to get a set of the DVD Video specs
2) A common interface for accessing DVD related hardware and software
decoders.
3) An easy way to use program chaining data off a DVD Video disc and not
program a parser and handler for every project.
4) Updates to the DVD Video spec would require a change in the API and a
recompile of the projects using it, not a change in every project (some
simple, some hard) and a recompile.

And many more, I'm sure.

But, as always the potential problems:
1) The DVD Consortium would be more than slightly miffed at the release of
such a tool and would more than likely drag the creators/distributors
through a costly legal battle. Remember we would be making it pretty much
pointless to buy the DVD Video Specs from them.
2) In order to code it, a license from the DVD consortium would be needed
to be purchased (ie at least $5,000).
3) Unless you welcome the possibility of #1, then this would not be
open-sourceable unless it was reverse engineered. Releasing such a tool
would piss certain power huingry people off enough, releasing how it was
done and how it works would really grab their attention. :)

there's probably more but those are the highlights of what I can think of
right now.

So, what do people think? Any Laywers here that might be abel to shed
some light on the concerns mentioned in here? Anyone want to help tackle
actually doing this?

Another idea is to get some driver and board manufacturers involved,
namely Sigma Designs and Creative Labs. ATI and MAtrox might be some good
candidates too. This would be becasue they stand something to gain from
the availability of this kind of API and may actually have efforts of
their own in doing this exact thing. 

Paul Volcko

From cdavis@thepentagon.com Wed, 16 Jun 1999 22:07:50 -0400
Date: Wed, 16 Jun 1999 22:07:50 -0400
From: Colin Davis cdavis@thepentagon.com
Subject: [LinuxDVD] Linux DVD API

Paul Volcko wrote:

There hasn't been any discussion on this, so I think I'll jump in ;)
> 
> In some of my recent discussions with Andreas Bogk he made a suggestion
> that an independent consortium of sorts be formed to work on a DVD API
> (principally for Linux, but hopefully extensible to other OSes as well).
> This consortium would design and build an API that would make programming
> applications that use DVD Video possible without having to get the DVD
> spec and go through the problems involved with current DVD Video
> programming.
>

I think this is a wonderfull idea. This is the type of thing that would
be usefull to the entire community. 
Do you have any ideas for who would be on it?


> I like the idea and would like to explore it some here on the list.
> Hopefully there is a good number of people here so we can hash through
> this pretty good fairly quickly.
> 
> The benefits of such a project are somewhat obvious:
> 1) no more having to pay $5,000 to get a set of the DVD Video specs

Very useful. If the API was minimal enough, it would be up to the
indivdual DVD player writers to make the actual application, which would
allow for more feature-rich players (as one group would not do
everything)

> 2) A common interface for accessing DVD related hardware and software
> decoders.

Again very usefull. Write once, run anywhere. We don't want the
Creative-only player, etc.

> 3) An easy way to use program chaining data off a DVD Video disc and not
> program a parser and handler for every project.
> 4) Updates to the DVD Video spec would require a change in the API and a
> recompile of the projects using it, not a change in every project (some
> simple, some hard) and a recompile.

True. 

> 
> And many more, I'm sure.
> 
> But, as always the potential problems:

> 1) The DVD Consortium would be more than slightly miffed at the release of
> such a tool and would more than likely drag the creators/distributors
> through a costly legal battle. Remember we would be making it pretty much
> pointless to buy the DVD Video Specs from them.

I believe we would be within out legal rights to do this however. Does
anyone have a copy of their license?
We should read it very carefully to be sure ;)

> 2) In order to code it, a license from the DVD consortium would be needed
> to be purchased (ie at least $5,000).

this is not a large sum of money for a major company. If we could gain
acceptance, we could raise this from many Linux distros, as they hve a
vested interest in Linux. Corel may be more willing than others to help,
as it is positioning it's self as an alternative to win9x. If win9x can
play movies, but corel Linux Can't, they have a problem... Does anyone
have any contacts?

> 3) Unless you welcome the possibility of #1, then this would not be
> open-sourceable unless it was reverse engineered. Releasing such a tool
> would piss certain power huingry people off enough, releasing how it was
> done and how it works would really grab their attention. :)

Again we would need to review the specs, but I agree it would be
difficult. I think that this would be a good first step, and then, later
down the line, we (or another group) could consider writing a COMPATIBLE
open sourced API. You could choose what ever one you want. Any project
member must know that they will not be allowed to work on an open source
DVD API, as they would have prior knowledge of the spec. 

> 
> there's probably more but those are the highlights of what I can think of
> right now.
> 
> So, what do people think? Any Laywers here that might be abel to shed
> some light on the concerns mentioned in here? Anyone want to help tackle
> actually doing this?
> 
> Another idea is to get some driver and board manufacturers involved,
> namely Sigma Designs and Creative Labs. ATI and MAtrox might be some good
> candidates too. This would be becasue they stand something to gain from
> the availability of this kind of API and may actually have efforts of
> their own in doing this exact thing.
> 

Agreed. We also may wish to speak to Nvidia, as (I believe) their cards
have a DVD chip in them. They also have linux support, so it is also in
their interest. If we can get together enough support, we could make
this happen.

> Paul Volcko
--

Colin Davis

From pvolcko@concentric.net Wed, 16 Jun 1999 22:14:44 -0400 (EDT)
Date: Wed, 16 Jun 1999 22:14:44 -0400 (EDT)
From: Paul Volcko pvolcko@concentric.net
Subject: [LinuxDVD] Linux DVD API

> > In some of my recent discussions with Andreas Bogk he made a suggestion
> > that an independent consortium of sorts be formed to work on a DVD API
> > (principally for Linux, but hopefully extensible to other OSes as well).
> > This consortium would design and build an API that would make programming
> > applications that use DVD Video possible without having to get the DVD
> > spec and go through the problems involved with current DVD Video
> > programming.
> >
> 
> I think this is a wonderfull idea. This is the type of thing that would
> be usefull to the entire community. 
> Do you have any ideas for who would be on it?

I'm not sure who would be on it, at least specifically. I can think of
those who should be on it in general:

1) One representative from each current active DVD project, software or
hardware.
2) One rep from as many companies that we can get involved as possible.
3) People who have had prior experience creating an API that are
interested in the course of DVD development.
4) People who have knowledge of or have created drivers under linux and
other OSes that pretain to this projects goals (video, sound, and software
codecs, etc)

Andreas suggested that I head up the effort. I'll take it on if there is
no one else who comes forward wanting the job. While I have a vested
interest in the goals of this endeavor, I could see that there would be
people more "qualified" to act as the lead of this "consortium." At the
same time, I'm not likely to be willing to let just anyone come in and say
"I want to be lead on this." It's important enough that it gets done
right, as such I would expect anyone wanting to lead this thing would be
willing to give some reasoning and "credentials." I'll provide these
for myself in another message once some more discussion has occurred on
this idea.

> > I like the idea and would like to explore it some here on the list.
> I believe we would be within out legal rights to do this however. Does
> anyone have a copy of their license?
> We should read it very carefully to be sure ;)

Well, I'll have to see about getting a copy of the NDA signed for the
specs my project is using. If someone else has one of these pretty sheets
of paper please give it a good read through and give us some information
if you can.

> > 2) In order to code it, a license from the DVD consortium would be needed
> > to be purchased (ie at least $5,000).
> 
> this is not a large sum of money for a major company. If we could gain
> acceptance, we could raise this from many Linux distros, as they hve a
> vested interest in Linux. Corel may be more willing than others to help,
> as it is positioning it's self as an alternative to win9x. If win9x can
> play movies, but corel Linux Can't, they have a problem... Does anyone
> have any contacts?

No, it isn't a lot for a company. But if a single company buys said specs
for the effort, then they would need to be clear on the fact that they
aren't buying any kind of extra "vote" or pull within the group. It'll be
tricky. 

> > 3) Unless you welcome the possibility of #1, then this would not be
> > open-sourceable unless it was reverse engineered. Releasing such a tool
> > would piss certain power huingry people off enough, releasing how it was
> > done and how it works would really grab their attention. :)
> 
> Again we would need to review the specs, but I agree it would be
> difficult. I think that this would be a good first step, and then, later
> down the line, we (or another group) could consider writing a COMPATIBLE
> open sourced API. You could choose what ever one you want. Any project
> member must know that they will not be allowed to work on an open source
> DVD API, as they would have prior knowledge of the spec. 

Well, from what I've seen of the specs (skimmed through all of them and am
quite familiar with portions of them) they would be bordering on
impossible to fully reverse engineer. 

> > there's probably more but those are the highlights of what I can think of
> > right now.
> > 
> > So, what do people think? Any Laywers here that might be abel to shed
> > some light on the concerns mentioned in here? Anyone want to help tackle
> > actually doing this?
> > 
> > Another idea is to get some driver and board manufacturers involved,
> > namely Sigma Designs and Creative Labs. ATI and MAtrox might be some good
> > candidates too. This would be becasue they stand something to gain from
> > the availability of this kind of API and may actually have efforts of
> > their own in doing this exact thing.
> > 
> 
> Agreed. We also may wish to speak to Nvidia, as (I believe) their cards
> have a DVD chip in them. They also have linux support, so it is also in
> their interest. If we can get together enough support, we could make
> this happen.

Is there a list anywhere of card manufacturers or of existing DVD software 
solutions? Might be a good idea to compile such a list and start gettign
aocntact list formed.


Anyone else have input on this? It's a non-trivial idea and would need
widespread support withing the DVD development community and programming
community at large to work.

Paul

From derek@spider.com Thu, 17 Jun 1999 08:04:10 +0100
Date: Thu, 17 Jun 1999 08:04:10 +0100
From: Derek Fawcus derek@spider.com
Subject: [LinuxDVD] Re: Linux DVD API

On Wed, Jun 16, 1999 at 10:14:44PM -0400, Paul Volcko wrote:
> > Agreed. We also may wish to speak to Nvidia, as (I believe) their cards
> > have a DVD chip in them. They also have linux support, so it is also in
> > their interest. If we can get together enough support, we could make
> > this happen.
> 
> Is there a list anywhere of card manufacturers or of existing DVD software 
> solutions? Might be a good idea to compile such a list and start gettign
> aocntact list formed.

Well in terms of video cards there are a number of chip sets that include
h/w support for MPEG playback (real support including IDCT and motion
compensation). Those that I can name off the top of my head are the
ATI Rage Pro 128, PVRSG, S3's Savage 3/4 (no IDCT) and some of the SiS
chipsets.

For the SiS chipsets the documentation is freeely available and from
memory simply takes a slightly massaged MPEG 2 stream.

If one was to try and support the above then theoretically unencrypted
DVD's could be played back, but given that the CSS would have to be in
software, normal encrypted ones would be a problem.

DF
-- 
Derek Fawcus derek@spider.com
Spider Software Ltd. +44 (0) 131 475 7034

From god@yinyang.hjsoft.com Thu, 17 Jun 1999 09:07:19 -0400 (EDT)
Date: Thu, 17 Jun 1999 09:07:19 -0400 (EDT)
From: Shannon Aldinger god@yinyang.hjsoft.com
Subject: [LinuxDVD] Re: LinuxDVD digest, Vol 1 #8 - 8 msgs

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

You may want to talk to Alan Cox to see if this could be added somewhat
seemlessly into the Video4Linux API. Although I don't know his feelings on
binary modules. It would have to be a module to comply with GPL of the
kernel. This would also have the benefit of allowing completely
open-sourced dvd-players which use your API, since CSS would be handled by
the binary-only kernel module or modules. 

The only issue I can think of with regard to CSS is the encryption across
the bus. You may be able to leave the kernel do CSS, then have some other
encryption across the bus, so individual players don't need to get CSS
license and DVD specs. I haven't seen DVD specs but this is what I
understand from reading a few FAQs of the web for it. 

If any of my conceptions of DVD are wrong let me know...

           Mental Recursion: Out of Memory: Personality Dumped.
   ____________________________________     ____________________________
  /          Systems Analyst        __/\   /_  Primary Email Address:  /\
 /Analytical Design Solutions, Inc./_ \/\ __/ saldinger@adsi-cni.com  / /\
/___________________________________/\   /___________________________/ /
\___________________________________\/   \___________________________\/
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \    \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v0.9.7 (GNU/Linux)
Comment: Made with PGP4Pine

iD8DBQE3aPMWRWaw1Na2tZ4RAsvCAKCLjH+TdqMHRFZFmo67DPZ0szA6DwCgsmyg
hJ1+wDYkcOYlNWiEjiHztdg=
=UjGd
-----END PGP SIGNATURE-----

From pvolcko@concentric.net Thu, 17 Jun 1999 09:17:04 -0400 (EDT)
Date: Thu, 17 Jun 1999 09:17:04 -0400 (EDT)
From: Paul Volcko pvolcko@concentric.net
Subject: [LinuxDVD] Re: Linux DVD API

> > Is there a list anywhere of card manufacturers or of existing DVD software 
> > solutions? Might be a good idea to compile such a list and start gettign
> > aocntact list formed.
> 
> Well in terms of video cards there are a number of chip sets that include
> h/w support for MPEG playback (real support including IDCT and motion
> compensation). Those that I can name off the top of my head are the
> ATI Rage Pro 128, PVRSG, S3's Savage 3/4 (no IDCT) and some of the SiS
> chipsets.
> 
> For the SiS chipsets the documentation is freeely available and from
> memory simply takes a slightly massaged MPEG 2 stream.
> 
> If one was to try and support the above then theoretically unencrypted
> DVD's could be played back, but given that the CSS would have to be in
> software, normal encrypted ones would be a problem.

I have to do some research into the current Video 4 Linux and V4L2
projects, but it would seem that work for mpeg2 decoding on those cards
would fall under their umbrella of concern (the DVD API would simply
provide links into V4L as well as include support for DVD decoder card
specifically). 

Keep in mind, this API isn't going to do any kind of decoding by itself.
It will simply provide a common interface layer to drivers for hardware
and software decoders. The only "Decoding" that this API may end up doing
would be CSS descrambling (it would have to be totally hidden from the
user in terms of method and protocol) and decoding (actually just
filtering and parsing) of the vob and ifo files on the DVD discs. It
wouldn't have any mpeg decoding code or AC-3 decoding/mixdown code in the
API (although such modules might be distributed/bundled with the API).

I know of one project that is currently planning to get stuff put into the
V4L2 project to support their application. I have to do some more
research into the V4L2 api and what it's intent is and what it's
distribution method is (binary only or source/binary). It may turn out
that all this can go into that API (if it's owner is willing to include it
all). 

Is anyone here familiar with the V4L2 project? Would this DVD API be able
to be included? Does the ideas presented for this so far jive with the
intent and schedule for the V4L2 project?

Paul

From pvolcko@concentric.net Thu, 17 Jun 1999 10:22:47 -0400 (EDT)
Date: Thu, 17 Jun 1999 10:22:47 -0400 (EDT)
From: Paul Volcko pvolcko@concentric.net
Subject: [LinuxDVD] Re: LinuxDVD digest, Vol 1 #8 - 8 msgs

On Thu, 17 Jun 1999, Shannon Aldinger wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> You may want to talk to Alan Cox to see if this could be added somewhat
> seemlessly into the Video4Linux API. Although I don't know his feelings on
> binary modules. It would have to be a module to comply with GPL of the
> kernel. This would also have the benefit of allowing completely
> open-sourced dvd-players which use your API, since CSS would be handled by
> the binary-only kernel module or modules. 
> 
> The only issue I can think of with regard to CSS is the encryption across
> the bus. You may be able to leave the kernel do CSS, then have some other
> encryption across the bus, so individual players don't need to get CSS
> license and DVD specs. I haven't seen DVD specs but this is what I
> understand from reading a few FAQs of the web for it. 
> 
> If any of my conceptions of DVD are wrong let me know...
> 
>            Mental Recursion: Out of Memory: Personality Dumped.
>    ____________________________________     ____________________________
>   /          Systems Analyst        __/\   /_  Primary Email Address:  /\
>  /Analytical Design Solutions, Inc./_ \/\ __/ saldinger@adsi-cni.com  / /\
> /___________________________________/\   /___________________________/ /
> \___________________________________\/   \___________________________\/
>  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \    \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v0.9.7 (GNU/Linux)
> Comment: Made with PGP4Pine
> 
> iD8DBQE3aPMWRWaw1Na2tZ4RAsvCAKCLjH+TdqMHRFZFmo67DPZ0szA6DwCgsmyg
> hJ1+wDYkcOYlNWiEjiHztdg=
> =UjGd
> -----END PGP SIGNATURE-----


I'm assuming you are talking about having unscrambled data moving across
the system bus.  While this used to be a concern in previous licensing
agreements for CSS, I think the restrictions have been reduced in regard
to this.  Otherwise there would be no CSS unscrambling in software, only
in hardware before piping into a hardware MPEG-2 and AC-3 decoder and them
output in analog (which then gets Macrovision treatment).  This is
obviously no tthe case though as the Hollywood+ card and Dxr3 both perform
CSS descrambling in software.  

For our purposes, assuming we can get CSS licensing for this, we would
have to have all CSS functionality totally encapsulated in the API.
Either through ioctls modification or through direct communication with
the drive from within the API, the CSS session would be negotiated.  Then
the data would have to be fed into the API or read in by the API and then
descrambled... all without use intervention or access to the unscrambled
information.  This last part is important because it means that no one
would be able to use the API to perform CSS descrambling and then take
that unscrambled data and actually direct it anywhere.  The APi would need
to be instructed where to send it.  In the case of both hardware and
software destinations, though, there would be the chance of spoofing the
API into thinking the destination was an output or linked to an output
device, when in fact it is simply dumping the unscrambled data to a file
(which can be used for re-coding into a unscrambled version of the
original).  I'm not sure what the CSS licensing provisions are for
software decoders.  Without some way of verifiying that the device or
software decoder is trustworthy and actually performing the data decoding
and output... well you get the idea I'm sure.  

My current project group will be contacting the CSS licensing group fairly
soon.  I'll let everyone know what kinds of restrictions will be placed on
this API when and if I can.

Something interesting would be to know how any of the current software
only DVD player applications (no hardware decoding whatsoever) work.  Do
they have to have their own MPEG-2/AC-3 decoding included or can they use
other decoder modules/codecs?  Do they only work with a specific output
device (such as only working with a certain video card) or do they go
through the windows video API enabling any video card in windows to be an
output device (which would make current windows implementations
susceptible to the idea presented above)?

Paul Volcko
LSDVD Project

From andreas@andreas.org 17 Jun 1999 16:47:03 +0200
Date: 17 Jun 1999 16:47:03 +0200
From: Andreas Bogk andreas@andreas.org
Subject: [LinuxDVD] Re: Linux DVD API

Paul Volcko <pvolcko@concentric.net> writes:

> Is anyone here familiar with the V4L2 project? Would this DVD API be able
> to be included? Does the ideas presented for this so far jive with the
> intent and schedule for the V4L2 project?

There's a driver for an MPEG2 decoder card (without CSS) on
http://mpeg.openprojects.net. The V4L2 API would be suited for decoder
hardware, but we would have to specify the appropriate stream types.

Andreas

-- 
Reality is two's complement. See:
ftp://ftp.netcom.com/pub/hb/hbaker/hakmem/hacks.html#item154

From pvolcko@concentric.net Thu, 17 Jun 1999 12:04:27 -0400 (EDT)
Date: Thu, 17 Jun 1999 12:04:27 -0400 (EDT)
From: Paul Volcko pvolcko@concentric.net
Subject: [LinuxDVD] Re: Linux DVD API

On 17 Jun 1999, Andreas Bogk wrote:

> Paul Volcko <pvolcko@concentric.net> writes:
> 
> > Is anyone here familiar with the V4L2 project? Would this DVD API be able
> > to be included? Does the ideas presented for this so far jive with the
> > intent and schedule for the V4L2 project?
> 
> There's a driver for an MPEG2 decoder card (without CSS) on
> http://mpeg.openprojects.net. The V4L2 API would be suited for decoder
> hardware, but we would have to specify the appropriate stream types.
> 

Yeah I saw that yesterday. I didn't see any other decoders supported
though. I could see making the API have the ability to use V4L/V4L2
devices, but the V4L/V4L2 project would seem to be concentrating on video
only (hence the name). Since we would need to do audio decoding support
as well, I think that it would be reasonable to have the APi directly
interface with the various devices. V4L cards could be supported through
that API, though an additional layer would be added to working with them
from a user standpoint (or the DVD API). Also, V4L is for linux only.
While the main thrust of the implementation of this DVD API would be linux
based, it makes sense to keep it as general and portable as possible so
dependence on V4L would be a mistake, I think.