After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 549673 - Support USF, PSF, PSF2
Support USF, PSF, PSF2
Status: RESOLVED WONTFIX
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.x
Other All
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-08-28 08:03 UTC by chris
Modified: 2011-05-19 08:13 UTC
See Also:
GNOME target: ---
GNOME version: Unversioned Enhancement


Attachments
An audacious plugin. It can play a lot of console Formats. It can used as example. (220.87 KB, application/x-gzip)
2008-11-12 04:31 UTC, chris
Details

Description chris 2008-08-28 08:03:54 UTC
Hello,
It would be pritty cool if Gstreamer supports the *.amr Format.
There is also no possibility to play *.USF (Ultra 64 Sound Format)
or PSF2 nativly. There Are many other Console Formats, the most of then will support by Audacious.

Could be Implemented any time? :)

Thanks.
Comment 1 Stefan Sauer (gstreamer, gtkdoc dev) 2008-08-28 13:10:50 UTC
Regarding amr, gstreamer can decode and encode amr-wb and amr-nb if you ave the libs installed (there are notes included with the plugins).

Regarding the other formats, it wont happen automatically. For a start you could collect ressources - where to find samples file, where to find specs or ideally libs that render them. Even better if you try to write a plugin.
Comment 2 Stefan Sauer (gstreamer, gtkdoc dev) 2008-11-09 16:07:42 UTC
Chris, are you intending to help?
Comment 3 chris 2008-11-12 04:31:08 UTC
Created attachment 122469 [details]
An audacious plugin. It can play a lot of console Formats. It can used as example.
Comment 4 chris 2008-11-12 04:36:33 UTC
PSF
A PlayStation Sound Format (PSF) file is a sound data file (akin to SPC from the Super NES) ripped directly from a Sony PlayStation video game.

The PSF format was created by Neill Corlett in 2003. Neill Corlett later created the PSF2 format. Highly Experimental is the name of the Winamp plugin that plays PSF and PSF2 files. This plugin can improve on the original Playstation sound by playing the PSF's at sampling rates above 44.1 KHz.

Generally PSF files contain a number of samples and a sequence player program. This takes far less space than the equivalent streamed format of the same song (WAV,MP3) while still sounding exactly like the original song (as opposed to formats such as MIDI which depend on the creator's accuracy and quality of the MIDI synthesizer it's played on). Several PSF subformats also have a miniPSF/PSFlib capability, wherein data that is used by multiple tracks need only be stored once (in the PSFlib) and the differences are stored, with reference to the PSFlib, in a miniPSF file, further increasing storage efficiency. Additionally sections of the PSF are zlib compressed. Generally, background music stored in PSF files can be played forever, as the sequencer properly handles its own loop points, another advantage over streamed formats.

A PSF2 file is a sound data file equivalent to the PSF, but ripped directly from a Sony Playstation 2 video game.

Both PSF and PSF2 files contains a header which specifies the type of video game system the file contains data for, and an optional set of tags at the end which can give detailed information on the file (game name, artist, length, etc.) The organization of the data is determined by each individual subformat.

PSF initially stood only for "PlayStation Sound Format", but with the addition of the PSF2, SSF (Sega Saturn Sound Format), DSF (Dreamcast Sound Format), USF (Nintendo Ultra 64 Sound Format), and QSF (Capcom Q-Sound Format) subformats, a more generic backronym was developed: Portable Sound Format.


USF:
http://en.wikipedia.org/wiki/Nintendo_Ultra_64_Sound_Format
The Nintendo Ultra64 Sound Format (USF) is a file
format developed by Adam Gashlin to store sound data
(akin to NSF for the NES) ripped directly from a
Nintendo 64 video game.

USF files are generated manually from the video game's
ROM by isolating the program code responsible for
playing music, plus the stored music data. The rest of
the bytes of the ROM are zeroed, and the resulting data
is stored sparsely (zero bytes are not stored in the
USF, so unspecified bytes can be assumed to be zero)
but otherwise without compression. The file also
contains a Project64 save state which is used to
initialize emulation upon loading the USF, rather than
follow the complete N64 boot process. The ripping
process is very manually intensive because the Nintendo
64 has no standard format in which the music playback
code and music data are stored in the ROM. USF files
can be played back in Winamp through the use of an
appropriate plug-in, such as 64th Note (http://www.hcs64.com/usf/64thnote/PJ64v12b3.zip).

The basic USF file structure is a subformat of PSF. 

example files for usf can find there
http://www.hcs64.com/usf/

I try to find more information about the formats.

   greetings from germany Chris
Comment 5 chris 2008-11-12 04:39:18 UTC
There you can find also example files
http://www.zophar.net/music/usf.html
Comment 6 chris 2008-11-18 17:16:30 UTC
Here ist an Short Specifiaction of the PSF-Format.
http://wiki.neillcorlett.com/PSFFormat
Comment 7 Stefan Sauer (gstreamer, gtkdoc dev) 2009-07-22 09:08:29 UTC
What we would need is a library that handles talking to gaming console emulators, as these songs are essentialy programs. The attached code lloks good as a starting point. For gstreamer one could look at the midi plugins in gst-plugins-bad for the gstreamer plugin skelleton.

I would not mind if someone wants to work on it, but I don't see it on anyones todo list right now.

Thanks for adding the details though.
Comment 8 Sebastian Dröge (slomo) 2009-08-31 08:41:50 UTC
It would probably make sense to add support for these file formats to game-music-emu ( http://code.google.com/p/game-music-emu/ ). It already supports many similar formats and has a plugin in gst-plugins-bad, that supports playback of all those file formats.
Comment 9 Sebastian Dröge (slomo) 2011-05-19 08:13:17 UTC
Let's close this as WONTFIX for now, support for this should be added the game-music-emu or another library and then GStreamer will (almost) automatically support these formats.