diff options
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 | } |