We have a 3.9 release, update builds.pm
[maemo-rb.git] / manual / appendix / file_formats.tex
blobec99ffa9bafdf723b93f92d2318c4ec775dbb964
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 & \\
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 & \\
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 \subsection{Other Codecs}
203 \begin{rbtabular}{\textwidth}{l>{\raggedright}p{6em}X}%
204 {\textbf{Format} & \textbf{Extension} & \textbf{Notes}}{}{}
205 Atari Sound Format
206 & \fname{.cmc}, \fname{.cm3}, \fname{.cmr}, \fname{.cms}, \fname{.dmc},
207 \fname{.dlt}, \fname{.mpt}, \fname{.mpd}
208 & \\
209 Synthetic music Mobile Application Format
210 & \fname{.mmf}
211 & PCM/ADPCM only \\
213 & \fname{.mod}
214 & \\
215 NES Sound Format
216 & \fname{.nsf}, \fname{.nsfe}
217 & Progress bar and seek use subtracks instead of seconds.\\
218 Atari SAP
219 & \fname{.sap}
220 & \\
221 Sound Interface Device
222 & \fname{.sid}
223 & Progress bar and seek use subtracks instead of seconds.\\
224 SPC700
225 & \fname{.spc}
226 & \\
227 \end{rbtabular}
229 \subsection{Codec featureset}
230 \begin{rbtabular}{.90\textwidth}{lXXX}%
231 {\textbf{Format} & \textbf{Seek} & \textbf{Resume} & \textbf{Gapless}}{}{}
232 ATSC A/52 (AC3) & x & x & \\
233 ADX & x & & \\
234 Advanced Audio Coding & x & x & x \\
235 MPEG audio & x & x & x \\
236 Musepack & x & x & x \\
237 OGG/Vorbis & x & x & x \\
238 Sony Audio & x & x & \\
239 RealAudio & x & x & \\
240 Dialogic telephony type & x & x & \\
241 Windows Media Audio Standard & x & x & \\
242 Windows Media Audio Professional & x & x & \\
243 Audio Interchange File Format & x & x & x \\
244 Monkey's Audio & x & x & x \\
245 Sun Audio & x & x & x \\
246 Free Lossless Audio & x & x & x \\
247 Apple Lossless & x & x & x \\
248 Shorten & & & x \\
249 True Audio & x & x & x \\
250 Wave64 & x & x & x \\
251 Waveform audio format & x & x & x \\
252 Wavpack & x & x & x \\
253 Atari Sound Format & x & & \\
254 Synthetic music Mobile Application Format & x & x & \\
255 MOD & x & & \\
256 NES Sound Format & x & & \\
257 Atari SAP & x & & \\
258 Sound Interface Device & x & & \\
259 SPC700 & x & & \\
260 \end{rbtabular}
262 \note{The seek implementations of NES Sound Format and Sound Interface Device
263 use subtracks instead of seconds, whereas each subtrack equals a second.}
265 \section{\label{ref:SupportedMetadata}Supported metadata tags}
266 Rockbox supports different metadata formats. In general those tag formats
267 are ID3 (v1.0, v1.1, v2.2, v2.3 and v2.4), APE (v1 and v2), Vorbis, MP4 and
268 ASF. Few codecs use codec specific tags, several codecs do not use any tags
269 yet. The following table gives an overview about what tag types rockbox
270 supports for which audio file extension.
272 \note{There is always only \emph{one} tag type supported for each file
273 extension.}
275 \begin{rbtabular}{\textwidth}{lX}%
276 {\textbf{Tag type} & \textbf{File extension}}{}{}
277 ID3 & \fname{.mp1}, \fname{.mpa}, \fname{.mp2}, \fname{.mp3},
278 \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.tta} \\
279 APE & \fname{.mpc}, \fname{.ape}, \fname{.mac}, \fname{.wv} \\
280 Vorbis & \fname{.ogg}, \fname{.oga}, \fname{.spx}, \fname{.flac} \\
281 MP4 & \fname{.m4a}, \fname{.m4b}, \fname{.mp4} \\
282 ASF & \fname{.wma}, \fname{.wmv}, \fname{.asf} \\
283 Codec specific & \fname{.mmf}, \fname{.mod}, \fname{.nsf}, \fname{.nsfe},
284 \fname{.sap}, \fname{.sid}, \fname{.spc} \\
285 None & \fname{.a52}, \fname{.ac3}, \fname{.adx}, \fname{.oma},
286 \fname{.aa3}, \fname{.aif}, \fname{.aiff}, \fname{.au},
287 \fname{.snd}, \fname{.shn}, \fname{.vox}, \fname{.w64},
288 \fname{.wav}, \fname{.cmc}, \fname{.cm3}, \fname{.cmr},
289 \fname{.cms}, \fname{.dmc}, \fname{.dlt}, \fname{.mpt},
290 \fname{.mpd} \\
291 \end{rbtabular}
293 \subsection{Featureset for generic metadata tags}
294 \begin{rbtabular}{0.80\textwidth}{lXXXXX}%
295 {\textbf{Feature} & \textbf{ID3} & \textbf{APE} & \textbf{Vorbis} &
296 \textbf{MP4} & \textbf{ASF}}{}{}
297 Embedded albumart \fname{.bmp} & & & & & \\
298 Embedded albumart \fname{.jpg} & x & & & x & \\
299 Embedded albumart \fname{.png} & & & & & \\
300 Replaygain information & x & x & x & x & x \\
301 Title (string) & x & x & x & x & x \\
302 Artist (string) & x & x & x & x & x \\
303 Album (string) & x & x & x & x & x \\
304 Genre (string) & x & x & x & x & x \\
305 Disc (string or number) & x & x & x & x & \\
306 Track (string or number) & x & x & x & x & x \\
307 Year (string or number) & x & x & x & x & x \\
308 Composer (string) & & x & x & x & x \\
309 Comment (string) & x & x & x & x & x \\
310 Albumartist (string) & x & x & x & x & x \\
311 Grouping (string) & & x & x & x & \\
312 \end{rbtabular}
314 \subsection{Featureset for codec specific metadata}
315 \begin{rbtabular}{\textwidth}{lX}%
316 {\textbf{Feature} & \textbf{Codec specific metadata (file extension)}}{}{}
317 Embedded \fname{.bmp} & None \\
318 Embedded \fname{.jpg} & None \\
319 Embedded \fname{.png} & None \\
320 Replaygain & \fname{.mpc}\\
321 Title & \fname{.tta}, \fname{.spc}, \fname{.mmf}, \fname{.sid},
322 \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.nsf},
323 \fname{.nsfe}, \fname{.mod}, \fname{.sap} \\
324 Artist & \fname{.tta}, \fname{.spc}, \fname{.mmf}, \fname{.sid},
325 \fname{.rm}, \fname{.ra}, \fname{.rmvb}, \fname{.nsf},
326 \fname{.nsfe}, \fname{.sap} \\
327 Album & \fname{.spc}, \fname{.sid}, \fname{.nsf}, \fname{.nsfe} \\
328 Genre & \fname{.tta}, \fname{.spc}, \fname{.sap} \\
329 Disc & \fname{.tta} \\
330 Track & \fname{.tta} \\
331 Year & \fname{.spc}, \fname{.sid}, \fname{.sap} \\
332 Composer & \fname{.mmf} \\
333 Comment & \fname{.spc}, \fname{.rm}, \fname{.ra}, \fname{.rmvb} \\
334 Albumartist & None \\
335 Grouping & None \\
336 \end{rbtabular}
338 \subsection{Limitations of metadata handling}
339 \begin{enumerate}
340 \item Multiple tags (e.g. for Genre) are not supported. The first tag
341 item of a set of multiple tags is used.
342 \item Only one tag type is supported for each audio format.
343 \nopt{clipv1,c200v2}{
344 \item Overall there are 900 bytes available to load metadata strings.
345 \item The maximum size of each metadata item (e.g. Artists) is limited
346 to 240 bytes.
348 \opt{clipv1,c200v2}{
349 \item Overall there are 300 bytes available to load metadata strings.
350 \item The maximum size of each metadata item (e.g. Artists) is limited
351 to 90 bytes.
353 \end{enumerate}