diff options
author | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-05-17 20:50:26 +0000 |
---|---|---|
committer | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-05-17 20:50:26 +0000 |
commit | 0101c701e02347ee4bf07fd1d8b9c9e833de044d (patch) | |
tree | e0958d9e41e880727d319e8448257153ef0e9f01 /manual/appendix | |
parent | 58995c1e2fb4d87bafed0df03519f2133dbb5814 (diff) | |
download | rockbox-0101c701e02347ee4bf07fd1d8b9c9e833de044d.tar.gz rockbox-0101c701e02347ee4bf07fd1d8b9c9e833de044d.zip |
FS#12110: Rework of the audio format and metadata section in the manual. Add notes for several audio formats, correct the file extensions for several formats, describe the feature sets supported by the different metadata formats, describe limitations of the metadata handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29894 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'manual/appendix')
-rw-r--r-- | manual/appendix/file_formats.tex | 259 |
1 files changed, 186 insertions, 73 deletions
diff --git a/manual/appendix/file_formats.tex b/manual/appendix/file_formats.tex index 0c4797528a..e6bde414de 100644 --- a/manual/appendix/file_formats.tex +++ b/manual/appendix/file_formats.tex | |||
@@ -104,101 +104,214 @@ | |||
104 | \end{rbtabular} | 104 | \end{rbtabular} |
105 | 105 | ||
106 | \opt{swcodec}{ | 106 | \opt{swcodec}{ |
107 | \chapter{Audio and metadata formats} | ||
107 | \section{\label{ref:Supportedaudioformats}Supported audio formats} | 108 | \section{\label{ref:Supportedaudioformats}Supported audio formats} |
108 | \subsection{Lossy Codecs} | 109 | \subsection{Lossy Codecs} |
109 | \begin{rbtabular}{\textwidth}{l>{\raggedright}p{6em}X}% | 110 | \begin{rbtabular}{\textwidth}{l>{\raggedright}p{6em}X}% |
110 | {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{} | 111 | {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{} |
111 | ATSC A/52 & \fname{.a52}, \fname{.ac3} & Supports downmixing for playback of 5.1 streams in stereo\tabularnewline | 112 | ATSC A/52 (AC3) |
112 | ADX & \fname{.adx} & \tabularnewline | 113 | & \fname{.a52}, \fname{.ac3}, \fname{.rm}, \fname{.ra}, \fname{.rmvb} |
113 | Advanced Audio Coding & \fname{.m4a}, \fname{.m4b}, \fname{.mp4} & \tabularnewline | 114 | & Supports downmixing for playback of 5.1 streams in stereo\\ |
114 | MPEG audio & \fname{.mp1}, \fname{.mpa}, \fname{.mp2}, \fname{.mp3} & \tabularnewline | 115 | ADX |
115 | Musepack & \fname{.mpc} & Supports SV7 and SV8 in mono/stereo \tabularnewline | 116 | & \fname{.adx} |
116 | OGG/Vorbis & \fname{.ogg}, \fname{.oga} & Playback of some old ``floor 0'' files may fail\tabularnewline | 117 | & \\ |
117 | Sony Audio & \fname{.oma}, \fname{.aa3} & \tabularnewline | 118 | Advanced Audio Coding |
118 | RealAudio & \fname{.rm}, \fname{.ra}, \fname{.rmvb} & \tabularnewline | 119 | & \fname{.m4a}, \fname{.m4b}, \fname{.mp4}, \fname{.rm}, \fname{.ra}, \fname{.rmvb} |
119 | Speex & \fname{.spx} & \tabularnewline | 120 | \nopt{clipv1,c200v2}{ |
120 | Dialogic telephony type & \fname{.vox} & \tabularnewline | 121 | & Supports AAC-LC, -HEv1, and -HEv2 profiles\\} |
121 | Windows Media Audio Standard & \fname{.wma}, \fname{.wmv}, \fname{.asf} & \tabularnewline | 122 | \opt{clipv1,c200v2}{ % low memory targets (CODEC_SIZE <= 512 KB) |
122 | Windows Media Audio Professional & \fname{.wma}, \fname{.wmv}, \fname{.asf} & \tabularnewline | 123 | & Supports AAC-LC profile\\} |
124 | MPEG audio | ||
125 | & \fname{.mpa}, \fname{.mp1}, \fname{.mp2}, \fname{.mp3} | ||
126 | & MPEG 1/2/2.5 Layer 1/2/3\\ | ||
127 | Musepack | ||
128 | & \fname{.mpc} | ||
129 | & Supports SV7 and SV8 in mono/stereo \\ | ||
130 | OGG/Vorbis | ||
131 | & \fname{.ogg}, \fname{.oga} | ||
132 | & Playback of some old ``floor 0'' files may fail on low memory targets. | ||
133 | Files with album art larger than available RAM will be skipped. | ||
134 | Chained Ogg files are not supported.\\ | ||
135 | Sony Audio | ||
136 | & \fname{.oma}, \fname{.aa3}, \fname{.rm}, \fname{.ra}, \fname{.rmvb} | ||
137 | & Supports ATRAC3\\ | ||
138 | RealAudio | ||
139 | & \fname{.rm}, \fname{.ra}, \fname{.rmvb} | ||
140 | & Supports RealAudio G2 (Cook)\\ | ||
141 | Speex | ||
142 | & \fname{.spx} | ||
143 | & \\ | ||
144 | Dialogic telephony type | ||
145 | & \fname{.vox} | ||
146 | & \\ | ||
147 | Windows Media Audio Standard | ||
148 | & \fname{.wma}, \fname{.wmv}, \fname{.asf} | ||
149 | & \\ | ||
150 | Windows Media Audio Professional | ||
151 | & \fname{.wma}, \fname{.wmv}, \fname{.asf} | ||
152 | & \\ | ||
123 | \end{rbtabular} | 153 | \end{rbtabular} |
154 | |||
155 | \note{AAC-HE profiles might not play in realtime on all devices due to CPU | ||
156 | performance requirements.} | ||
124 | 157 | ||
125 | \subsection{Lossless Codecs} | 158 | \subsection{Lossless Codecs} |
126 | \begin{rbtabular}{\textwidth}{lp{6em}X}% | 159 | \begin{rbtabular}{\textwidth}{lp{6em}X}% |
127 | {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{} | 160 | {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{} |
128 | Audio Interchange File Format & \fname{.aif}, \fname{.aiff} & AIFF supports following formats:\\ | 161 | Audio Interchange File Format |
129 | & & Linear PCM 8/16/24/32 bit\\ | 162 | & \fname{.aif}, \fname{.aiff} |
130 | & & IEEE float 32/64 bit\\ | 163 | & Linear PCM 8/16/24/32 bit, IEEE float 32/64 bit, ITU-T G.711 a-law/$\mu$-law, |
131 | & & ITU-T G.711 a-law/$\mu$-law\\ | 164 | QuickTime IMA ADPCM\\ |
132 | & & QuickTime IMA ADPCM\\ | 165 | Monkey's Audio |
133 | \opt{gigabeatf,iriverh100,iriverh300,iaudiox5,iaudiom5,iaudiom3,ipodnano2g,clipv1}{ | 166 | & \fname{.ape}, \fname{.mac} |
134 | Monkey's Audio & \fname{.ape}, \fname{.mac} & -c1000 to -c3000 | 167 | \opt{gigabeatf,iriverh100,iriverh300,iaudiox5,iaudiom5,iaudiom3,ipodnano2g,clipv1}{ |
135 | files decode fast enough to be useful.} | 168 | & -c1000 to -c3000 files decode fast enough to be useful.\\} |
136 | \opt{gigabeats}{ | 169 | \opt{gigabeats}{ |
137 | Monkey's Audio & \fname{.ape}, \fname{.mac} & } | 170 | & \\} |
138 | \nopt{ipodnano2g}{ | 171 | \nopt{ipodnano2g}{\opt{ipod,iriverh10,iriverh10_5gb,mrobe100,sansa,vibe500}{ |
139 | \opt{ipod,iriverh10,iriverh10_5gb,mrobe100,sansa,vibe500}{ | 172 | & Only -c1000 files decode fast enough to be useful.\\}} |
140 | Monkey's Audio & \fname{.ape}, \fname{.mac} & Only -c1000 files decode fast | 173 | Sun Audio |
141 | enough to be useful.} | 174 | & \fname{.au}, \fname{.snd} |
142 | } | 175 | & Linear PCM 8/16/24/32 bit, IEEE float 32/64 bit, ITU-T G.711 a-law/$\mu$-law\\ |
143 | \\ | 176 | Free Lossless Audio |
144 | Sun Audio & \fname{.au}, \fname{.snd} & Sun Audio supports following formats: \\ | 177 | & \fname{.flac} |
145 | & & Linear PCM 8/16/24/32 bit \\ | 178 | & \\ |
146 | & & IEEE float 32/64 bit\\ | 179 | Apple Lossless |
147 | & & ITU-T G.711 a-law/$\mu$-law\\ | 180 | & \fname{.m4a}, \fname{.mp4} |
148 | Free Lossless Audio & \fname{.flac} & \\ | 181 | & \\ |
149 | Apple Lossless & \fname{.m4a}, \fname{.mp4} & \\ | 182 | Shorten |
150 | Shorten & \fname{.shn} & Seeking not supported.\\ | 183 | & \fname{.shn} |
151 | True Audio & \fname{.tta} & \\ | 184 | & Seeking not supported.\\ |
152 | Wave64 & \fname{.w64} & Wave/Wave64 supports following formats: \\ | 185 | True Audio |
153 | Waveform audio format & \fname{.wav} & Linear PCM 8/16/24/32 bit\\ | 186 | & \fname{.tta} |
154 | & & IEEE float 32/64 bit\\ | 187 | & \\ |
155 | & & ITU-T G.711 a-law/$\mu$-law\\ | 188 | Wave64 |
156 | & & Microsoft ADPCM\\ | 189 | & \fname{.w64} |
157 | & & Intel DVI ADPCM(IMA ADPCM) 2/3/4/5 bit\\ | 190 | & Supports same formats as Waveform audio format.\\ |
158 | & & Dialogic OKI ADPCM\\ | 191 | Waveform audio format |
159 | & & YAMAHA ADPCM\\ | 192 | & \fname{.wav} |
160 | & & Adobe SWF ADPCM\\ | 193 | & Linear PCM 8/16/24/32 bit, IEEE float 32/64 bit, ITU-T G.711 a-law/$\mu$-law, |
161 | Wavpack & \fname{.wv} & \\ | 194 | Microsoft ADPCM, Intel DVI ADPCM (IMA ADPCM) 2/3/4/5 bit, Dialogic OKI ADPCM, |
195 | YAMAHA ADPCM, Adobe SWF ADPCM\\ | ||
196 | Wavpack | ||
197 | & \fname{.wv} | ||
198 | & \\ | ||
162 | \end{rbtabular} | 199 | \end{rbtabular} |
163 | 200 | ||
164 | \subsection{Other Codecs} | 201 | \subsection{Other Codecs} |
165 | \begin{rbtabular}{\textwidth}{l>{\raggedright}p{6em}X}% | 202 | \begin{rbtabular}{\textwidth}{l>{\raggedright}p{6em}X}% |
166 | {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{} | 203 | {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{} |
167 | Atari Sound Format & \fname{.cmc}, \fname{.cm3}, \fname{.cmr}, \fname{.cms}, | 204 | Atari Sound Format |
168 | \fname{.dmc}, \fname{.dlt}, \fname{.mpt}, \fname{.mpd} & \tabularnewline | 205 | & \fname{.cmc}, \fname{.cm3}, \fname{.cmr}, \fname{.cms}, \fname{.dmc}, |
169 | Synthetic music Mobile Application Format & \fname{.mmf} & Supports PCM/ADPCM only \tabularnewline | 206 | \fname{.dlt}, \fname{.mpt}, \fname{.mpd} |
170 | MOD & \fname{.mod} & \tabularnewline | 207 | & \\ |
171 | NES Sound Format & \fname{.nsf}, \fname{.nsfe} & \tabularnewline | 208 | Synthetic music Mobile Application Format |
172 | Atari SAP & \fname{.sap} & \tabularnewline | 209 | & \fname{.mmf} |
173 | Sound Interface Device & \fname{.sid} & \tabularnewline | 210 | & PCM/ADPCM only \\ |
174 | SPC700 & \fname{.spc} & \tabularnewline | 211 | MOD |
212 | & \fname{.mod} | ||
213 | & \\ | ||
214 | NES Sound Format | ||
215 | & \fname{.nsf}, \fname{.nsfe} | ||
216 | & Progress bar and seek use tracks instead of seconds.\\ | ||
217 | Atari SAP | ||
218 | & \fname{.sap} | ||
219 | & \\ | ||
220 | Sound Interface Device | ||
221 | & \fname{.sid} | ||
222 | & \\ | ||
223 | SPC700 | ||
224 | & \fname{.spc} | ||
225 | & \\ | ||
175 | \end{rbtabular} | 226 | \end{rbtabular} |
176 | 227 | ||
177 | \section{\label{ref:SupportedMetadata}Supported metadata tags} | 228 | \section{\label{ref:SupportedMetadata}Supported metadata tags} |
178 | Rockbox supports different metadata formats. In general those tag formats | 229 | Rockbox supports different metadata formats. In general those tag formats |
179 | are ID3 (v1 and v2), APE (v1 and v2), Vorbis, MP4 and ASF. Few codecs use | 230 | are ID3 (v1.0, v1.1, v2.2, v2.3 and v2.4), APE (v1 and v2), Vorbis, MP4 and |
180 | codec specific tags, several codecs do not use any tags yet. The following | 231 | ASF. Few codecs use codec specific tags, several codecs do not use any tags |
181 | table gives an overview about what tag types rockbox supports for which | 232 | yet. The following table gives an overview about what tag types rockbox |
182 | audio file extension. | 233 | supports for which audio file extension. |
183 | 234 | ||
184 | \note{There is always only \emph{one} tag type supported for each file | 235 | \note{There is always only \emph{one} tag type supported for each file |
185 | extension.} | 236 | extension.} |
186 | 237 | ||
187 | \begin{rbtabular}{\textwidth}{lX}% | 238 | \begin{rbtabular}{\textwidth}{lX}% |
188 | {\textbf{Extension} & \textbf{Tag type}}{}{} | 239 | {\textbf{Tag type} & \textbf{File extension}}{}{} |
189 | \fname{.mp1}, \fname{.mpa}, \fname{.mp2}, \fname{.mp3}, | 240 | ID3 & \fname{.mp1}, \fname{.mpa}, \fname{.mp2}, \fname{.mp3}, |
190 | \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.tta} & ID3 \\ | 241 | \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.tta} \\ |
191 | \fname{.mpc}, \fname{.ape}, \fname{.mac}, \fname{.wv} & APE \\ | 242 | APE & \fname{.mpc}, \fname{.ape}, \fname{.mac}, \fname{.wv} \\ |
192 | \fname{.ogg}, \fname{.oga}, \fname{.spx}, \fname{.flac} & Vorbis \\ | 243 | Vorbis & \fname{.ogg}, \fname{.oga}, \fname{.spx}, \fname{.flac} \\ |
193 | \fname{.m4a}, \fname{.m4b}, \fname{.mp4} & MP4 \\ | 244 | MP4 & \fname{.m4a}, \fname{.m4b}, \fname{.mp4} \\ |
194 | \fname{.wma}, \fname{.wmv}, \fname{.asf} & ASF \\ | 245 | ASF & \fname{.wma}, \fname{.wmv}, \fname{.asf} \\ |
195 | \fname{.mmf}, \fname{.mod}, \fname{.nsf}, \fname{.nsfe}, | 246 | Codec specific & \fname{.mmf}, \fname{.mod}, \fname{.nsf}, \fname{.nsfe}, |
196 | \fname{.sap}, \fname{.sid}, \fname{.spc} & Codec specific \\ | 247 | \fname{.sap}, \fname{.sid}, \fname{.spc} \\ |
197 | \fname{.a52}, \fname{.ac3}, \fname{.adx}, \fname{.oma}, | 248 | None & \fname{.a52}, \fname{.ac3}, \fname{.adx}, \fname{.oma}, |
198 | \fname{.aa3}, \fname{.aif}, \fname{.aiff}, \fname{.au} & None \\ | 249 | \fname{.aa3}, \fname{.aif}, \fname{.aiff}, \fname{.au}, |
199 | \fname{.snd}, \fname{.shn}, \fname{.vox}, \fname{.w64}, | 250 | \fname{.snd}, \fname{.shn}, \fname{.vox}, \fname{.w64}, |
200 | \fname{.wav}, \fname{.cmc}, \fname{.cm3}, \fname{.cmr} & None \\ | 251 | \fname{.wav}, \fname{.cmc}, \fname{.cm3}, \fname{.cmr}, |
201 | \fname{.cms}, \fname{.dmc}, \fname{.dlt}, \fname{.mpt}, | 252 | \fname{.cms}, \fname{.dmc}, \fname{.dlt}, \fname{.mpt}, |
202 | \fname{.mpd} & None \\ | 253 | \fname{.mpd} \\ |
254 | \end{rbtabular} | ||
255 | |||
256 | \subsection{Featureset for generic metadata tags} | ||
257 | \begin{rbtabular}{\textwidth}{lccccX}% | ||
258 | {\textbf{Feature} & \textbf{ID3} & \textbf{APE} & \textbf{Vorbis} & | ||
259 | \textbf{MP4} & \textbf{ASF}}{}{} | ||
260 | Embedded albumart \fname{.bmp} & & & & & \\ | ||
261 | Embedded albumart \fname{.jpg} & x & & & x & \\ | ||
262 | Embedded albumart \fname{.png} & & & & & \\ | ||
263 | Replaygain information & x & x & x & x & x \\ | ||
264 | Title (string) & x & x & x & x & x \\ | ||
265 | Artist (string) & x & x & x & x & x \\ | ||
266 | Album (string) & x & x & x & x & x \\ | ||
267 | Genre (string) & x & x & x & x & x \\ | ||
268 | Disc (string or number) & x & x & x & x & \\ | ||
269 | Track (string or number) & x & x & x & x & x \\ | ||
270 | Year (string or number) & x & x & x & x & x \\ | ||
271 | Composer (string) & & x & x & x & x \\ | ||
272 | Comment (string) & x & x & x & x & x \\ | ||
273 | Albumartist (string) & x & x & x & x & x \\ | ||
274 | Grouping (string) & & x & x & x & \\ | ||
275 | \end{rbtabular} | ||
276 | |||
277 | \subsection{Featureset for codec specific metadata} | ||
278 | \begin{rbtabular}{\textwidth}{lX}% | ||
279 | {\textbf{Feature} & \textbf{Codec specific metadata (file extension)}}{}{} | ||
280 | Embedded \fname{.bmp} & None \\ | ||
281 | Embedded \fname{.jpg} & None \\ | ||
282 | Embedded \fname{.png} & None \\ | ||
283 | Replaygain & \fname{.mpc}\\ | ||
284 | Title & \fname{.tta}, \fname{.spc}, \fname{.mmf}, \fname{.sid}, | ||
285 | \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.nsf}, | ||
286 | \fname{.nsfe}, \fname{.mod}, \fname{.sap} \\ | ||
287 | Artist & \fname{.tta}, \fname{.spc}, \fname{.mmf}, \fname{.sid}, | ||
288 | \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.nsf}, | ||
289 | \fname{.nsfe}, \fname{.sap} \\ | ||
290 | Album & \fname{.spc}, \fname{.sid}, \fname{.nsf}, \fname{.nsfe} \\ | ||
291 | Genre & \fname{.tta}, \fname{.spc}, \fname{.sap} \\ | ||
292 | Disc & \fname{.tta} \\ | ||
293 | Track & \fname{.tta} \\ | ||
294 | Year & \fname{.spc}, \fname{.sid}, \fname{.sap} \\ | ||
295 | Composer & \fname{.mmf} \\ | ||
296 | Comment & \fname{.spc}, \fname{.rm}, \fname{.ra}, \fname{.rmvb} \\ | ||
297 | Albumartist & None \\ | ||
298 | Grouping & None \\ | ||
203 | \end{rbtabular} | 299 | \end{rbtabular} |
300 | |||
301 | \subsection{Limitations of metadata handling} | ||
302 | \begin{enumerate} | ||
303 | \item Multiple tags (e.g. for Genre) are not supported. The first tag | ||
304 | item of a set of multiple tags is used. | ||
305 | \item Only one tag type is supported for each audio format. | ||
306 | \nopt{clipv1,c200v2}{ | ||
307 | \item Overall there are 900 bytes available to load metadata strings. | ||
308 | \item The maximum size of each metadata item (e.g. Artists) is limited | ||
309 | to 240 bytes. | ||
310 | } | ||
311 | \opt{clipv1,c200v2}{ | ||
312 | \item Overall there are 300 bytes available to load metadata strings. | ||
313 | \item The maximum size of each metadata item (e.g. Artists) is limited | ||
314 | to 90 bytes. | ||
315 | } | ||
316 | \end{enumerate} | ||
204 | } | 317 | } |