summaryrefslogtreecommitdiff
path: root/songdbj/javazoom/spi/mpeg/sampled/file/MpegAudioFileFormat.java
blob: afdc4c5e9c27dd343b986103395d1dcf062653b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
 * MpegAudioFileFormat.
 *
 * JavaZOOM : mp3spi@javazoom.net
 * 			  http://www.javazoom.net
 *
 *-----------------------------------------------------------------------
 *   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.
 *----------------------------------------------------------------------
 */
package javazoom.spi.mpeg.sampled.file;

import java.util.Map;

import javax.sound.sampled.AudioFormat;

import org.tritonus.share.sampled.file.TAudioFileFormat;

/**
 * @author JavaZOOM
 */
public class MpegAudioFileFormat extends TAudioFileFormat
{
	/**
	 * Contructor.
	 * @param type
	 * @param audioFormat
	 * @param nLengthInFrames
	 * @param nLengthInBytes
	 */
	public MpegAudioFileFormat(Type type, AudioFormat audioFormat, int nLengthInFrames, int nLengthInBytes, Map properties)
	{
		super(type, audioFormat, nLengthInFrames, nLengthInBytes, properties);
	}

	/**
	 * MP3 audio file format parameters.
	 * Some parameters might be unavailable. So availability test is required before reading any parameter.
	 *
	 * <br>AudioFileFormat parameters.
	 * <ul>
	 * <li><b>duration</b> [Long], duration in microseconds.
	 * <li><b>title</b> [String], Title of the stream.
	 * <li><b>author</b> [String], Name of the artist of the stream.
	 * <li><b>album</b> [String], Name of the album of the stream.
	 * <li><b>date</b> [String], The date (year) of the recording or release of the stream.
	 * <li><b>copyright</b> [String], Copyright message of the stream.
	 * <li><b>comment</b> [String], Comment of the stream.
	 * </ul>
	 * <br>MP3 parameters.
	 * <ul>
	 * <li><b>mp3.version.mpeg</b> [String], mpeg version : 1,2 or 2.5
	 * <li><b>mp3.version.layer</b> [String], layer version 1, 2 or 3
	 * <li><b>mp3.version.encoding</b> [String], mpeg encoding : MPEG1, MPEG2-LSF, MPEG2.5-LSF
	 * <li><b>mp3.channels</b> [Integer], number of channels 1 : mono, 2 : stereo.
	 * <li><b>mp3.frequency.hz</b> [Integer], sampling rate in hz.
	 * <li><b>mp3.bitrate.nominal.bps</b> [Integer], nominal bitrate in bps.
	 * <li><b>mp3.length.bytes</b> [Integer], length in bytes.
	 * <li><b>mp3.length.frames</b> [Integer], length in frames.
	 * <li><b>mp3.framesize.bytes</b> [Integer], framesize of the first frame. framesize is not constant for VBR streams.
	 * <li><b>mp3.framerate.fps</b> [Float], framerate in frames per seconds.
	 * <li><b>mp3.header.pos</b> [Integer], position of first audio header (or ID3v2 size).
	 * <li><b>mp3.vbr</b> [Boolean], vbr flag.
	 * <li><b>mp3.vbr.scale</b> [Integer], vbr scale.
	 * <li><b>mp3.crc</b> [Boolean], crc flag.
	 * <li><b>mp3.original</b> [Boolean], original flag.
	 * <li><b>mp3.copyright</b> [Boolean], copyright flag.
	 * <li><b>mp3.padding</b> [Boolean], padding flag.
	 * <li><b>mp3.mode</b> [Integer], mode 0:STEREO 1:JOINT_STEREO 2:DUAL_CHANNEL 3:SINGLE_CHANNEL
	 * <li><b>mp3.id3tag.genre</b> [String], ID3 tag (v1 or v2) genre.
	 * <li><b>mp3.id3tag.track</b> [String], ID3 tag (v1 or v2) track info.
	 * <li><b>mp3.id3tag.encoded</b> [String], ID3 tag v2 encoded by info.
	 * <li><b>mp3.id3tag.composer</b> [String], ID3 tag v2 composer info.
	 * <li><b>mp3.id3tag.grouping</b> [String], ID3 tag v2 grouping info.
	 * <li><b>mp3.id3tag.disc</b> [String], ID3 tag v2 track info.
	 * <li><b>mp3.id3tag.v2</b> [InputStream], ID3v2 frames.
	 * <li><b>mp3.id3tag.v2.version</b> [String], ID3v2 major version (2=v2.2.0, 3=v2.3.0, 4=v2.4.0).
	 * <li><b>mp3.shoutcast.metadata.key</b> [String], Shoutcast meta key with matching value.
	 * <br>For instance :
	 * <br>mp3.shoutcast.metadata.icy-irc=#shoutcast
	 * <br>mp3.shoutcast.metadata.icy-metaint=8192
	 * <br>mp3.shoutcast.metadata.icy-genre=Trance Techno Dance
	 * <br>mp3.shoutcast.metadata.icy-url=http://www.di.fm
	 * <br>and so on ...
	 * </ul>
	 */
	public Map properties()
	{
		return super.properties();
	}
}