Commit 5b276e3b authored by Markus Koschany's avatar Markus Koschany

Import Debian changes 0.6.0-4

cortado (0.6.0-4) unstable; urgency=medium

  * Team upload.
  * Use compat level 11.
  * Declare compliance with Debian Policy 4.1.3.
  * Move the package to salsa.debian.org.
  * Add utf8-encoding.patch to fix FTBFS with Java 9.
  * Add sun.audio-Java-9.patch and fix another FTBFS with Java 9...
    Thanks to Adrian Bunk for the report. (Closes: #893128)
parents 3d5c6a09 3b85aea6
This diff is collapsed.
HACKING NOTES for Cortado
-------------------------
directory layout:
- src: source code
- com/jcraft: copy of JCraft JOgg and Jorbis source code, plus some changes
- com/fluendo: Source code written by Fluendo
- utils: utitity classes used by jst, jheora, examples
- jst: a java port of the GStreamer 0.10 design
- jheora: a java implementation of the Theora video codec
- jkate: a basic java implementation of the Kate codec
- jtiger: a basic Kate stream renderer (simple text/images only for now)
- codecs: additional codecs; currently contains the Smoke codec
- plugin: plugins implementing/wrapping sources/decoders/sinks
- examples: example programs
- stubs: stubs that contain minimal definitions for other classes
to allow compilation
- sun/audio: stubs for sun.audio.*
- javax/sound:
- sampled: stubs for javax.sound.sampled.*
- output: files generated as part of the build
- build: built class files
- debug: debug build
- release: release build
- dist: resulting jar files
- debug: debug versions of all cortado .jars
- release: release versions of all cortado .jars
- applets: all applet jars
- src: source distributions
NOTES
-----
- from the ant build file, we should be able to:
- make a tarball with all the source and build stuff:
"ant dist" (done)
- generate the separate jars
"ant jar-jcraft ..."
- build the examples
- generate stripped and debug versions of the applets, with specific plugins
included
"ant applets" or "ant applet-ovt applet-mmjs"
"ant applets-debug"
- the plan is to:
- build com.fluendo.utils in a jar
- build com.jcraft in a jar
- build com.fluendo.jheora in a jar (relying on jcraft and utils jars)
- build com.fluendo.jst in a jar (relying on utils)
- build com.fluendo.plugin into a jar (all combined, relying on all above)
- FIXME: what to do with the examples ?
HISTORY
------
- applet sizes:
- cortado ovt debug:
- 2006-05-19: 259354 bytes
- cortado ovt stripped:
- 0.1.2.1, 2005-04-29: 179327 bytes
- 0.1.2.1, 2006-01-17: 191901 bytes (after JST implementation)
- 0.2.0, 2006-05-19: 189596 bytes
- 0.2.2, 2006-10-26: 198094 bytes
RELEASING
---------
moap doap -v 0.2.2 mail -f thomas@fluendo.com thomas@apestaart.org
moap doap -v 0.2.2 mail -f thomas@apestaart.org theora@xiph.org
/* Cortado - a video player java applet
* Copyright (C) 2004 Fluendo S.L.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
*/
/* Jheora
* Copyright (C) 2004 Fluendo S.L.
*
* Written by: 2004 Wim Taymans <wim@fluendo.com>
*
* Many thanks to
* The Xiph.Org Foundation http://www.xiph.org/
* Jheora was based on their Theora reference decoder.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License
* as published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* JKate
* Copyright (C) 2008 ogg.k.ogg.k <ogg.k.ogg.k@googlemail.com>
*
* Parts of JKate are based on code by Wim Taymans <wim@fluendo.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License
* as published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* JTiger
* Copyright (C) 2008 ogg.k.ogg.k <ogg.k.ogg.k@googlemail.com>
*
* Parts of JTiger are based on code by Wim Taymans <wim@fluendo.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License
* as published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* Smoke Codec
* Copyright (C) <2004> Wim Taymans <wim@fluendo.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
This is Cortado 0.6.0, "Increasing increase"
Changes since 0.5.2
* support for Theora files with 4:4:4 and 4:2:2 sampling
* Reinforced compatibility with Java 1.1
* Improved support for videos with dropped frames
* Much improved support for Kate subtitles (including menu to
select subtitle stream)
* More robust scanning for stream duration
* Fixed Vorbis surround sound
* Release binaries should export a subset of the HTML5
media API again
Changes since 0.5.1
* make keepAspect ignorable again
* minor optimizations in the decoder
* buffer tweaks to prevent unwanted frame drops
* contents of plugins.ini moved into code to work around
resource-loading problems in ancient JVMs
* fix problems with several audio streams
* optimizations in YUV-to-RGB code
Changes since 0.5.0:
* Fix for ticket #1565: Cortado doesn't handle
incomplete packets correctly.
* On very slow machines that can't handle video in realtime,
completely skip decoding of inter frames and process
keyframes only to ensure smooth audio decoding.
* Improved support for older VMs.
Changes since 0.2.2:
* Support for files encoded with Theora 1.1
* Faster YUV to RGB conversion with better results
* Correct a bug in the iDCT10 implementation
* Basic support for embedded Ogg Kate streams
* Seeking fixed for files with an Ogg Skeleton track
* Maintained compatibility with the Microsoft VM
Changes since 0.2.1:
* add statusHeight property
* add autoPlay property
* add documentBase property
* add showStatus property
* add hideTimeout property
* add JavaScript methods
* seek slider is easier to manipulate
* framerate property is removed
* fix locking behaviour
* seek slider disabled on Microsoft VM
* set User-Agent and add SVN info to About dialog
* extensively tested on Windows XP and 2000 with Microsoft VM
* extensively tested on Linux, Windows XP and 2000 with Sun VM
1.4.0_01, 1.4.2_12, 1.5.0_03, 1.5.0_06, 1.5.0_09
Bugs fixed since 0.2.1:
* 390 : README not inline with code
* 423 : cortado: playback of ogg audio
* 63 : stops after a few frames on certain browser/jdk combinations
* 149 : cortado 0.1.0 freeze because of javax.sound
* 155 : implement pause/play in cortado, with javascript methods
* 157 : Cortado is not doing any playback if the file has no audio while
the applet is loaded with audio=true parameter
* 317 : cortado should do typefinding on its input instead of relying on
mime type from server
* 384 : Cortado: Only play on click ­[in video-window]
* 389 : Cortado needs option to make status bar always visible
* 390 : README not inline with code
* 470 : stop() method raise a java.security.AccessControlException when
calling
Changes since 0.2.0:
* Documentation updates
* Very preliminary Annodex support
Bugs fixed since 0.2.0:
* 390 : README not inline with code
Changes since 0.1.2:
* Seeking in on-demand files and streams
* Deadlock fixes
* Build now uses ant
* Shutdown fixes
* Autoplugging based on mimetype; makes local file playback work
* Autodect audio backend from sun.audio or javax.sound
Bugs fixed since 0.1.2:
* 265 : NullPointerException
* 142 : JPEG applet's internal buffering produces "lag"
* 367 : cortado fails to build on ubuntu dapper
Changes since 0.1.0:
* multiple instances of cortado now work correctly
* various playback and buffering fixes
WHAT IT IS
----------
This is Cortado, a multimedia framework for Java written by Fluendo.
It contains:
- JST, a port of the GStreamer 0.10 design to Java
- jcraft, a copy of the JCraft JOgg/Jorbis code
- jheora, an implementation of Theora in Java
- jkate, an implementation of a basic Kate decoder in Java
- jtiger, a basic Kate renderer (simple text/images only for now)
- codecs (currently only containing the Smoke codec, a variant on Jpeg)
- JST plugins for:
- HTTP source element
- Ogg and Multipart demuxers
- Theora, JPEG and Smoke video decoders
- Vorbis and MuLaw audio decoders
- Java 1.1 sun.audio API audio sink
- Java 1.4 javax.sound.sampled API audio sink
- Overlay element
- Kate text decoder and overlay
- Selector element
- examples
- applets
This release has support for
- seeking in on-demand files
- the above-mentioned plugins
- basic HTTP authentication
- buffering
FAQ
---
For frequently asked questions check our website at http://theora.org/cortado/
If any questions should be added, let us know.
BUGS
----
You can file bugs at Xiph's issue tracker:
https://trac.xiph.org/newticket?component=Cortado
Make sure to choose the "Cortado" component.
BUILDING
--------
The build uses ant exclusively now.
Normally, running
ant
Should build everything, if your system is setup correctly.
You can copy build.config.sample to build.config and tweak it to choose
certain settings.
Run
ant -p
to see all the possible targets.
EXAMPLES
--------
You need a Java Virtual Machine to run the example code.
You also need to set the classpath to your build tree when running
(output/build/debug or output/build/stripped)
- Jikes does not have a VM
- gij (the GNU Java VM) does not have a javax.sound.sampled implementation, so
fails when playing audio, but can still play video-only files
- Sun Java VM works for me:
/usr/java/jre1.5.0_04/bin/java -cp output/build/debug com.fluendo.examples.Player http://stream.fluendo.com:8850
(with a JPackage java-1.5.0-sun package)
/usr/lib/jvm/java-1.5.0-sun-1.5.0.05/jre/bin/java -cp output/build/debug com.fluendo.examples.Player http://stream.fluendo.com:8850
USAGE
-----
Embed the applet in a web page with code like this:
----
<html>
<head>
</head>
<body>
<applet code="com.fluendo.player.Cortado.class"
archive="cortado.jar"
width="352" height="288">
<param name="url" value="http://localhost/test6.ogg"/>
<param name="local" value="false"/>
<param name="duration" value="232"/>
<param name="keepAspect" value="true"/>
<param name="video" value="true"/>
<param name="audio" value="true"/>
<param name="bufferSize" value="200"/>
<param name="userId" value="user"/>
<param name="password" value="test"/>
</applet>
</body>
</html>
----
parameters:
-----------
url: string
the URL to load, must be a fully qualified URL.
IMPORTANT: if the applet is not signed, the hostname of the
url *is required* to be the same as the hostname of the link
to the page with the applet tag. This is a Java security limitation.
seekable: enum (auto|true|false)
Whether or not you can seek in the file. For live streams,
this should be false; for on-demand files, this can be true.
In automatic mode, the stream becomes seekable when the content
length is discovered.
Defaults to auto
live enum (auto|true|false)
Whether or not this file is a live stream. For live streams,
this should be true, which will disable the PAUSE button.
For on-demand files, this can be false.
In automatic mode, the stream becomes non-live when the content
length is discovered.
Defaults to auto
duration: int
Length of clip in seconds. Needed when seekable is true,
to allow the seek bar to work.
keepAspect: boolean
Try to keep the natural aspect of the video when resizing the
applet window. true or false.
Defaults to true
ignoreAspect: boolean
Ignore the aspect ratio as signalled by the video, always assume
square pixels. true or false.
Defaults to false
video: boolean
Use video. When not using video, this property will not create
resources to play a video stream. true or false.
Defaults to true
audio: boolean
Use audio. When not using audio, this property will not create
resources to play an audio stream. true or false.
Defaults to true
kateIndex: int
Use text from the given Kate stream (indexed from zero).
The first Kate stream found will have index 0, the second will
have index 1, etc.
Selecting a Kate stream by index takes priority over selecting
by language and/or category.
At most one Kate stream may be enabled at a time.
Defaults to -1 (none)
kateLanguage: string
Use text from the Kate stream with the given language (ISO 639-1 tag).
Selecting a Kate stream by index takes priority over selecting
by language and/or category.
At most one Kate stream may be enabled at a time.
Defaults to null (none)
kateCategory: string
Use text from the Kate stream with the given category.
Selecting a Kate stream by index takes priority over selecting
by language and/or category.
At most one Kate stream may be enabled at a time.
Defaults to null (none)
statusHeight: int
The height of the status area (default 12)
autoPlay: boolean
Automatically start playback (default true)
showStatus: enum (auto|show|hide)
Controls how to make the status area visible.
auto will show the status area when hovered over with the mouse.
hide will only show the status area on error.
show will always show the status area.
(default auto)
showSpeaker: boolean
Show a speaker icon when audio is available (default true)
showSubtitles: boolean
Show a subtitles icon when subtitles are available (default true)
hideTimeout: int
Timeout in seconds to hide the status area when showStatus is
auto. This timeout is to make sure that the status area is visible
for the first timeout seconds of playback so that the user can see
that there is a clickable status area too.
(default 0)
bufferSize: int
The size of the network buffer, in KB.
A good value is max Kbps of the stream * 33
Defaults to 200
bufferLow: int
Percentage of low watermark for buffer. Below this, the applet
will stop playing and rebuffer until the high watermark is
reached.
Defaults to 10
bufferHigh: int
Percentage of high watermark for buffer. At startup or when
rebuffering, the applet will not play until this percentage of
buffer fill status is reached.
Defaults to 70
userId: string
user id for basic authentication.
password: string
password for basic authentication.
debug: int
debug level, 0 - 4. Defaults to 3. Output goes to the Java
console.
Using javascript
----------------
The applet parameters can be changed from javascript by calling the
setParam(key, value) on the applet. After setting the new parameters in the
applet it needs to be restarted with the restart() method for the changes to
take effect.
Likewise, applet parameters may be queried using getParam(key, default).
The following piece of HTML demonstrates switching URLs with an without sound
using javascript:
----
<html>
<head>
</head>
<body>
<script language="javascript">
function restart() {
document.applets[0].restart();
}
function loadUrl(uri, audio) {
document.applets[0].setParam("audio", audio);
document.applets[0].setParam("url", uri);
restart();
}
</script>
<applet archive="cortado.jar" code="com.fluendo.player.Cortado.class" width="320" height="240">
<param name="url" value="http://localhost:8800"/>
<param name="local" value="false"/>
<param name="framerate" value="5.0"/>
<param name="keepaspect" value="true"/>
<param name="video" value="true"/>
<param name="audio" value="true"/>
</applet>
<br/>
<br/>
<button onClick="restart()">
Restart
</button>
<button onClick="loadUrl('http://localhost:8800', 'true')">
With Audio
</button>
<button onClick="loadUrl('http://localhost:8802', 'false')">
Without Audio
</button>
</body>
</html>
----
The applet can be controlled with the following javascript methods:
doPlay(): Start playback
doPause(): Pause playback
doStop(): Stop playback
doSeek(double pos); seek to a new position, must be between 0.0 and 1.0.
getPlayPosition(): returns current position in seconds
== Cortado applet ==
Release notes for Cortado 0.6.0, "Increasing increase"
=== Features of this release ===
Please refer to the NEWS file for an overview of changes.
=== Download ===
You can find source releases and built applets of cortado in the
download directory:
http://downloads.xiph.org/releases/cortado/
=== Cortado Homepage ===
More details can be found on the project's website:
http://theora.org/cortado/
=== Support and Bugs ===
We use an issue tracker for bug reports and feature requests:
https://trac.xiph.org/
=== Developers ===
All code is in GIT and can be checked out from there.
It is hosted on http://git.xiph.org/?p=cortado.git
 
TODO for cortado
- recover from discont in oggdemux
- implement Query duration/position, not sure how to do that since
we only have the byte position. possibly put duration as a param or
maybe do a single seek for the last page to get the last granule position.
We need position/duration in time to implement current position in the
GUI since using the byte position would result in values way past the
actual playback position because of buffering.
- clean up some issues with pause/play stuttering.
- disable sound option
- possibly use java2 image functions?
- network speed?
- pop up an error dialog for java.security.AccessControlException when
doing at java.net.URLConnection.getContentType(Unknown Source)
at com.fluendo.player.Cortado.start(Cortado.java:432)
at sun.applet.AppletPanel.run(Unknown Source)
to tell the user his stream and his applet need to be on the same server
- generate cortado.spec
- generate Dist.java during build only when it is not already there
wim
# properties in this file can be customized in build.config
# please do not customize this file
# product information
product.name cortado
# Product version or GIT for git snapshot
product.version 0.6.0
# which compiler to use; "modern" or "jikes" currently work
# used by all javac tasks by default
build.compiler extJavac
# choose between debug and stripped builds
build.type debug
# what things to debug in the debug build
build.debuglevel lines,vars,source
# choose additional compiler flags
# FIXME: these can be used to set debug flags for jikes with ant < 1.6.5
build.debug.flags
build.stripped.flags
This diff is collapsed.
<Project
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns="http://usefulinc.com/ns/doap#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:admin="http://webns.net/mvcb/">
<name>Cortado</name>
<shortname>cortado</shortname>
<homepage rdf:resource="http://www.theora.org/cortado/" />
<created>2004-11-19</created>
<shortdesc xml:lang="en">
Cortado is a multimedia framework for Java written by Fluendo.
</shortdesc>
<description xml:lang="en">
This is Cortado, a multimedia framework for Java written by Fluendo.
It contains:
- JST, a port of the GStreamer 0.10 design to Java
- jcraft, a copy of the JCraft JOgg/Jorbis code
- jheora, an implementation of Theora in Java
- codecs (currently only containing the Smoke codec, a variant on Jpeg)
- JST plugins for: