Revert "skin tags: fix the id3 track/disc numbers in conditionals"
[maemo-rb.git] / manual / appendix / file_formats.tex
blobd6d65939908d1a7ad2c8f42b01d05ba99ba84a22
1 % $Id$ %
2 \chapter{File formats}
3 \section{\label{ref:Supportedfileformats}Supported file formats}
4 \begin{rbtabular}{\textwidth}{cl>{\raggedright}p{7em}X}%
5 {\textbf{Icon} & \textbf{File Type} & \textbf{Extension}
6 & \textbf{Action when selected}}{}{}
7 \includegraphics[width=0.37cm]{appendix/images/icon-directory.png}
8 & Directory & \emph{none} & Enter the directory \tabularnewline
9 \opt{recorder,recorderv2fm,ondiofm,ondiosp}{
10 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
11 & Rockbox firmware & \fname{.ajz} & Load the new firmware with ROLO \tabularnewline
13 \opt{swcodec}{
14 \includegraphics[width=0.37cm]{appendix/images/icon-audio-file.png}
15 & Audio file & \emph{various}\newline%
16 (see \ref{ref:Supportedaudioformats})%
17 % do NOT use \reference{} here as that will break the table.
18 & Start playing the file and show the WPS\tabularnewline
20 & Bookmark & \fname{.bmark} & Display all bookmarks for an audio file\tabularnewline
21 \opt{lcd_bitmap}{
22 & Game of Life & \fname{.cells} & Show the configuration with the
23 ``Rocklife'' plugin\tabularnewline
25 \includegraphics[width=0.37cm]{appendix/images/icon-config.png}
26 & Configuration File & \fname{.cfg} & Load the settings file\tabularnewline
27 \includegraphics[width=0.37cm]{appendix/images/icon-chip8.png}
28 & Chip8 game & \fname{.ch8} & Play the Chip8 game \tabularnewline
29 \opt{lcd_color}{
30 & Colours & \fname{.colours} & Open the colours file for editing.
31 See \reference{ref:ChangingFiletypeColours}.\tabularnewline
33 \includegraphics[width=0.37cm]{appendix/images/icon-cuesheet.png}
34 & Cuesheet & \fname{.cue} & View the cuesheet file \tabularnewline
35 \opt{radio}{
36 & FM Presets & \fname{.fmr} & Load the FM Presets (previous are discarded)\tabularnewline
38 \includegraphics[width=0.37cm]{appendix/images/icon-font.png}
39 & Font & \fname{.fnt} & Change the user interface font to this one\tabularnewline
40 \opt{gigabeat}{
41 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
42 & Rockbox firmware & \fname{.gigabeat} & Load the new firmware with ROLO \tabularnewline
44 \opt{iaudio}{
45 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
46 & Rockbox firmware & \fname{.iaudio} & Load the new firmware with ROLO \tabularnewline
48 \opt{ipod}{
49 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
50 & Rockbox firmware & \fname{.ipod} & Load the new firmware with ROLO \tabularnewline
52 \opt{iriverh100,iriverh300}{
53 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
54 & Rockbox firmware & \fname{.iriver} & Load the new firmware with ROLO \tabularnewline
56 \includegraphics[width=0.37cm]{appendix/images/icon-image-file.png}
57 & Image & \fname{.jpg} & View the JPEG image \tabularnewline
58 & Link & \fname{.link} & Display list of target files and directories;
59 selecting one jumps to the target. See \reference{ref:Shortcutsplugin}.\tabularnewline
60 \includegraphics[width=0.37cm]{appendix/images/icon-lang.png}
61 & Language File & \fname{.lng} & Load the language file \tabularnewline
62 \includegraphics[width=0.37cm]{appendix/images/icon-playlist.png}
63 & Playlist & \fname{.m3u}, \fname{.m3u8} & Load the playlist and start playing
64 the first file \tabularnewline
65 \opt{iriverh10,iriverh10_5gb,sansa,vibe500}{
66 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
67 & Rockbox firmware & \fname{.mi4} & Load the new firmware with ROLO \tabularnewline
69 \opt{player}{
70 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
71 & Rockbox firmware & \fname{.mod} & Load the new firmware with ROLO \tabularnewline
73 \opt{masd,masf}{
74 \includegraphics[width=0.37cm]{appendix/images/icon-audio-file.png}
75 & Audio file & \fname{.mp2}, \fname{.mp3} & Start playing the file and show the WPS\tabularnewline
77 \opt{swcodec}{
78 \includegraphics[width=0.37cm]{appendix/images/icon-movie-file.png}
79 & Video & \fname{.mpg}, \fname{.mpeg}, \fname{.mpv}, \fname{.m2v} & Play the MPEG1/2 video \tabularnewline
81 \includegraphics[width=0.37cm]{appendix/images/icon-rock.png}
82 & Plugin & \fname{.rock} & Start the plugin\tabularnewline
83 \opt{masf}{\opt{lcd_bitmap}{
84 \includegraphics[width=0.37cm]{appendix/images/icon-movie-file.png}
85 & Rockbox Video & \fname{.rvf} & View the movie (Rockbox format)\tabularnewline}
87 \opt{sansaAMS}{
88 \includegraphics[width=0.37cm]{appendix/images/icon-rolo.png}
89 & Rockbox firmware & \fname{.sansa} & Load the new firmware with ROLO \tabularnewline
91 \includegraphics[width=0.37cm]{appendix/images/icon-text.png}
92 & Text File & \fname{.txt} & Display the text file using the text viewer plugin\tabularnewline
93 \opt{archos}{
94 \includegraphics[width=0.37cm]{appendix/images/icon-ucl.png}
95 & Flash Image & \fname{.ucl} & Flash the Rockbox image into the ROM \tabularnewline
97 & Voice file & \fname{.voice} & Allow Rockbox to speak menus\tabularnewline
98 \opt{masf}{
99 \includegraphics[width=0.37cm]{appendix/images/icon-wav-file.png}
100 & Wave Audio File & \fname{.wav} & Play the WAV file \tabularnewline%
102 \includegraphics[width=0.37cm]{appendix/images/icon-wps.png}
103 & While Playing Screen & \fname{.wps} & Load the new WPS display configuration\tabularnewline
104 \end{rbtabular}
106 \opt{swcodec}{
107 \chapter{Audio and metadata formats}
108 \section{\label{ref:Supportedaudioformats}Supported audio formats}
109 \subsection{Lossy Codecs}
110 \begin{rbtabular}{\textwidth}{l>{\raggedright}p{6em}X}%
111 {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{}
112 ATSC A/52 (AC3)
113 & \fname{.a52}, \fname{.ac3}, \fname{.rm}, \fname{.ra}, \fname{.rmvb}
114 & Supports downmixing for playback of 5.1 streams in stereo\\
116 & \fname{.adx}
117 & Encrypted ADX is not supported.\\
118 Advanced Audio Coding
119 & \fname{.m4a}, \fname{.m4b}, \fname{.mp4}, \fname{.rm}, \fname{.ra}, \fname{.rmvb}
120 \nopt{clipv1,c200v2}{
121 & Supports AAC-LC, -HEv1, and -HEv2 profiles\\}
122 \opt{clipv1,c200v2}{ % low memory targets (CODEC_SIZE <= 512 KB)
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 & \\
153 \end{rbtabular}
155 \note{AAC-HE profiles might not play in realtime on all devices due to CPU
156 performance requirements.}
158 \subsection{Lossless Codecs}
159 \begin{rbtabular}{\textwidth}{lp{6em}X}%
160 {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{}
161 Audio Interchange File Format
162 & \fname{.aif}, \fname{.aiff}
163 & Linear PCM 8/16/24/32 bit, IEEE float 32/64 bit, ITU-T G.711 a-law/$\mu$-law,
164 QuickTime IMA ADPCM\\
165 Monkey's Audio
166 & \fname{.ape}, \fname{.mac}
168 \opt{gigabeatf,iriverh100,iriverh300,iaudiox5,iaudiom5,iaudiom3,ipodnano2g,clipv1}{
169 -c1000 to -c3000 files decode fast enough to be useful.}
170 \opt{gigabeats}{}
171 \opt{ipod,iriverh10,iriverh10_5gb,mrobe100,sansa,vibe500}{
172 \nopt{ipodnano2g}{Only -c1000 files decode fast enough to be useful.}}
174 Sun Audio
175 & \fname{.au}, \fname{.snd}
176 & Linear PCM 8/16/24/32 bit, IEEE float 32/64 bit, ITU-T G.711 a-law/$\mu$-law\\
177 Free Lossless Audio
178 & \fname{.flac}
179 & Supports multichannel playback including downmixing to stereo.\\
180 Apple Lossless
181 & \fname{.m4a}, \fname{.mp4}
182 & \\
183 Shorten
184 & \fname{.shn}
185 & Seeking not supported.\\
186 True Audio
187 & \fname{.tta}
188 & \\
189 Wave64
190 & \fname{.w64}
191 & Supports same formats as Waveform audio format.\\
192 Waveform audio format
193 & \fname{.wav}
194 & Linear PCM 8/16/24/32 bit, IEEE float 32/64 bit, ITU-T G.711 a-law/$\mu$-law,
195 Microsoft ADPCM, Intel DVI ADPCM (IMA ADPCM) 2/3/4/5 bit, Dialogic OKI ADPCM,
196 YAMAHA ADPCM, Adobe SWF ADPCM\\
197 Wavpack
198 & \fname{.wv}
199 & \\
200 \end{rbtabular}
202 \note{Free Lossless Audio multichannel tracks may not play in realtime on all devices due to CPU
203 performance requirements.}
205 \subsection{Other Codecs}
206 \begin{rbtabular}{\textwidth}{l>{\raggedright}p{6em}X}%
207 {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{}
208 Atari Sound Format
209 & \fname{.cmc}, \fname{.cm3}, \fname{.cmr}, \fname{.cms}, \fname{.dmc},
210 \fname{.dlt}, \fname{.mpt}, \fname{.mpd}
211 & \\
212 Synthetic music Mobile Application Format
213 & \fname{.mmf}
214 & PCM/ADPCM only \\
215 Game Boy Sound Format
216 & \fname{.gbs}
217 & Progress bar and seek use subtracks instead of seconds.\\
218 AY Sound Chip Music
219 & \fname{.ay}
220 & Progress bar and seek use subtracks instead of seconds for
221 multitrack files.\\
222 Hudson Entertainment System Sound Format
223 & \fname{.hes}
224 & Progress bar and seek use subtracks instead of seconds.\\
225 \nopt{clipv1,c200v2}{
226 MSX Konami Sound System
227 & \fname{.kss}
228 & Progress bar and seek use subtracks instead of seconds.\\}
229 SMS/GG/CV Sound Format
230 & \fname{.sgc}
231 & Supports Sega Master System and Game Gear Sound Format.
232 Progress bar and seek use subtracks instead of seconds.\\
233 Video Game Music Format
234 & \fname{.vgm}
235 & \\
236 Gzipped Video Game Music Format
237 & \fname{.vgz}
238 & \\
240 & \fname{.mod}
241 & \\
242 NES Sound Format
243 & \fname{.nsf}, \fname{.nsfe}
244 & Progress bar and seek use subtracks instead of seconds.\\
245 Atari SAP
246 & \fname{.sap}
247 & \\
248 Sound Interface Device
249 & \fname{.sid}
250 & Progress bar and seek use subtracks instead of seconds.\\
251 SPC700
252 & \fname{.spc}
253 & \\
254 \end{rbtabular}
256 \note{NSF and VGM might not play in realtime on all devices due to CPU
257 performance requirements.}
259 \subsection{Codec featureset}
260 \begin{rbtabular}{.95\textwidth}{lXXX}%
261 {\textbf{Format} & \textbf{Seek} & \textbf{Resume} & \textbf{Gapless}}{}{}
262 ATSC A/52 (AC3) & x & x & \\
263 ADX & x & & \\
264 Advanced Audio Coding & x & x & x \\
265 MPEG audio & x & x & x \\
266 Musepack & x & x & x \\
267 OGG/Vorbis & x & x & x \\
268 Sony Audio & x & x & \\
269 RealAudio & x & x & \\
270 Dialogic telephony type & x & x & \\
271 Windows Media Audio Standard & x & x & \\
272 Windows Media Audio Professional & x & x & \\
273 Audio Interchange File Format & x & x & x \\
274 Monkey's Audio & x & x & x \\
275 Sun Audio & x & x & x \\
276 Free Lossless Audio & x & x & x \\
277 Apple Lossless & x & x & x \\
278 Shorten & & & x \\
279 True Audio & x & x & x \\
280 Wave64 & x & x & x \\
281 Waveform audio format & x & x & x \\
282 Wavpack & x & x & x \\
283 Atari Sound Format & x & & \\
284 Synthetic music Mobile Application Format & x & x & \\
285 Game Boy Sound Format & x & & \\
286 AY Sound Chip Music & x & & \\
287 Hudson Entertainment System Sound Format & x & & \\
288 MSX Konami Sound System & x & & \\
289 SMS/GG/CV Sound Format & x & & \\
290 Video Game Music Format & x & x & \\
291 Gzipped Video Game Music Format & x & x & \\
292 MOD & x & & \\
293 NES Sound Format & x & & \\
294 Atari SAP & x & & \\
295 Sound Interface Device & x & & \\
296 SPC700 & x & & \\
297 \end{rbtabular}
299 \note{The seek implementations of NES Sound Format, Sound Interface Device,
300 Game Boy Sound Format, AY Sound Chip Music, Hudson Entertainment System Sound,
301 Format, MSX Konami Sound System and SMS/GG/CV Sound Format use subtracks
302 instead of seconds, whereas each subtrack equals a second.}
304 \section{\label{ref:SupportedMetadata}Supported metadata tags}
305 Rockbox supports different metadata formats. In general those tag formats
306 are ID3 (v1.0, v1.1, v2.2, v2.3 and v2.4), APE (v1 and v2), Vorbis, MP4 and
307 ASF. Few codecs use codec specific tags, several codecs do not use any tags
308 yet. The following table gives an overview about what tag types rockbox
309 supports for which audio file extension.
311 \note{There is always only \emph{one} tag type supported for each file
312 extension.}
314 \begin{rbtabular}{\textwidth}{lX}%
315 {\textbf{Tag type} & \textbf{File extension}}{}{}
316 ID3 & \fname{.mp1}, \fname{.mpa}, \fname{.mp2}, \fname{.mp3},
317 \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.tta} \\
318 APE & \fname{.mpc}, \fname{.ape}, \fname{.mac}, \fname{.wv} \\
319 Vorbis & \fname{.ogg}, \fname{.oga}, \fname{.spx}, \fname{.flac} \\
320 MP4 & \fname{.m4a}, \fname{.m4b}, \fname{.mp4} \\
321 ASF & \fname{.wma}, \fname{.wmv}, \fname{.asf} \\
322 Codec specific & \fname{.mmf}, \fname{.mod}, \fname{.nsf}, \fname{.nsfe},
323 \fname{.sap}, \fname{.sid}, \fname{.spc}, \fname{.gbs},
324 \fname{.ay}, \fname{.kss}, \fname{.sgc}, \fname{.vgm} \\
325 None & \fname{.a52}, \fname{.ac3}, \fname{.adx}, \fname{.oma},
326 \fname{.aa3}, \fname{.aif}, \fname{.aiff}, \fname{.au},
327 \fname{.snd}, \fname{.shn}, \fname{.vox}, \fname{.w64},
328 \fname{.wav}, \fname{.cmc}, \fname{.cm3}, \fname{.cmr},
329 \fname{.cms}, \fname{.dmc}, \fname{.dlt}, \fname{.mpt},
330 \fname{.mpd}, \fname{.hes}, \fname{.vgz} \\
331 \end{rbtabular}
333 \subsection{Featureset for generic metadata tags}
334 \label{ref:featureset_for_generic_metadata_tags}
335 \begin{rbtabular}{0.90\textwidth}{lXXXXX}%
336 {\textbf{Feature} & \textbf{ID3} & \textbf{APE} & \textbf{Vorbis} &
337 \textbf{MP4} & \textbf{ASF}}{}{}
338 Embedded albumart \fname{.bmp} & & & & & \\
339 Embedded albumart \fname{.jpg} & x & x & & x & x \\
340 Embedded albumart \fname{.png} & & & & & \\
341 Embedded cuesheet & x & & x & & \\
342 Replaygain information & x & x & x & x & x \\
343 Title (string) & x & x & x & x & x \\
344 Artist (string) & x & x & x & x & x \\
345 Album (string) & x & x & x & x & x \\
346 Genre (string) & x & x & x & x & x \\
347 Disc (string or number) & x & x & x & x & \\
348 Track (string or number) & x & x & x & x & x \\
349 Year (string or number) & x & x & x & x & x \\
350 Composer (string) & & x & x & x & x \\
351 Comment (string) & x & x & x & x & x \\
352 Albumartist (string) & x & x & x & x & x \\
353 Grouping (string) & & x & x & x & \\
354 \end{rbtabular}
356 \note{Embedded album art for ASF is limited to pictures of maximum 64 KB size.}
358 \subsection{Featureset for codec specific metadata}
359 \begin{rbtabular}{\textwidth}{lX}%
360 {\textbf{Feature} & \textbf{Codec specific metadata (file extension)}}{}{}
361 Embedded \fname{.bmp} & None \\
362 Embedded \fname{.jpg} & None \\
363 Embedded \fname{.png} & None \\
364 Replaygain & \fname{.mpc}\\
365 Title & \fname{.tta}, \fname{.spc}, \fname{.mmf}, \fname{.sid},
366 \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.nsf},
367 \fname{.nsfe}, \fname{.mod}, \fname{.sap}, \fname{.gbs},
368 \fname{.ay}, \fname{.sgc}, \fname{.vgm} \\
369 Artist & \fname{.tta}, \fname{.spc}, \fname{.mmf}, \fname{.sid},
370 \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.nsf},
371 \fname{.nsfe}, \fname{.sap}, \fname{.gbs}, \fname{.ay},
372 \fname{.sgc}, \fname{.vgm} \\
373 Album & \fname{.spc}, \fname{.sid}, \fname{.nsf}, \fname{.nsfe},
374 \fname{.gbs}, \fname{.ay}, \fname{.sgc}, \fname{.vgm} \\
375 Genre & \fname{.tta}, \fname{.spc}, \fname{.sap} \\
376 Disc & \fname{.tta} \\
377 Track & \fname{.tta} \\
378 Year & \fname{.spc}, \fname{.sid}, \fname{.sap} \\
379 Composer & \fname{.mmf} \\
380 Comment & \fname{.spc}, \fname{.rm}, \fname{.ra}, \fname{.rmvb},
381 \fname{.vgm} \\
382 Albumartist & None \\
383 Grouping & None \\
384 \end{rbtabular}
386 \subsection{Limitations of metadata handling}
387 \begin{enumerate}
388 \item Multiple tags (e.g. for Genre) are not supported. The first tag
389 item of a set of multiple tags is used.
390 \item Only one tag type is supported for each audio format.
391 \nopt{clipv1,c200v2}{
392 \item Overall there are 900 bytes available to load metadata strings.
393 \item The maximum size of each metadata item (e.g. Artists) is limited
394 to 240 bytes.
396 \opt{clipv1,c200v2}{
397 \item Overall there are 300 bytes available to load metadata strings.
398 \item The maximum size of each metadata item (e.g. Artists) is limited
399 to 90 bytes.
401 \end{enumerate}