• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..19-Jun-2016-

AUTHORSH A D19-Jun-2016126 32

COPYINGH A D19-Jun-20161.1 KiB2919

Makefile.amH A D19-Jun-2016292 107

Makefile.inH A D19-Jun-201623.7 KiB724648

READMEH A D19-Jun-201613.7 KiB361253

array.cH A D19-Jun-20161.3 KiB4222

bitshift.hH A D19-Jun-201635.3 KiB3416

convert.cH A D19-Jun-20161.4 KiB4314

misc.cH A D19-Jun-20163.2 KiB15293

output.cH A D19-Jun-20162.3 KiB10058

seek.cH A D19-Jun-20167.8 KiB275201

shn.cH A D19-Jun-201663.5 KiB1,8601,539

shn.hH A D19-Jun-20167.7 KiB275181

shorten.cH A D19-Jun-20161.4 KiB5538

shorten.hH A D19-Jun-20165.8 KiB225164

sulawalaw.cH A D19-Jun-20167.2 KiB193140

vario.cH A D19-Jun-20164.1 KiB147110

wave.cH A D19-Jun-20168.8 KiB265207

README

1NOTE: this is not original xmms-shn
2this code is a port of xmms-shn to deadbeef plugin API
3
4=== original xmms-shn README starts here ===
5
6xmms-shn version 2.4.x
7
8
9--------
10Overview
11--------
12
13xmms-shn provides playback support for shorten (.shn) files in XMMS.  Real-time
14seeking support is provided for .shn files that have accompanying seek tables
15generated by shorten 3.x.  Otherwise, seeking is not supported.
16
17See the "Shorten 3.x overview" section below for more information about this new
18seek-enabled version of shorten.
19
20
21-------
22License
23-------
24
25xmms-shn is dual-licensed.  The code taken from the sources of 'shorten' remains
26under the shorten license (see doc/LICENSE.shorten), while the rest of the code
27is GPL (see COPYING).
28
29
30------------
31Availability
32------------
33
34The latest version of this plugin can always be found at the sites below:
35
36  http://www.etree.org/shnutils/
37  http://shnutils.freeshell.org/
38
39Please see the ChangeLog file for changes to this plugin since its creation.
40
41
42------------
43Dependencies
44------------
45
46As of version 2.0, xmms-shn no longer depends on an external shorten executable
47to work, since the core shorten algorithm has been incorporated directly into
48xmms-shn.
49
50You should have XMMS 1.0.0 or newer, and GTK & GLIB 1.2.2 or newer.  The
51configure script will usually find these if you installed them from source.
52However, if you installed any of the above via .rpm's, then you may need to tell
53the configure script where to find them.  To see what options are available,
54type:
55
56% ./configure --help
57
58The applicable options are the following:
59
60  --with-xmms-prefix=PFX  Prefix where XMMS is installed (optional)
61  --with-xmms-exec-prefix=PFX Exec prefix where XMMS is installed (optional)
62  --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)
63  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)
64  --disable-glibtest       Do not try to compile and run a test GLIB program
65  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)
66  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)
67  --disable-gtktest       Do not try to compile and run a test GTK program
68
69
70-----------------------------------
71Building and installing this plugin
72-----------------------------------
73
74For instructions on how to build and install this plugin, please consult the
75INSTALL file.  It is usually as simple as the following:
76
77% ./configure
78% make
79% su -c "make install"
80Password:                             (give your root password here)
81%
82
83
84---------------------
85Configuration options
86---------------------
87
88This section details the options that can be found in the plugin's configuration
89window in XMMS, under Preferences -> Audio I/O Plugins -> SHN Player 2.4.x ->
90Configure.
91
92
93Error Display tab:
94==================
95
96  Error display options:
97  ----------------------
98
99  This option determines where any error messages go - to a popup window,
100  to standard error, or to the bit bucket.  Pretty self-explanatory.
101
102
103Seek Tables tab:
104================
105
106  Alternate seek table file locations:
107  ------------------------------------
108
109  These options allow you to specify alternate directores to search for .skt
110  (seek table) files.  These directories will be searched after all other attempts
111  to locate a seek table for a given file have failed.
112
113  The "Relative seek table path" option allows you to specify a subdirectory
114  relative to the base directory of a given file, where seek tables may reside.
115  This is useful if you create seek table files for a group of .shn files, and
116  store them in a commonly-named subdirectory of that group.
117
118  The "Absolute seek table path" option allows you to specify an absolute directory
119  where seek tables may reside.  This is useful if you create seek table files for
120  multiple groups of .shn files and store them in the same directory.
121
122  When searching for seek tables belonging to a file (e.g. '/mnt/shn/filename.shn'),
123  xmms-shn will do the following, in this order, until it either finds a seek table
124  or runs out of places to check for one:
125
126  1.  look for a seek table appended to '/mnt/shn/filename.shn' (whether at the end,
127      or hidden behind an ID3v1 tag)
128
129  2.  look for a seek table in '/mnt/shn/filename.skt'
130
131  3.  look for a seek table in '/mnt/shn/relative_dir/filename.skt', where
132      'relative_dir' is the directory specified in the "Relative seek table path"
133      option
134
135  4.  look for a seek table in '/absolute_dir/filename.skt', where 'absolute_dir'
136      is the directory specified in the "Absolute seek table path" option
137
138
139Miscellaneous tab:
140==================
141
142  Miscellaneous options:
143  ----------------------
144
145  The "Swap audio bytes on output" option is useful in situations where every file
146  you play back is static.  This is known to help on the following platforms:
147
148    + Sun Ultra 10 and Ultra 30 both running Solaris 8
149    + SGI Octane/Irix 6.5
150
151
152  The "Display debug info to stderr" option specifies whether to display debugging
153  messages to stderr.  This is potentially useful for remote debugging, and also
154  just to see what's going on.  Debug lines are always shown with a prefix of
155  "xmms-shn [debug]:".
156
157  Note that if "Display debug info to stderr" is enabled, and the error display
158  option is set to /dev/null, then all non-debug messages that normally would be
159  suppressed are displayed to stderr with a prefix of "xmms-shn [error]:".
160
161  The "Load text files in file information box" option specifies whether text files
162  found in the same or parent directory as the given file should be loaded into the
163  file information box.  Each file found will be loaded in a separate tab.  The tabs
164  will be labeled "Text file n", where n starts at 1 and increases with each new
165  text file.
166
167  The "Text file extensions" option lets you specify a comma-separated list of case-
168  sensitive file extensions that xmms-shn will recognize as text files.  The default
169  list is "txt,nfo".  This option is only useful if "Load text files in file
170  information box" is enabled.
171
172  Note:
173
174  Text file support is useful for quickly determining information about the given
175  file and/or the show it belongs to, assuming such information is contained within
176  the text files.
177
178  Text file location assumes some combination of the following two directory
179  structures: all text files and .shn files in the same directory, or text files
180  in a directory with all .shn files in subdirectories one level deep.  This
181  pretty much covers all directory structures seen on live music servers and file-
182  sharing programs.
183
184
185--------------------
186File information box
187--------------------
188
189This section describes the output shown in the file information window, which
190can be viewed by choosing 'File Inf.' from the 'Misc. Opt' button in the
191playlist editor, or selecting 'View File Info' from XMMS's main popup menu.
192
193Properties tab:
194===============
195
196  Filename:  Shows the full path to the .shn file being examined.
197
198  Length:  Shows the length of the WAVE data in the file, in m:ss.nnn format.
199  If the WAVE data is CD-quality (see below for definition), then the length is
200  shown in m:ss.ff format, where ff is a number from 00 to 74 that best
201  approximates the number of frames (2352-byte blocks) remaining after m:ss.
202
203    Note on rounding:  If the WAVE data is CD-quality, then its length is
204                       rounded to the nearest frame.  Otherwise, it is rounded
205                       to the nearest millisecond.
206
207  Seekable:  Shows whether a seek table was found for the given file.
208
209  Seek table revision:  Shows the revision number of the seek tables, if
210  present.  Note that it is possible for this field to contain a numeric value,
211  even when the file is not seekable - for example, xmms-shn might detect that
212  certain seek tables are unsupported or buggy, and disable seeking in those
213  files.
214
215  Compression ratio:  Shows the compression ratio for the given file.  This is
216  simply the file's actual size divided by its total size, as calculated from
217  the chunk size contained in the WAVE header.  Note that if the given file is
218  truncated (or has junk appended to it), then the compression ratio will be
219  skewed accordingly.
220
221  CD-quality properties:
222  ----------------------
223
224  CD-quality:  Shows whether the given file is CD-quality.  A file is considered
225  to be CD-quality if its header indicates 2 channels, 16 bits/sample, 44100
226  samples/second, and 176400 average bytes/second.
227
228  Cut on a sector boundary:  If the given file is CD-quality, then this shows
229  whether the length of its WAVE data is a multiple of 2352 bytes (1/75 of a
230  second).  Otherwise, "n/a" is displayed.
231
232  Sector misalignemt:  If the file is CD-quality, then the sector misalignment
233  is simply the remainder when the data size is divided by 2352; i.e. it is the
234  number of bytes by which the audio data exceeds the previous sector boundary.
235
236  Long enough to be burned:  If the given file is CD-quality, then this shows
237  whether the length of its WAVE data is long enough to be burned (705600 bytes,
238  or 3 seconds in length).  Otherwise, "n/a" is displayed.
239
240  WAVE properties:
241  ----------------
242
243  Non-canonical header:  Shows whether the WAVE header is canonical.  A header
244  is considered canonical if it is 44 bytes long (this is the smallest possible
245  size that a WAVE header can be).
246
247  Extra RIFF chunks:  Shows whether there are any extra RIFF chunks following
248  the data chunk in the WAVE stream.
249
250  Possible problems:
251  ------------------
252
253  File contains ID3v2 tag:  Shows whether the file contains an ID3v2 tag, and
254  if so, how many bytes it occupies.  This is not a problem for xmms-shn (it
255  was able to read the file after all), but could pose a problem for programs
256  that are not able to process files with ID3v2 tags.
257
258
259Details tab:
260============
261
262  This tab primarily shows the raw information taken from the WAVE header of the
263  given file.  Each entry is self-explanatory.
264
265
266Text file n tab(s):
267===================
268
269  These tabs, if any, show the contents of all text files found in the same
270  directory or parent directory as the given file.  The associated file name for
271  each tab is contained in the frame surrounding the text, and the full path to
272  the file being displayed is shown just above the text.  You can control which
273  files are considered to be text files with the "Text file extensions" option in
274  the configuration window.  Make sure to select the "Load text files in file
275  information box" option if you want to see these tabs.
276
277
278--------------------
279Shorten 3.x overview
280--------------------
281
282Wayne Stielau has extended shorten 2.3 to support the creation of seek tables.
283Seek tables are simply descriptions of the internal state of the shorten
284algorithm at specific points in the decompression.  This allows a modified
285shorten decoder to restore the decoder state of the shorten algorithm for a
286point at (or very close to) the desired seek point.  You can get the latest
287version at any of the URLs below:
288
289  http://www.etree.org/shnutils/shorten/
290  http://shnutils.freeshell.org/shorten/
291
292Seek tables may be appended to the .shn itself, or stored in a separate file
293(usually with a suffix of '.skt').  xmms-shn supports both of these options.
294
295The current implementation creates a seek table entry once every 25600 samples.
296For 'CD-quality' WAVE data (44100 samples/sec), this provides a granularity of 1
297seek table entry per 25600/44100 ~= 0.58 seconds, more than what is needed by
298either XMMS or WinAmp.
299
300At 80 bytes per seek table entry, you can expect the seek table to add about
3010.1% to the size of the existing shortened file, for 'CD-quality' WAVE data.
302So the seek table generated for 1 GB of already-shortened 'CD-quality' WAVE data
303will fit on a floppy!  Quite a deal, if you ask me.  :-)
304
305Best of all, shorten 3.x is fully backward compatible with version 2.3, meaning
306that any files created by shorten 3.x can be processed by version 2.3 with no
307problems.
308
309The command line options for dealing with seek tables in shorten 3.x are:
310
311  -e       erase seek table appended to input file                          *
312  -i       inquire as to whether a seek table is appended to input file     *
313  -k       append seek table information to existing shorten file
314  -s       generate seek table information in separate file [input file].skt
315  -S[name] generate seek table information in separate file given by [name]
316  -v 3     format version number (2: no seek info; 3: default)              *
317
318 * only available in versions 3.2 and up
319
320By default, any file shortened with version 3.x will automatically have seek
321tables appended to it.  In later versions (3.2 and up), you can disable this
322with the -v2 switch.
323
324** NOTE ON SEEKING IN FILES ENCODED WITH NON-DEFAULT OPTIONS **
325
326Seek tables are unable to support all types of SHN files due to limitations in
327their original design.  The only files they can fully support are ones encoded
328with the following values:
329
330  -c = 1 or 2  (number of channels, default is 1)
331  -p in the range [0 .. 3]  (maximum LPC predictor order, default is 0)
332  -m in the range [0 .. 4]  (number of block for mean estimation, default is 4)
333
334If xmms-shn detects a file encoded with parameters that fall outside of these
335ranges, then seeking is automatically disabled for that file.
336
337
338----------
339Known bugs
340----------
341
342I test this plugin aggressively until I can no longer make it crash.  That does
343not mean that there are no bugs.  If you can crash it, I want to hear about it -
344please report it to me at the address below.  The xmms-shn webpage (see the
345Availability section above) will always contain an up-to-date list of reported
346bugs, so be sure to check that page before you send me a bug report.
347
348Also, feel free to send me any questions, comments, feature requests, patches...
349I always enjoy getting feedback.
350
351Enjoy!
352
353Jason Jordan <shnutils@freeshell.org>
354
355
356==================
357Document revision:
358==================
359
360$Id: README,v 1.27 2007/03/29 00:08:05 jason Exp $
361