Massa said:
Also, DRM is not a problem with Gstreamer. Since it's available under the LGPL, proprietary and closed plugins can be developed and distributed freely. Sony would only have to credit and make the source code available for the Gstreamer parts that they use, not any proprietary plugins they create or license (in fact, creating proprietary plugins is a big part of Fluendo's business model).
EDIT 2: You allow above that DRM aware plugins could be proprietary and no source code distributed for them (confirmed in articles). The Gstreamer core (21 small programs) is the only issue we appear to have. The Gstreamer core may also be DRM aware and part of a from source to sink that must be DRM secure
Edit: still an issue? The PS3 is using Marlin DRM and the examples cited for Linux use Gstreamer. So proprietary from source to sink with Sony paying for codec plugins as well as Marlin DRM aware Gstreamer core and bad plugins.
No disclosure allowed much less required. Possible?
There is a big hole in the Sony disclosure site where the PS3 should be. There is no disclosure for anything PS3 except now webkit and Cairo. So again, according to you there should be a disclosure for Linux and Gstreamer or whatever AV stream-codec-player is being used.
Edit: It would be hard to not have some software that is GPL or LGPL in an operating system. Either there is some legal reason for not having to disclose or all software is clean room written by Sony.
Looking at it from the other side there is no disclosure for anything. Add to that, the Quriocity music application for the PS3 is 121megs and uses software from 1999 without hardware acceleration. Why? Disclosure or waiting for HTML5 <audio> with ultraviolet DRM....Google (widevine) provided open source?
Again there are two issues, something that looks and works like Linux that is compatible with software that needs a Linux 2.6 kernel and is not disclosed and an AV system that works like Gstreamer but does not need disclosure.
Edit: One of the links in my previous post is for a lecture given by a Sony employee about cell optimized linux kernel. "How to Build A Custom Linux Distribution" That might answer the first issue. I expect that the PS3 kernel is custom designed if just for the copy protection and encryption. So totally re-written by Sony following Linux kernel 2.6 (POSIX) rules with source chosen (probably GNUstep) to be open source legal not requiring disclosure. Or source could have been as androvsky said, IBM with the same rewrite.
If not Gstreamer in the PS3 then the webkit port will work like Firefox does. A gstreamer plugin for Gstreamer in Firefox that interfaces to the AV output programs on the PS3. No custom cell optimized codecs, an additional 300K+ or so duplication for AV as a entire Gstreamer core will have to be loaded with all the other plugins needed. Gstreamer with cairo bindings is needed for WebGL video features and the HTML5 <video> tag.
If Gstreamer (or something that works like Gstreamer) is in the PS3 then only the GTK+3 webkit version Gstreamer plugins to interface with webkit are needed and all codecs and AV stream features in the PS3 can be used as is.
Need to check on this as I am assuming the
GTK webkit/cairo/gstreamer/pango version is for Linux platforms that already have gstreamer (standard) installed. That only Cairo was disclosed in it's entirety but not Gstreamer supports this guess but only if Gstreamer in it's entirety is not part of the gstreamer GTK+ library.
It should be possible to determine from the webkit disclosure which was done.
Debian GTK webkit build
autoconf
automake
autotools-dev
bison (>= 2.4.1)
flex
gperf
glib-networking
gtk-doc-tools
libenchant-dev
libgail-dev (>= 1.8)
libgeoclue-dev
libglib2.0-dev (>= 2.27.4)
libgstreamer-plugins-base0.10-dev This webkit build assumes Gstreamer core is already installed. It's linking base plugins webkit to gstreamer core
libgtk2.0-dev (>= 2.10)
libicu-dev
libjpeg62-dev
libpango1.0-dev (>= 1.16)
libpng12-dev
libsoup2.4-dev (>= 2.33.1.20101209)
libsqlite3-dev
libtool
libxslt-dev
libxt-dev
Library list in Sony webkit build
$(CAIRO_LIBS) \ Cairo SVG library
+ $(COVERAGE_LDFLAGS) \
+ $(ENCHANT_LIBS) \...............Front end API for a spell checker and more
+ $(FREETYPE_LIBS) \...............Font Library
+ $(GAIL_LIBS) \
+ $(GEOCLUE_LIBS) \.....No need for this on the PS3, NGP will use!
+ $(GLIB_LIBS) \
+
$(GSTREAMER_LIBS) \ Gstreamer AV library * Gstreamer library
+ $(GTK_LIBS) \
+ $(HILDON_LIBS) \ See below*
+ $(JPEG_LIBS) \
+ $(LIBSOUP_LIBS) \...The libsoup package contains an HTTP library implementation in C. This is useful for accessing HTTP servers in a completely asynchronous mode.
+ $(LIBXML_LIBS) \
+ $(LIBXSLT_LIBS) \
+ $(PANGO_LIBS) \ International Fonts Cairo-pango = SVG international fonts
+ $(PNG_LIBS) \
+ $(SQLITE3_LIBS) \ Data Base Library
+ $(UNICODE_LIBS) \
+ $(XT_LIBS) \
+ $(WINMM_LIBS) \ Windows Multi-Media library ?
+ $(SHLWAPI_LIBS) \
+ $(OLE32_LIBS)
The above would tend to indicate that Gstreamer is not in the PS3 depending on what $(GSTREAMER_LIBS contains (does it contain the core?). But no changes to webkit dff file to indicate this? Obviously there are changes to the library names so back to the other files to find the source. I'd guess that Sony programmers are using an internally maintained set of libraries and are not making direct get repository calls to internet sources. When unziping the Sony maintained webkit disclosure files to examine them I got three alerts by my virus checker.
There is a project called OpenMax with GST-OpenMax plugins available which might impact this issue if the PS3 is not using Gstreamer. If we see OpenMax anywhere in the webkit changes then Gstreamer is probably not being used in the PS3 but then PS3 codecs and AV could be used with webkit Gstreamer, still a less efficient footprint.
Just quickly went through the .DFF files, some impressions;
1) Lots of not implemented
2) Definitely mouse support and keyboard support added. Did not see virtual keyboard changes so Google or Apple virtual keyboard is still there.
3) Sony is calling this a POSIX port but there was reference to PS3(OS) & POSIX several times in one of the .dff files. I expect this means the POSIX version being created will find it's way into other Sony platforms with this one being PS3 specific.
4) No reference to gstreamer or openMAX. Either I missed it, webkit is not done and more updates are coming or there are no changes to the GTK port with reference to gstreamer and gstreamer with cairo bindings. Which would mean Gstreamer or something exactly like it is in the PS3.
4) touchscreen and multi-touch not mentioned so no changes there.
Someone would have to go through the GTK webkit code to determine features and then cross off the not implemented to see what's left. There is also a possibility that
include Posix means there is a custom set of Sony written routines replacing the ChromeClient (not implemented) and other webkit routines written by Apple and Google for their platforms.
Edit: one other issue, there are
DRM aware plugins for gstreamer since 2005 (Created a big roar for Linux to have copy protection at the time) and according to a PDF for a lecture,
a Gstreamer player (adaptive streaming) that supports Marlin ultraviolet DRM.
Is the source code for that required to be disclosed? It would seem to me that
it can't be disclosed.
Marlin DRM -Gstreamer player used in PS3
Marlin is used for content distribution and protection in:
Japanese national IPTV deployment (IPTV-ES specification)
Sony PlayStation Network, PS3, PSP, TVs, and other devices
I believe this system is in the PS3 now:
Linux-Platform-Multi-media content managementl There is a DRM flag set in media legally copied to the PS3 which keeps the media from playing on other platforms without proper keys. This is enabled in Settings. PS3 firmware 3.41 added a flag in the audio for movies.
For Linux platforms, it comes as a precompiled machine language package of programs; not as source code. Kernel changes are required also.
I believe that Sony updated the PS3 with the HTML5 javascript engine and Marlin DRM aware gstreamer adaptive streaming player with Firmware
3.5 and
3.56. These updates made it possible for the PS3 to support Flash
3.5 streams. (Adaptive streaming H.264, DRM, HTML5 UIs with social networking support and commercials). The same for the PSP with firmware 6.
35
The
PS3 gstreamer codecs were optimized for the Cell SPU sometime in 2008, according to the article above,
the Kernel was optimized to use the SPE also 2007.
The Home client also uses the same Gstreamer stream and when adaptive streaming became available, Home automatically had access to it. The Home client 1.4 now has Lua with Cairo bindings.
EDIT: Gstreamer Developer site
Christian Fredrik Kalager Schaller wrote:
> All the code will be licensed under the BSD or MIT license. There will
> be nothing in this package actually useful to begin with. This is more
> about creating a toolkit for Fluendo or anyone else who needs to make
> DRM enabled products and wants to use GStreamer. It is also worth to
> mention that the design we come up with for the DRM and GStreamer do not
> touch the core or any of the plugins module. It assumes a untrustable
> GStreamer core in fact.
So in the above diagram, DRM is part of another process outside the Gstreamer core framework and is part of the player(s) (there are probably multiple AV players in the PS3, one for DRM Blu-ray, one for DRM IP streams and a non-DRM gstreamer player, the last two may be combined and outside the gstreamer core).
Fluendo Gstreamer
Fluendo was founded in 2004 to address the multimedia issue in GNU/Linux and Free Software in General. Fluendo employs several of the central developers of the GStreamer multimedia framework, which is quickly establishing itself as the de-facto standard multimedia framework for GNU/Linux and UNIX systems. Fluendo provides a wide range of products under and above GStreamer including proprietary codecs (together with their respective patent licenses), a streaming server, a DVD player and a media center.
If this is the case then the Gstreamer core would still require disclosure.
Gstreamer plug-in and application architecture .... minimal reciprocal disclosure requirements upon OEMs , what is minimal and why the qualification OEM? Edit:
Fluendo and Collabora employ or are owned by the developers of Gstreamer. They can legally bypass the LGPL disclosure requirements for code they wrote.
So while I believe the PS3 is using Gstreamer based on functionality, Marlin DRM using Gstreamer, it being the Standard for Linux and embedded, Sony using it in all their SNAP developer supported platforms and there being no changes from the GTK/cairo/gstreamer/pango webkit to Posix/cairo/gstreamer/pango that would indicate gstreamer is not supported in the PS3, I can't find any links to prove this or to prove an exception for the Gstreamer core disclosure requirements.
The fallback would be Sony writing a Gstreamer core in a clean room which would not require disclosure.
Or possibly Sony lawyers gave an opinion that an encrypted OS where there is no possibility of using the LGPL disclosed software source being used by the user to update or modify the code gives Sony a pass for ALL LGPL code in the PS3 thus the black hole where the PS3 should be as far as disclosures. (It would help if the primary gstreamer contributors since it was public funded (and totally free) agreed to not test this opinion.)
If the above is true then Sony now disclosing webkit and Cairo might mean that these libraries will be used by third party applications or/and are not encrypted on the PS3 Hard Disk. Not encrypted also means faster. There might as a result be a narrow open nitch in the PS3 for LGPL applications by even home brew, the webkit port providing all the tools to do this. The SNAP developer program then applies to the PS3 also.
One final point: Games and Audio-Video need protection and I assume Sony spent a lot of effort protecting these two areas as well as thought in how to properly support them. In 2004 Gstreamer was the AV leader and it's modular design best suited to a platform with a 10 year life. As articles point out there was no other choice for developers; there still isn't as Gstreamer is now being ported to Android by Platform developers.