summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manual/appendix/file_formats.tex259
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}