|Home >> All >> org >> esau|
|||org.esau.ptarmigan.* (36)||||org.esau.ptarmigan.impl.* (25)||||org.esau.ptarmigan.impl.filter.* (18)|
|||org.esau.ptarmigan.impl.test.* (1)||||org.esau.ptarmigan.util.* (9)|
org.esau.ptarmigan.util: Ptarmigan's factory and interface.
org.esau.ptarmigan.impl.test: The default implementation.
Generator: Generator The main interface to the Ptarmigan SAX event generator. Metadata Extraction Ptarmigan's forté is the extraction of metadata from media files. Providing an InputStream or system-id in an InputSource to be fed to Ptarmigan will produce SAX events conforming to the Ptarmigan schema. Convenient Data Positioning Apart from extracting the metadata, you can have Ptarmigan position the input stream to the start of the MPEG (or other) data. This is especially useful for one-pass consumption. To use this feature you must: provide a BufferedInputStream in the InputSource set the PROPERTY_READ_LIMIT ...
B4SFilter: B4SFilter -- transforms B4S playlist to ptarmigan playlist Example source: <?xml version="1.0" encoding='UTF-8' standalone="yes"?> <WinampXML> <!- Generated by: Nullsoft Winamp3 version 3.0 -> <playlist num_entries="4" label="Playlist 001"> <entry Playstring="file:C:\work\java\ptarmigan\ptarmigan\test\none.mp3"> <Name>none</Name> <Length>2247</Length> </entry> <entry Playstring="file:C:\music\Jazz\Vocals\Billie Holiday\Body and Soul\01 - Body And Soul.mp3"> <Name>Billie Holiday - Body And Soul</Name> <Length>383530</Length> ...
ASXFilter: ASXFilter -- transforms ASX playlist to ptarmigan playlist Example source: <ASX version="3.0"> <ABSTRACT>This is a sample asx file used as playlist</ABSTRACT> <TITLE>Windows Media Playlist Demo</TITLE> <AUTHOR>Reed Esau</AUTHOR> <COPYRIGHT>2002 Reed Esau</COPYRIGHT> <ENTRY> <REF href="File1.asf" /> <ABSTRACT>Link to a local file on the same folder</ABSTRACT> </ENTRY> <ENTRY> <REF href="mms://media.phm.lu/File2.asf" /> <ABSTRACT>a file streamed from a media server on the network</ABSTRACT> ...
GeneratorImpl: GeneratorImpl From which the source is identified and which the parsers are launched Instances of this class parse media files of different formats (mp3, ogg, pls, etc.) and generate SAX events describing the metadata of those files which can then be consumed, such as for data storage. Those SAX events are typically used to build a Document which in turn is transformed to an object useable by the caller. IMPLEMENTATION DETAILS The algorithm used is designed for one-pass usage. It requires the use of a buffered stream where a marker can be set to sniff ahead for tags. One at a time, give each parser ...
RIFFFilter: Extract metadata from a Resource Interchange File Format (RIFF) native tag format. This doesn't produce any SAX events at present and merely jumps over RIFF to get to other data. However, it could be extended to produce SAX events describing the RIFF content. References http://ccrma-www.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/ http://www.midi.org/about-midi/rp29spec(rmid).pdf
CountingInputStream: Counts the number of bytes that pass through it. Note that the counter in this filter is independent of the mark/reset logic. If you wish to reset the counter when you reset the mark, you'll have to do so manually with a call to resetCount(). Note that this class has its own renamed read() methods. This is to insulate a buffered parent class that will read-ahead as necessary.
PtarmiganTest: Test Suite for the default implementation of Ptarmigan This suite presently relies on JDOM to (1) build documents from SAX events and (2) output XML. This suite presently relies on xmlunit.Diff to detect parsing problems. TODO: how to handle different property/feature combinations? Different directories for test files? Something in the filename?
GeneratorFactory: Generator Factory Loads the default Generator implementation via Jakarta Commons Discovery. See the Generator inteface for usage. Eventually this will be expanded to support: TODO: add DiscoverClass when jakarta.commons.discovery supports multiple for use with ByteStreamSource, CharacterStreamSource, etc.
ID3v1Filter: Extract metadata from an ID3v1 tag It's a 128-byte block at the end of a file. May appear on MP3, Ogg, Flac, and other files. Note that it is unsupported with streams, at least for now. This is because of the overhead required in scanning to the end of the file.
MIDIFilter: Extract metadata from MIDI native tag format. This doesn't produce anything but detect mime-type. However, it could be extended to produce SAX events describing more info on the track. RIFF/RMID prefixes should have already been consumed.
RandomAccessFileSource: Interface for those filters which feed on Files, either for random access or just to extract information from the filename itself. This should be used as a last-resort, only if you can't implement as a ByteStreamSource or CharacterStreamSource.
MPEGFilter: Extract metadata from MPEG frame data, if present TODO: add VBR calculation Reference: http://www.dv.co.yu/mpgscript/mpeghdr.htm
VorbisCommentFilter: Extract metadata from an OGG Vorbis native tag format Following the three header packets, all packets in a Vorbis I stream are audio.
VorbisFilter: Extract metadata from an OGG Vorbis native tag format Following the three header packets, all packets in a Vorbis I stream are audio.
PlaylistFilter: PlaylistFilter -- transforms XML playlist to ptarmigan playlist All playlists are presently implemented as CharacterStreamSource
MultiMap: A map where more than one value can be associated with a key. Typically used for assembling values for output in a sequence.
M3UFilter: M3UFilter -- transforms M3U playlist to ptarmigan playlist TODO: recursively scan all playlists found.
PLSFilter: PLSFilter -- transforms PLS playlist to ptarmigan playlist TODO: recursively scan all playlists found.
BaseFilter: BaseFilter -- abstract filter with a few services TODO: how should in_chars be handled?
Range: Range A simple holder for a numeric range. Uses long to hold values.
MPEGFrameHeader: MPEG Frame Header Parse and validate a 4-byte MPEG Header
SimplePlaylistFilter: SimplePlaylistFilter -- base class for M3U and PLS filters
XMLPlaylistFilter: XMLPlaylistFilter -- abstract base class for XML playlists
ByteStreamSource: Interface for those filters which feed on InputStreams
BinaryFilter: BinaryFilter -- abstract filter for Binary sources