On Tue, Jan 12, 2016 at 9:21 AM, Ian Malone <ibmalone@gmail.com> wrote:
If you want to do that
you have to cheat and cache everything before you start playback. Or,
in more general terms, doing anything non-linear with multimedia
information is very difficult to handle in a streamed manner

No. I never said I wanted to "stream" anything. I wanted to play a local mp3 file sitting on my hard drive, to the default speakers. Mpg123 serves that purpose.
And as it fits the bill of "the unix way" (a simle, self-contained tool doing a single thing and doing it efficiently),IMHO it should be part of the standard toolset. That was my reasoning and I stick with that.

Now, if we drift the topic to "how to do a mp3 player" I bet I could design a player using mpg123 and standard command line gnu tools that performs much faster than one relying on the tons of smegma that come along Gstreamer + GUI toolkits that Gnome/KDE multimedia APIs.

What you call "cheating" (pre-loading the id3 info before loading every song instead of loading the whole file into ram, seeking to the end, and extracting the id3 info as each file is played) is actually efficient design, in my book.

Btw: id3 info could be obtained by using the http feature of requesting part of a file(*), by first obtaining the file size, closing the connection, then requesting the last "x" bytes (total file size - id3), that way you get your Id3 over "streaming" before requesting the whole file. :)

FC
(*)
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


--
During times of Universal Deceit, telling the truth becomes a revolutionary act
Durante épocas de Engaño Universal, decir la verdad se convierte en un Acto Revolucionario
- George Orwell