mirror of
http://mpg123.de/trunk/.git
synced 2025-07-30 02:01:12 +03:00
mpg123, libout123, fmt123: Make a very special friend happy, introduce output mute.
This introduces software muting in libout123, to be triggered via terminal control key 'u' (m was taken) or the remote control commands 'mute' and 'unmute'. For this, libout123 needs to know what a zero looks like in the current encoding. I hope I handled that smartly enough with the MPG123_ZEROSAMPLE macro in fmt123. I explicitly decided against linking in libsyn123. That makes only sense when going all-in and deciding that libout123 shall convert, resample, and mix on-the-fly to make input data match the output. This might be nice to have, but it is also nice to have a library that does not really care about the content it transports. It is a simple transporter with a buffer. Said buffer necessitates that the transporter knows what empty sound looks like, but I really don't want to burden it with more knowledge for simplicity. This muting needs to be inside libout123 whe the buffer is used. Feeding silence from the client application does not have latency you expect when (un)pause is already negotiated with the buffer. git-svn-id: svn://scm.orgis.org/mpg123/trunk@4589 35dc7657-300d-0410-a2e5-dc2837fedb53
This commit is contained in:
@ -22,6 +22,7 @@ COMMAND CODES
|
||||
|
||||
You can get this info via the control command "help".
|
||||
|
||||
|
||||
HELP/H: command listing (LONG/SHORT forms), command case insensitve
|
||||
|
||||
LOAD/L <trackname>: load and start playing resource <trackname>
|
||||
@ -38,6 +39,10 @@ JUMP/J <frame>|<+offset>|<-offset>|<[+|-]seconds>s: jump to mpeg frame <frame> o
|
||||
|
||||
VOLUME/V <percent>: set volume in % (0..100...); float value
|
||||
|
||||
MUTE: turn on software mute in output
|
||||
|
||||
UNMUTE: turn off software mute in output
|
||||
|
||||
RVA off|(mix|radio)|(album|audiophile): set rva mode
|
||||
|
||||
EQ/E <channel> <band> <value>: set equalizer value for frequency band 0 to 31 on channel 1 (left) or 2 (right) or 3 (both)
|
||||
@ -52,25 +57,36 @@ SCAN: scan through the file, building seek index
|
||||
|
||||
SAMPLE: print out the sample position and total number of samples
|
||||
|
||||
FORMAT: print out sampling rate in Hz and channel count
|
||||
|
||||
SEQ <bass> <mid> <treble>: simple eq setting...
|
||||
|
||||
PITCH <[+|-]value>: adjust playback speed (+0.01 is 1 % faster)
|
||||
|
||||
SILENCE: be silent during playback (meaning silence in text form)
|
||||
|
||||
STATE: Print auxilliary state info in several lines (just try it to see what info is there).
|
||||
STATE: Print auxiliary state info in several lines (just try it to see what info is there).
|
||||
|
||||
TAG/T: Print all available (ID3) tag info, for ID3v2 that gives output of all collected text fields, using the ID3v2.3/4 4-character names. NOTE: ID3v2 data will be deleted on non-forward seeks.
|
||||
|
||||
TAG/T: Print all available (ID3) tag info, for ID3v2 that gives output of all collected text fields, using the ID3v2.3/4 4-character names.
|
||||
The output is multiple lines, begin marked by "@T {", end by "@T }".
|
||||
|
||||
ID3v1 data is like in the @I info lines (see below), just with "@T" in front.
|
||||
|
||||
An ID3v2 data field is introduced via ([ ... ] means optional):
|
||||
|
||||
@T ID3v2.<NAME>[ [lang(<LANG>)] desc(<description>)]:
|
||||
|
||||
The lines of data follow with "=" prefixed:
|
||||
|
||||
@T =<one line of content in UTF-8 encoding>
|
||||
|
||||
meaning of the @S stream info:
|
||||
|
||||
S <mpeg-version> <layer> <sampling freq> <mode(stereo/mono/...)> <mode_ext> <framesize> <stereo> <copyright> <error_protected> <emphasis> <bitrate> <extension> <vbr(0/1=yes/no)>
|
||||
|
||||
The @I lines after loading a track give some ID3 info, the format:
|
||||
|
||||
@I ID3:artist album year comment genretext
|
||||
where artist,album and comment are exactly 30 characters each, year is 4 characters, genre text unspecified.
|
||||
You will encounter "@I ID3.genre:<number>" and "@I ID3.track:<number>".
|
||||
|
Reference in New Issue
Block a user