-
Notifications
You must be signed in to change notification settings - Fork 22
/
NEWS
1200 lines (1012 loc) · 58.9 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1.14.4
---
Who reworks a parsing and data mangling without really making sure that things still work like before? I hope I won't do so in future. Not again.
- Fix resync logic to properly work again (used to prematurely end stream on bad headers). A regression again, this sucks, but at least we got a regression test for that now.
- Fix aeon-old regression (since 1.11.0) about short seeks: Bit reservoir was reset also for short seeks that did not break continuity.
- Another damned regression got fixed: Sample-accurate seek for files without full gapless info.
1.14.3
---
- Fix regression from 1.14.1 in parsing of bad free format streams, avoiding apparently endless loops (just very slow reading, in fact).
1.14.2
---
- Fix writing of WAV to stdout.
It is still not the best of ideas to do so, though. At least make sure to fix rate and channels.
1.14.1
---
- Fix subtle bug that could trigger failure to detect a format change on resync when using libmpg123's feeder API.
That bug has been there since ages but was neutralized by other (buggy) behaviour of the parser before the little overhaul. The Law of an Even Number of Bugs.
1.14.0
---
- libmpg123 API version 36 (see NEWS.libmpg123)
- Add --ignore-streamlength.
- But also deal with concatenated (Frankenstein) streams: Not applying gapless cutting once we're over the announced number of frames.
- Also, gapless cutting is only applied if relevant information is present. Previously, at least the decoder delay has been cut.
- Add --lyrics for printout of lyrics (from USLT in ID3v2).
- Added handling of SIGUSR1 and SIGUSER2 to terminal control code, configurable via --ctrlusr1 and --ctrlusr2.
- Some low-level API added (mpg123_framedata(), mpg123_framepos(), buffering and resampling control).
- Added info about input buffer fill to mpg123_getstate().
- ReplayGain: Try to detect LAME below 3.95 for the different reference level of 83 dB (adding preamp of 6 dB). Version 3.95 itself (not 3.95.1) I cannot detect. User-set gain values are not touched.
- Keep silent about missing bit reservoir when ignoring frames. That is the whole point (mostly;-).
- Add the new/old WRITE_SAMPLE variant from MPlayer that makes the generic decoder faster on older CPUs (x86 at least). Not on x86-64, though (it's not enabled per default there).
- Handle out-of-disk in the file writers (a bit, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
- Added Xcode project files to build libmpg123 on Mac OS and iOS
- 32 bit output for sndio output (patch by Brad Smith).
- Remote control interface knows LOADLIST command now.
- Now freeing meta data memory after printout.
- Some documentation cleanup, including manpage fixes by quadrispro.
- Re-enabled wildcard expansion on Windows (been broken by unicode file name support).
- Fix MMX tabinit syntax (thanks to Marcel Müller for pointing that out).
- Fix SGI audio output (been broken since change to modules).
- Fix some fringe behaviour (mpg123_getformat() triggering needless reading of next frame, possibly hitting bogus MPG123_NEED_MORE).
- Resync limit now also serves to increase amount of skipped junk on beginning.
- Better separation of stream end and read error (in case there is no stream opened, even).
- Don't always complain about failed free format header search (only with verbosity level 3).
1.13.8
---
- Fix build for ARM Thumb (incompatible assembly in some macros).
1.13.7
---
- Fix endless loop in module loader when starting mpg123 in a directory that does not exist.
1.13.6
---
- Fix output of one random character in -vvv mode for ID3v2.2 frames (no buffer overflow, move along, folks;-).
1.13.5
---
- Fix reading of ReplayGain values from Lame tag (nobody seen this before?!)
(both actual values and the distinction between audiophile / radio).
- Accept application/octet-stream as input from HTTP.
- Update man page with encodings.
- Build fixes.
1.13.4
---
- Fix bogus error on resync with big offsets (hits systems that have bigger off_t than int), bug 3393801.
- Fix windows binary package build script again with plugdir.
1.13.3
---
- Fix an endless loop on bad headers, bug 3267863.
- Prevent compiler warnings about unused variables with gcc 4.6 .
- Fix return value handling of getaddrinfo(), bug 3288333.
- Make decwin size computation work for OPT_ARM and sizeof(long) != 4 (bug 3288360).
1.13.2
---
- Updated .NET wrapper (MPG123_SKIP_ID3V2, encsize and mpg123_strlen functions) by Malcolm Boczek.
- Fix crash when calling mpg123_decoder() before opening a track -- a rare use case since one can choose a decoder with mpg123_new() already.
- Fix format change detection for certain (artificial) concatenated streams (p.ex. MPEG 1 frames following MPEG 2 frames).
- Prevent the nasty of bug 3154889: No change of pitch without a current audio format. No proper solution, but more like earlier behaviour.
- Fix some compiler warnings.
- Fix a memory leak in the module loader, also some in the examples, for being pedantic.
- More use of AC_LANG_SOURCE to silence autoconf.
1.13.1
---
- Fix --float and --8bit (MPG123_FORCE_FLOAT, MPG123_FORCE_8BIT) regression, caused by introduction of 24 bit formats. (bug 3151597).
Btw: The use of specific format choice via `mpg123 -e f32` and friends is encouraged (meaning mpg123_format_none() / mpg123_format() calls in libmpg123 API).
- Loosen the parser restrictions: Allow the private header bit to vary. It is not mpg123's business anyway (finally suggested by Marcel).
1.13.0
---
- libmpg123 API version 29 (see NEWS.libmpg123)
- New optimization: ARM NEON (Cortex A series) -- kudos to Taihei, again!
- Added 24 bit integer output (truncation of 32 bit integer).
- Cleanup of symbols for the static library: Only have global symbols that are actually needed, prefix them with INT123_ to avoid conflicts.
- Added --streamdump to get a copy of the data libmpg123 used.
- Added --icy-interval and tweaked libmpg123 to make playback of ICY stream dumps possible.
- Added possibility to set module file suffix at build -- to be able to avoid .la files for plugins.
- Removed compiler directives for alignment and disable associated tests.
The tests don't work on a wide range of compilers anyway, and newer gccs
do have force_align_arg_pointer to fix bad stacks.
- There is no ChangeLog file anymore... it was autogenerated from subversion log anyway, so look there if interested.
1.12.5
---
- Fix bug with the new meta data printout of the mpg123 app; embedded null bytes in UTF-8 strings in non-UTF-8 environment would trigger buffer overflow.
Thanks to Jakub Bogusz of PLD Linux for the tip. And yes, shame on Thomas for changing working string handling code. At all.
1.12.4
---
- Fix formatting of meta data printout in UTF-8 (string length computing).
As a collorary, ID3v1 data is reduced to ASCII in UTF-8 environment, as we do never know what specific encoding that has.
1.12.3
---
- Fix a long-standing bug that subtly broke http streaming with ICY meta data when reading a bit more quickly, like when using the buffer.
I was a very simple and embarrassing bug, actually ... and it made me wonder how normal streaming still worked rather well, generally:-/
Thanks to Lint for staying with us and reporting bug 3022850, to finally get a grip on streaming reliability.
1.12.2
---
- Fix for nasty memory corruption on configurations that hand out addresses in the upper half of the memory space (the poiner alignment function broke in that case, bug 2996045).
- Various build and portability fixes (including making some exotic configure switches work (again)).
- Add dump_seekindex example
- Sync mpg123_clr to 1.12 feature set, patch provided by Malcolm Boczek
And actually include it in release tarball!
- Rework mpg123.h logic for large file stuff a bit, clients can control it by defining MPG123_NO_LARGENAME or MPG123_LARGESUFFIX.
- Include dumb wrappers to provide names suffixed with _64 on 64 bit machines and _32 on 32 bit machines, respectively, to help clients that insist on defining _FILE_OFFSET_BITS where it is not needed (or with a non-large value).
- Tuning of the internal buffer code for feeder mode to minimize its performance impact (works in 4K blocks now).
- Workaround for compiler bugs in Open64/PathScale/SunStudio (bug 3004396, suggestion by Doug Gilmore).
Note that Sun Studio is still a tricky fellow, at least when it comes to our preprocessed assembly.
Also, x86-Open64 recently produced another segfault in layer3.c on my box... GNU and intel compilers are what one can use as something stable.
- Make mpg123_getformat() return more error codes (like MPG123_NEED_MORE).
- Fix handle I/O for clients with small file offset (32 bit when libmpg123 has 64 bit).
- Fix 3DNow(Ext) standalone builds.
1.12.1
---
- Update INSTALL for the dual-mode library. No code changes.
1.12.0
---
Attention: This reverts the big bad libray name change. People did not like libmpg123_64.so at all ... so Thomas went along with proving that being responsible for a open source library package sucks for your life -- he coded large file dual-mode into libmpg123. One library with both APIs, like glibc.
- libmpg123 25.0.25:
- The separate libraries are gone again, this one is dual-mode (using ca. 750 lines of not very funny code).
- The library even translates callbacks between large file support modes.
- Introduce handle-based custom I/O in libmpg123.
- The header now defines MPG123_API_VERSION to help compile-time detection of available functions (lib is version 25.0.25 now... MPG123_API_VERSION is 25).
- Make the usage of AI_ADDRCONFIG dependend on a configure check. This flag is not available everywhere.
1.11.0
---
Attention: There was a re-release of the source archive, because the initial one missed the actual changes for the library name.
Sorry for the inconvenience:-/
- Big bad libray name change for builds with enabled large file support.
That will break libmpg123 binary compatibility on Linux/x86 when upgrading from mpg123>=1.5.0 with enabled large file support. You need to relink with the new library called libmpg123_64.
If you do not enable large file support, or it is implicit on your platform (x86-64), the library keeps the old name of libmpg123 and everything is fine.
- Assembler cleanup:
- no use of compiler-based stack alignment (for SSE), helping portability
- mostly performance neutral, hint at faster decoding for the dynamic build and slower for static, but small change in any case
- Windows networking (access http streams in mingw builds).
- Do not ask for addresses that do not have matching interfaces configured (IPv6 on a IPv4-only host, for example).
That can help with broken DNS servers that choke on IPv6 addresses (T-Online Speedport W502V, for example).
- Fix a potential ICY reading problem were ICY metadata could be read as mp3 data (basically for MPEG frames bigger than the ICY interval).
1.10.1
---
- Help multilib setups that boldly assume that headers are invariant by removing the consistency check in mpg123.h and instead just adding a suffix to relevant functions when _FILE_OFFSET_BITS is defined. Invalid setups will now fail at the linking stage instead of the preprocessing stage.
That should cover bug 2934488.
- Fixes for gapless decoding:
- Correctly skip padding larger than one MPEG frame (strange, but occurs).
- Bug 2950218 (proper gapless cuts for seeking near the end).
- Make sure the search for the first header aborts after 64K of one-byte reads, as always intended (bug 2951334).
Certain files (or even random data) were able to fool mpg123 sufficiently enough that it basically reads through the whole file in 1-byte steps in search for MPEG data.
The limit of 64K will very likely be configurable in a future mpg123 version.
- Fix subtle bug with seeking in feeder mode: A seek close to the current position (meaning: the needed data offset is already in mpg123's buffer chain) resulted in skipped bytes.
- Improve the feeder mode for handling large amounts of junk at the beginning, including proper passing of the request for more data when trying to determine free format frame size. This also fixes endless looping as reported in bug 2951334.
- The parser code still needs overhaul. It is not pretty.
- Compile fix for OpenAL.
1.10.0
---
- Confirmed/fixed on OS/2 platform.
At least a static build works with native audio output and generic decoder.
- Make modules work with libtool-2.2.6b .
- Added pitch command to control interface.
- HTTP header field and MIME type parsing now case-insensitive (fixes bug 2904736).
Also, the MIME-parsing for non-playlist URLs is done the same way as from playlists now.
And, we interpret MIME types only to before a ";" (see bug 2836904).
- There is a build-time option to enable unicode file names on windows now. UNIX (Linux) does not need that, UTF-8 works natively.
An unicode-enabled build of libmpg123 expects file names as UTF-8 strings, opening of non-utf8 strings (by old applications) still works via fallback when the conversion of the string or opening of the file failed.
- Also, on Windows, --realtime now works, along with added granularity of the new --priority parameter. Note that you get the latter functionality through nice/renice on UNIX, no need to add that to mpg123.
- Added experimental framebyframe API.
- Added a new Microsoft common language runtime wrapper (aka .NET wrapper) written by Malcolm Boczek. See ports\MSVC++\2008clr\mpg123clr\ReadMe.txt for further information
- Added Visual Studio 2010 Beta 2 project files for libmpg123
- Updated autotools machinery, autogen.sh is gone, use `autoreconf -iv`.
1.9.2
---
- Fix logic failure in gapless code: The trailing silence was only cut on the first decode. So, seek-back and decode again never was gapless:-(
- Fix linker flags on MacOS 10.6 .
- Improve portability (mainly for Solaris/x86, possibly others).
- Fix reading from standard input in Windows (use binary mode).
1.9.1
---
- Fix OpenAL output issue (bug 2840085)
- Fix theoretically possible discarding of some audio samples when getting a new format.
- Fix unwanted verboseness (some error messages from library even when MPG123_QUIET was specified).
- Fix back-to-beginning for feed_skip (fixes bug 2859531).
- Fix the CPU creep bug with NtoM decoding.
That one has been nasty on you with large files since bad frame fillup has been introduced.
- Fix regression (since 1.9.0) in ID3 parsing: Now Foobar2000 RVA fields are interpreted again (among others).
- Fix some compiler warnings, minor cleanup.
1.9.0
---
- Free format support.
- ARM assembly optimizations (yay Taihei again!).
- Dither noise now runtime-generated, thus less bloated binary (thanks Taihei...).
This means that dithered decoding is now included per default.
Please note that work is ongoing to improve the dithering quality, more to come.
For example: Accurate rounding to 16bits is now always used for generic dithered decoder, there are plans to adapt the noise for different sampling frequencies.
- Buffer plays any audio type now.
- New output module: OpenAL
- Bug fixes:
- Broken frame fillup for non-signed 8 bit formats with correct zero (bug 2805665)
- Crash on invalid UTF-16 in ID3 tags fixed (thanks to Andy Hefner)
- Bad detection of separated UTF-16 strings in ID3 tags (bug 2834636).
- Topic ID3 and UTF: Now we are more tolerant with UTF16, even accepting those broken tags that id3v2 produces (multiple conflicing BOMs).
- Build system allows AltiVec on non-Macs now (don't enforce unsupported gcc flags).
- Terminal control mode is more verbose (gives hint about pressing 'h').
- The library now offers a switch and small API to defer translation of ID3 text data until client app wants to do it (or not).
1.8.1
---
- Include improvements to integer decoder from SVN trunk.
They have been accidentally promised on 1.8.0 release announcements, though they were not there. Here it is: ISO compliant fixed point decoding (speed optimizations are still reserved for next release).
- Fixed build with ./configure --enable-modules (bug in configure script).
- Fix name of binary in help screen when called with path.
- Build fix for old gcc with AltiVec code.
- Update of Sony PSP build files.
1.8.0 (The Taihei Monmament)
---
- New and improved SSE optimizations! For x86-64, too! Also AltiVec! Fast float output! Faster stereo!
Finally, this should put mpg123 into the efficiency-leading position on current hardware!
Thanks go out to Taihei Monma for pushing lots of new assembler code.
- Added proper rounding modes to 16bit integer.
- Use ./configure --enable-int-quality to prefer accuracy over speed.
- Accurate code (generic, SSE, 3dnow -- i586 has always been good) delivers ISO compliant quality with 16bit output.
- Uses fast rounding for IEEE754 floats.
- Mpg123 can do fully ISO compliant MPEG audio decoding to 16bits (of course to 32bit float/int, too).
- subtle performance enhancements via broader data alignment
- Prefer SSE code over 3DNowExt.
- It can be tight, but generally our new SSE code is better on CPUs that can do both.
- Remove HF cutoff (SFB21), has been introduced in 0.59r .
- Fix layer 1 regression (been there since version 1.x).
- Layer 1 ISO compliance test is positive now.
- Fix layer 2 regression (false positives header change).
- Layer 2 ISO compliance test is positive now.
- more sample-accurateness
- Clear frame buffers before seek.
- Decode 4 frames in advance for layer 3 (2 for layer 1 and 2) per default.
- Number of layer 3 frames to decoded in advance (and fill bit reservoir) is runtime tunable (--preframes).
- Do not stop decoding after stray ID3v1 tags in streams (bug 2793677).
- Fix handling of negative RVA2 values in ID3v2 (bug 2792417).
- Discard bitreservoir of previous frames if a resync is needed.
- improve perceived randomness of --random (do not repeat too early)
- Fix special crash case in UTF16 conversion for ID3v2.
- MPG123_MODDIR environment variable for changing module directory at runtime
- arts output fixes (bug 2715128)
- win32 output swallowing less buffers at end (but still some audio is lost, bug 2722991)
- tested mpg123 on OS/2; it works, but not the native audio output (SDL works)
- WAV output announces supported output formats correctly
- fix buffer startup to make sure the first bits of audio are not discarded (bug 2796802)
- re-enable the --gain parameter (the move to modules disabled that), untested
- Libltdl is _not_ included anymore.
- The host system is expected to provide it, otherwise plugins are not used.
- Our copy does not get in the way anymore.
- enhancements of the MSVC++ builds, including optimizations using yasm
- general build system fixes
- Legacy build system is gone.
- code cleanup
- signed/unsigned integer usage, make compilers more happy)
- simplified synth selection code (it is _less_ code now, and does more)
- Fixed behaviour of MPG123_NEW_FORMAT: Now it does not stop you from just continuing decoding without querying the (new) output format, this behaviour regression had been there since somewhen after 1.4.3 .
1.7.3
---
- Fix a regression introduced with the --doublespeed fix. Now seeking should be a lot smoother again.
1.7.2
---
- Fix a possible vulnerability in the ID3 code (negative encoding values).
1.7.1
---
- Just one fix for making the RVA switch in terminal and generic control mode work again (instead of plain silence).
1.7.0
---
- Lots of output format fun!
- now supporting 8, 16, 32 bit signed/unsigned integers,
32bit float (64bit float can be hacked in quickly)
- optimized decoders use fallback routines for non-optimized
formats transparently
- flexible resampling is automatically chosen when output does
not support standard rates (like a JACK server)
- That meant quite some restructuring in the decoder code...
- Lots of core functionality now optional, enabling small-footprint
builds of libmpg123.
- choosing among the MPEG layer codes
- NtoM resampling
- downsampling
- feeder API (mpg123_open_feed())
- ID3v2
- String API
- ICY
- output formats
- error/warning message printouts
- ... a layer3-only shared libmpg123 can be just 107K on x86-64
or 94K on x86
- --preload (tune prefill before playback for buffered mode)
- win64 support (one report at least;-), modules working on Windows
- Windows/MSVC++: fixed handling of unicode file names,
mpg123_topen() now actually working there
- You are obliged to use mpg123_tclose() now!
- using "plugins" subdir relative to mpg123 binary
(in addition to ../lib/mpg123)
- switch to libtool 2.2 and automake 1.10 for the build scripts
- though no update to new libtool 2 API, yet
- some portability fixes
- prevent user from creating non-working I/O setups
(replacing timeout reader, ICY with feeding)
- JACK output accepts port names for -a, stereo gets mixed down
when only one port is chosen
- added sndio output, contributed by Christian Weisgerber
- Make --doublespeed paramter work, porting of which has been
forgotten in the 1.x series!
Along with that, a regression in decoding has been fixed
(concerning skipping of frames in general).
1.6.4
---
- Fix for consistent NtoM resampled decoding and broken frames fillup.
1.6.3
---
- Fix sf.net bug #2413608: Make sure a new format does not slip through after early close.
- Include equalizer example file and a piece of wrapper code for MSVC++ in the distribution.
- Do not claim to support unsigned 16 bit encoding (never been the case).
- Fix default fifo detection, now it actally activates fifo support!
1.6.2
---
- Fix default IPv6 detection in configure.ac (a typo has been introduced before).
1.6.1
---
- Fix printing of largefile offsets in remote control interface.
- Some portability fixes (reduced compiler warnings on Solaris, p.ex.).
1.6.0
---
- small things inside that I forgot to mention
- some new commands for remote control interface:
- SCAN
- SAMPLE
- EQFILE
- SHOWEQ
- added --keep-open command line flag (for remote control)
- fixed equalizer file parsing to really handle comment lines as example file suggests
- more elaborate detection of UTF-8 locale, also --utf8 switch to force it
- added --fuzzy to enable inexact seeking (see below)
- added --index-size parameter for tuning accurate frame seek index
- enabling largefile support via configure
- libmpg123 11.0.11:
- added mpg123_geteq(), mpg123_tell_stream() and mpg123_getstate()
- API cleanup (take const char* for mpg123_open())
- calm down complainling (C++) compilers by completing the mpg123_channels enum
- fixed several possible crashes when user provides NULLs where it isn't appropriate
- workaround for frames that fail decoding (bad frame body, missing bit reservoir): fill up with silence
That also fixes seeking issues related to bad frames since now the fixed relation between frame and sample offsets is restored.
- Finally realized what that the resampling code for integer math (generic_nofpu) was just incomplete!
Now it works, using the defined integer multiplication.
- Detect UTF-8 in ICY conversion (instead of just assuming CP-1252, provided by Torsten Glaser).
- Prevent ugly noise when the bit reservoir is not fully there (p.ex. ignorantly cut mp3 files).
Concerned frames are silenced, but reservoir for following frames is kept.
Thanks to Patrick Dehne for the investigation and patch!
- New option for fuzzy seeking; trading sample accuracy for speed.
With that option, seeks positions are guessed using mean framesize or the Xing VBR TOC is used.
- Feeder streams work with seek index now.
- Seek frame index is runtime tunable.
- more caution with alignment issues for varying library users
- new project files to build/use libmpg123 with MSVC++ 2005 and 2008, provided by Patrick Dehne
- fixed a regression that made the pause/loop mode in terminal control slowly go backwards
Big note for libmpg123 users: Make sure your application is compiled with the same largefile setting as libmpg123!
If that does not match, you will get unresolved symbols (which is better than weird errors when using a nonmatching off_t in arguments;-).
1.5.1
---
- fix wav/au/cdr writing to stdout (bug #2044423)
- add more sensible --no-resync to replace --resync (bug #2044404)
- libmpg123 7.0.7
- fix thread safety of SSE decoder (bug #2053181)
- fix robustness of length handling, added mpg123_set_filesize() (bug #2064322)
1.5.0
---
- libmpg123 6.0.6
- Floating point decoding back again, (build time choice for now; --with-cpu=generic_float).
- More robust string handling; extended string API.
- fixed an (so far) unnoticed ID3 bug that may have obscured comment fields
- added mpg123_feed() as shortcut; using const input buffer now
- resync is enabled again for ICY streams (the trouble in the past was due to a reader bug, not the streams)
- decode ICY text data to UTF-8 (thanks, Thorsten)
- preserve file flags for timeout mode
- More elaborate (helpful?) error message for output format problems.
- Reworked HTTP code... and added IPv6 support!
- Fix the --proxy parameter (has been accidentally ignored before).
- Added --ignore-mime to work with web streams with funny playlist MIME types like "audio/megurl".
- Know MIME audio/mpegurl.
- --timeout is now also used for the connection itself (not just reading).
- Now trying to resume ALSA device after suspend.
- subtle build changes (your CFLAGS rule now)
1.4.3
---
- Fix mpg123_tell() and mpg123_seek() return values with respect to the samples in decoding buffer (bug 1947373).
- Fix (bogus) 3DNow detection on IDT C6 (bug 1947982).
- Fix mono playback of win32 output (bug 1955157).
- Fix ABI compatibility with compilers that don't align the stack like gcc does (fixing SSE crashes on win32).
1.4.2
---
- Fix build problems (for Cygwin and Win32, perhaps others, too).
1.4.1
---
- Fix a serious regression of terminal control mode (forgot to remove a term_restore(), bug 1936548).
1.4.0
---
- Enable runtime check for available and working output modules.
Now mpg123 tries all built modules (or a list specified in mpg123 -o moda,modb,modc) in turn to find a working output.
This minimizes the situation of having to specify a device when default output doesn't work for some reason.
See bug 1910500.
- libmpg123 2.2.2
- Fixing an endless loop for ICY streams that suddenly end without error (just EOF).
- Further fixes around EOF handling in (buffered/ICY) streams.
- Enable user to interrupt mpg123 when stuck in a loop of failing to open a track (with --loop).
- This time with correct RPM spec (hopefully... sorry, Michael!).
1.3.1
---
- Enable snd_pcm_sw_params_set_xfer_align() for alsa-lib < 1.0.16 (bug 1908603).
- libmpg123 2.1.2 (no-op change)
1.3.0
---
This is a _major_ fix release for http streaming!
Much more usable than earlier mpg123 1.x versions.
- libmpg123 libtool-version 2.0.2
- Fix nasty bug in ICY reader that failed to account for partial reads from slower network.
- Now non-seekable streams can get peek-ahead for MPEG sync, too, triggered by the MPG123_SEEKBUFFER flag.
- Do not try to resync on streams with ICY metadata, that won't work.
Consequently, if there's unreliable network, use --loop -1 to make mpg123 reconnect to the server on errors.
- Applying a few layer 3 decoder fixes from old mhipp CVS (hail to the creator;-)
That includes the fix for bug 1895025.
- Fix ID3v2 parser with very invalid claimed ID3v2 frame sizes (could have triggered DOS before).
- Oh, and fixed a steady memory leak in ID3 handling. Should mention that;-)
- Print ICY-NAME and ICY-URL again, as mpg123-0.6x did.
- Added --smooth option for not flusing buffer between tracks but at program end only.
- Included some contributed ports/bindings of libmpg123 under ports/ .
1.2.1
----
- libmpg123 libtool-version 1.2.1 (coincidence!)
- Earlier check for free format headers to prevent them from screwing up resync (free format still not supported)
- bug 1889051: more flexible resync, not insisting on the format of the first frame (which could have been bogus)
- Add an output write loop to handle SIGSTOP/CONT operation (bug 1890563).
- Fixed a bug where playback status for some http streams was not shown.
1.2.0
----
- libmpg123 libtool-version 1.0.1
- See NEWS.libmpg123 for details.
- This adds --resync-limit parameter to mpg123.
- Some build system work, including:
- It is now possible to build a mpg123 rpm from the source tarball via rpmbuild -tb .
- configure: Accept --with-audio=foo,bar,bla (comma-separated list) in addition to --with-audio="foo bar bla".
- autogen.sh included in distribution.
- Include the forgotten i486 files in the distribution (now that's embarrasing...).
Also a little fix for wrong --list-cpu on i486 build.
- Fix build with MinGW32.
- Fix -v stat output (time display) for MinGW32 build.
1.1.0
----
- Added arts output.
- More verbosity on lame/xing/info tags (on demand) instead of compile-time debugging switch.
- XMMS2 plugin cleanup (submitted to XMMS2 for inclusion)
- Improved ID3v2 robustness (let bad tags not affect playback of the important part).
- Terminal control:
- Key for going to previous track ([d], because it's left of [f] usually... no config file yet for that).
- Key for printing current playlist, [l].
- Now possible to switch on verbosity also for mpg123 -q -C
- Key for (re)printing ID3 tag info ([t]).
- Key for (re)printing MPEG frame header info ([m]).
- Soften the -q option: Now you are able to increase verbosity after -q again, like mpg123 -q -v (this fixes cplay's progress display).
1.0.1
----
- Fix module loader to prevent crash in working paths with more than 49 characters length (bug 1859413).
1.0.0
----
- Fixed Pulseaudio.
- Cleaned up configure.
- Pushed remote control version to v3.
- Updated documentation.
- Fix VPATH build for generated mpg123.h .
1.0rc3
----
- Fixed JACK output.
- Disable buffer when statically building CoreAudio in (MacOSX); with CoreAudio module the buffer works, with static output it doesn't.
This is the situation because of fork() discrimination by Apple Inc. .
- Added verbosity to tell about ID3v2 text encodings (level 4).
- minor cleanup
1.0rc2
----
- Fixed some bugs, the ID3v2 interface of libmpg123 is safer now (there were possibly stale pointers in there).
- Buffer mode got vital improvements (yeah, that is sort of feature creep during release process, but worth it)
The improved communication makes it possible to skip tracks in terminal control mode without the hack to immediately restart playback.
To be able to do seeking in terminal mode with buffer properly, buffered playback stops on seek keys. You restart playback after you are done with seeking.
- Support either portaudio v18 or v19 API (v18 works for me, v19 works according to user report).
- Audio output handling got safer and more clean, a byproduct of implementing the above. I stumbled over some things and had to fix it (yeah, feature creep in parts again, but still: Worth it!;-)
Any audio access is now restricted to either that standalone mpg123 process or the buffer process, the output being opened _after_ the fork().
There is hope that this fixes buffered output on MacOSX.
- More feature creep, this time because of something like that was already included in the Debian mpg123:
--delay parameter to issue a pause before each track (does not make sense for file writing outputs, though).
- Even more feature creep: remote control can now give ID3v2 data, also in more raw form via new "tag" command.
This sort of qualifies as bugfix, actually, since it's item 1786430 on the tracker;-)
- Make flexible rate computations more safe (especially on 32bit platforms) by switching to the looping code instead of direct multiplication/division (which blows up with integers). A possible effect was premature track ending with a forced rate.
- Flexible rate mode works _at_all_ again with fixed output support detection code (comparison of -1 with a size_t ended a loop all too early).
- check for error in flushing output (this ends mpg123 for a broken pipe, for example)
1.0rc1
----
- In one word: LOTS!
- Many small things that happened while migrating to the new setup.
- The decoder is now a library (libmpg123) which can be installed also for other programs to use.
This finally provides a heavily improved replacement for the aged mpglib. We have doxygen API doc, example codes.
You can still choose to compile the decoder statically into the mpg123 binary, though.
- We have a plugin system for audio output! This should be relieving to package maintainers for binary distributions, drastically reducing the number of builds they have to provide.
Here, too, you can choose to build one audio output into the binary like before; you can have your old-school one-piece mpg123 or the hip I-am-legion shared-lib-and-plugin flexible mpg123;-)
One exception: For now, you have to compile without modules in MinGW32/MSYS.
- ID3v2 support has been enhanced and, in the case of specific comments (those with a description), fixed.
The ID3 parsing is part of libmpg123, offering support for virtually all textual information in ID3v2.2, ID3v2.3 and ID3v2.4 tags (along with the usual 128 bytes of ID3v1 or ID3v1.1 in a block).
All tag texts are converted to UTF-8, allowing mpg123 to properly display special chars in an Unicode terminal without fuzz (for non-UTF locales, there is still the ASCII reduction).
- Gapless decoding (of layer 3 streams) is now considered to be a standard feature and is enabled per default both at build- and runtime.
- ...
0.68
----
- Fix bug 1807964: distorted playback of MPEG 2.5 files
0.67
----
Thanks go out to the ROM 106.5FM team (http://www.rom.lu/) for supporting this release with a donation on sf.net and a bottle of finest Gewuerztraminer wine from Luxembourg!
- verified that it builds on SGI IRIX 6.5 for MIPS32 and MIPS64
- enable flexible rate for stdout decoding, too
- UTF8 filtering to ASCII finally works thanks to Mika Tiainen, see bug 1745847
- corrected frame offset; -k was off by one
This means now that -k disagrees with mpg123 0.59r on many files because the old version does play a frame of silence when encountering LAME tag instead of dropping it for audio.
- added --timeout <n>: Possibility to end playback on a stream that doesn't give data for <n> seconds.
- added --loop <n>: for ... well... looping playback of a track; motivation was persistent internet streaming with unreliable connection (together with --timeout)
- build fixes
- use movap instruction in SSE assembly when compiler supports the needed alignment (idea from MPlayer)
- show decoder options in their priority order in --list-cpu/--test-cpu
- added Perl script to benchmark each of mpg123's CPU optimizations
- portability enhancements and cleanups along with testing on SunOS 4.1.2 with gcc-2.7.0
- workaround for ugly flexible rate for MMX/SSE/3DNowExt code:
--with-cpu=mmx also includes i586 code as fallback; similar with the others
0.66
----
- support for a combined build of x86 optimizations and runtime selection among these
The (supposedly) "highest" CPU-supported optimization is chosen by default,
--cpu, --list-cpu and --test-cpu parameters are there for you to take control.
- default build for x86 systems is combined "x86" with generic, i386, i586, MMX, 3DNow, SSE, 3DNowExt;
"x86_dither" also includes the dithering i586 decoder
- no automatic -march compiler flags anymore;
the --with-cpu configure option selects specific assembler code but special CFLAGS are up to you
- extended 3DNow and SSE optmizations from MPlayer's mp3lib
- x86 assembler optimizations adapted for MacOS X/Intel
- straight support for Windows using MinGW32, reactivated the native WinMM output
Core functionality including assembler optmimizations and WAV writing is there.
- assembler optimizations also for cygwin
- set remote-err automatically when putting audio to stdout
- a bit more general portability in the new build system
- fix file creation mode for -O
- experimental decoding to 32bit float (raw and WAV file): ./configure --with-cpu=generic_float
- generic control interface (-R) can create and read from a named pipe, parameter --fifo <path>
- audio bugfix: playback of mono file on stereo-only hardware, better error reporting there
- ALSA output handling underruns
- MMX, SSE and 3DNowExt fallback to i586 and below or 3Dnow for forced sample rate
- more terminal control: volume, RVA and verbosity controls
0.65
----
- now allow crc bit to vary over stream (fixes files with bad lame tag and some internet streams)
- do not try to parse id3v2.2 (as opposed to 2.3 and 2.4)
- correct id3v2.3 parsing for not expecting syncsafe integers for framesize, 2.4 introduced that
- omit gcc specific compiler flags when gcc is not there
- initital attempt to support sgi/irix with configure (please test)
0.64
----
- fixing a potential denial of service problem; broken connection to server could trigger an endless loop
0.63
----
- build fixes, only relevant to developers and people who had problems building
0.62
----
- JUMP command in generic frontend accepts offsets/positions in seconds (JUMP 4s vs. JUMP 4)
- initial support for ICY meta data in SHOUTcast streams
- a bit of fixing with rva code, added rva and general volume control to generic frontend
- accepting more MIME types for http streaming (application/pls and audio/x-mpeg)
- ID3v2 info output taking less space per default - more resembling the old ID3v1 view for short tags, full view with always one line per item via extra --long-tag switch
- generally less verbosity (i.e. noise on console) per default
- ID3v2 now having some kind of support for unicode; trying to print what's latin1-compatible and prevent messing up of terminal with unknown bytes
- several bug fixes and small improvements
0.61
-----
- improved AltiVec code from Taihei Monma
- an i486 optimization by Petr Salinger
- improving interactive experience (terminal, frontends)
-> prevent/lessen bad effect after seeking while paused
-> show targeted position while seeking in terminal mode while paused
-> not messing up terminal on unexpected errors
- decoder robustness - better file sync (weird junk at beginning, some vbr frames)
- build system improvements:
-> fixing configure isses on some platforms
-> adding cygwin, kfreebsd
- extended fix for CVE-2006-1655
- generic code should compiling again...
0.60 final (The Team!)
-----
- no functional changes
0.60-beta6 (Thomas Orgis)
-----
- more use of ID3v2 tags, mpg123 now displays both (merged) info from ID3v2 and ID3v1; trying to support both ID3v2.3 and ID3v2.4, but ignoring encoding (UTF8 should still work if your terminal supports it, straight unicode should work except for parsing genre numbers and multiline strings)
0.60-beta5 (Thomas Orgis)
-----
- more robust playlist support:
-> path/url length not limited to 1023 characters anymore
-> reading in of whole playlist at program start (old operation was not really safe with playlist from http)
-> fixed bug where reading of playlist form stdin caused segfault (introduced with the pls format support)
- smaller cleanups, screen output cosmetics
0.60-beta4 (Nicholas Humfrey & Thomas Orgis)
-----
- proper seeking, also for VBR streams
- real two-way seeking in remote control mode at all
- better estimates of remaining frames (on vbr files), exact if Xing header is found
- Removed libao support (as it is GPL and we aren't - and we don't need it with native Alsa)
- Added ALSA 0.9/1.0 support by Clemens Ladisch (old alsa is in audio_alsa05.c but will most likely vanish soon)
- Added PortAudio audio-output support
- Added SDL audio-output support
- Fixed NAS audio-output support
- re-enabled MPEG 2.5, code just seems to work
- improved stream checking; being more willing in general (favor resync instead of bail out) but directly give up if free format stream is obvious
- Whee! Initial Relative Volume Adjustment (buzz) support with reading of ReplayGain values in lame/info tag, the RVA2 frames in ID3v2.4, ID3v2 TXXX tags from foobar2000 (please test, someone!) and custom ID3v2.3 comments entitled RVA / RVA_ALBUM / RVA_AUDIOPHILE / RVA_RADIO / RVA_MIX
- more persistence in trying to get http streams
0.60-beta3 (Thomas Orgis)
-----
- fixed bug with segfault in http code on stream from live365.com - bug id 1529266
- made http request HTTP/1.0 compilant again (tested only without proxy) - bug id 1529319
- now using http content-type header to check for correct types mpg123 can understand
-> you can now always use -@ for a single http resource (direct stream or playlist) since a stream will be reopened based on MIME type,
though omitting it will save you one http request to the server in the direct stream case...
- now simple parsing of shoutcast pls playlists (how did you people use shoutcast before?)
- playlist mode enhanced with selective playback of one entry in list (--listentry parameter)
0.60-beta2 (Thomas Orgis)
-----
- fixed bug in terminal control mode that caused the f key to quit program isntead of advance to next file (introduced by the first attempt to restore "normal" Ctrl+C behaviour in terminal control mode)
0.60-beta1 (Thomas Orgis & Nicholas Humfrey)
-----
On the way to the first new offical realease since years!
- new license: all LGPL except the old audio_alsa.c
- merge with Nicholas' sourceforge package
- autooled configure/make system
- MacOSX, Jack, libao (alsa 0.9/1.x support through that)
- experimental gapless playback for layer 3
- merged in MMX and AltiVec optimizations
- security bug fix of GLSA 200607-01 and catching possible crashes found by fuzzing
- fixed many issues here and there
- polished help messages, updated man page...
UNDERGROUND 0.59r-thor7 (well, I'm going to release a _really_ official mpg123 in future) (Thomas Orgis <[email protected]>)
-----
- applied relevant stuff from Debian's 22:
- fix for CVE-2006-1655 (buffer overflow in III_i_stereo())
- strict aliasing hack in WRITE_SAMPLE of decode_i386.c
- fixed http streaming through proxy by actually using the request url...
- buffer resync on Ctrl-C (cleaning, reducing pauses with multiple files)
- removed unused esdserver variable from mpg123.h
- did NOT apply the Debian Makefile/manpage changes (going to rewrite that stuff anyway)
- made the netbsd-i386 targets visible as netbsd-x86
UNOFFICIAL 0.59r-thor6 (Thomas Orgis <[email protected]>)
-----
- split nedbsd targets for realtime priority selection code; since one needs -lpthread with it. standard netbsd target doesn't use realtime code -- I won't recommend running mpg123 as root anyway!
UNOFFICIAL 0.59r-thor5 (Thomas Orgis <[email protected]>)
-----
- Separated the the use of char* equalfile as filename from the use as TRUE/FALSE flag by introducing int have_eq_settings. Compilers kept nagging about assigning and integer (TRUE) to char* ... and it feels more right this way.
- Made control_generic aware of real being possibly different than float (seq command used to raise an FPE on OSF1 when this assumption was not the case.
- Fixed the command line arg parsing to work properly on Alpha (32 and 64 bit mixup)
UNOFFICIAL 0.59r-thor4 (Thomas Orgis <[email protected]>)
-----
- merged with 0.59r-19 from Debian project (Daniel Kobras <[email protected]>), hopefully fixing all those security vulnerabilities
-> my dirty http_open and open_stream variants now replaced by more proper code
-> still my (rather workloaded) parsing/processing in control_generic, but now including the idea to watch out for \n, \r\n and \r (or \n\r, for that matter;-)
UNOFFICIAL 0.59r-thor3 (Thomas Orgis <[email protected]>)
-----
- hacked additional variants of http_open and open_stream that return errors instead of exit()ing; makes more sense when used by a frontend
- further cleanup (and return to using continue instead of nested if(){}else{if()else{}}) in command processing, better error messages there
UNOFFICIAL 0.59r-ThOr(remote-err,eq,flushing) (Thomas Orgis <[email protected]>)
-----
-added audio_flush() calls to various places in control_generic.c to make sure there is nothing left in there that hurts later (not sure if this has effects)
-(re?)enabled (?) code for stream info
-corrected answer of JUMP (now gives actual reached position, +/- 1 frame since I'll still have to figure out what frame 0 really is...)
UNOFFICIAL 0.59r-realeq-remoteerr: (Thomas Orgis <[email protected]>)
-----
- applied patch from Cool Feet Audio project ([email protected], see README.cfa) to use real-time equalizer in remote mode
- applied patch from AMF (amf.sourceforge.net) by Steve Grundell for remote communication not polluting the STDOUT where the audio data is read from (instead using STDERR) ... and faster seeking, maybe
The patches go not cleanly together, but rejects are trivial. Thus, a combined patch with both would makes sense.
- modified (IMHO improved) the control_generic command reading: now always making sure that the full command is read up to a mandatory \n; also reworked the application of the commands afterwards
- added SEQ command: simple eq with only 3 bands
- added SILENCE command: I don't want the playback messages when I don't read them (since my frontend is reading the STDOUT it knows what is going on)
- added SLJ command: SILENCE-LOAD-JUMP... a hack for my hacked mixplayd... maybe one should remove that again.
0.59r: (MH)
-----
- applied audio_alib changes from Ralf Hildebrandt <[email protected]>
- some 'paetsches' from DK
- minor optimizations in layer3 (dequantize/huffman)
- BSDOS 4.0 with gcc added to Makefile (<[email protected]>)
- Solaris-ESD patch from Ryan Prosser <[email protected]>
- Added Frontend changes from Bertrand Petit <[email protected]>
- more DK 'paetsches' (final dk7-clubhaus edition), includes extended term
control
- SGI audio fix for non RAD machines from Erik Mouw <[email protected]>
- fixed ugly bug in layer3 dequant for bt==2 (may cause high frequency clitchs)
- AMD-3DNow optimizations in decode and dct64
- OS/2 reworked from Samuel Audet (see audio_os2.c for more)
- added freebsd-esd make-entry from Daniel O'Connor ([email protected])
- added enhanced head_check from D. Skarda <[email protected]>
- applied 'xterm-title-patch' from "Wilson, Jeff D" <[email protected]>
- more esd changes from Robert Bihlmeyer <[email protected]>
- applied Hannu Napari's <[email protected]> SGI audio patches
- minor changes in httpget.c and mpg123.c
- added native AIX support from [email protected]
- applied playlist patch from <[email protected]>
- more SGI audio patches from Gilles Zunino <[email protected]>
- applied esdserver patch from Matthew Parslow <[email protected]>
- added some fixes for control_generic
0.59q: (MH)
------
- ESD fixes
- minor bugfixes (DK patch ;)
- au and cdr 'support' (it's a hack)
- Fixed 'VBR' Bug in get_scale_fac1(). Thanx to <[email protected]> for
this. (Wasn't really a VBR Bug. The new encoders just triggered it.)
- Added equalizer patch from <[email protected]>
0.59p: (MH)
------
- Added mpglib (see mpglib directory)
- 'make generic' is more generic now
- Added HPUX/ALib support from Ducroquet Erwan ([email protected])
- Added EsoundD support from <fill it in>
- Added exp. relatime support (compile with -DSET_RT)
- Added linux-sparc patch from <hmm lost email)
- Added genrepatch from Shane Wegner <[email protected]>
- Added wav-File patch Samuel Audet <[email protected]>
- Added SGI-RAD support from "J. Dean Brederson" <[email protected]>
- Added sajberplay/FreeBSD patch from Chou Ye-chi <[email protected]>
- Added 486 optimizations from Fabrice Bellard <[email protected]>
- Added combined output devices on SUN (ie Speaker and headphones together)
- Added audio_alsa.c (under GPL license) for the ALSA sound system from
A. Hermansen <[email protected]> and J. Kysela <[email protected]>
- Added K6-3DNow patches from KIMURA Takuhiro <[email protected]>
- Added MINT patches from Petr Stehlik <[email protected]>
- Fixed minor bug for linux-i486 and mono
0.59o: (MH)
------
- fixed Bug with stereo streams on mono audio hardware for OSS
- fixed a bug with mono output and 1:1 (no) rate conversion
- again changes in the probe code
- fix in the buffer code for the case, that audio parameters are changing
- more changes to the flexibel rate converter, should now work when
writing to STDOUT.
- Added Andy's (<[email protected]>) float2int speed up proposal
(check WRITE_SAMPLE in decode_i386.c) .. Maybe someone wanna take the
idea and put it into the decode_i586.s part?
- Added TK3Play support from Brian Foutz <[email protected]>
(compiles but untested)
- RIFF Header fix (according to Thomas Niederreiter's
<[email protected]> patch)
- m68k patch from Stefan Gybas <[email protected]> applied
- minor additional PPC changes applied
- resync and EOF hang fixed
- resync and bitrate correction relaxed
- Slightly change verbose output; added countdown
0.59n: (MH)
------
- fixed shuffle bug
- added memory mapped IO for file reading
- added MPEG 2.5 12kHz and 8kHz table entry
- started flexibel rate conversion ..
- new '-Z' / '--random' option
- minor clean-up
- splitted audio file in audio system dependend smaller parts
- started system stream support (external program: system.c)
- unsigned 8 bit (instead of ulaw) is now default for 8bit operation
- Linux PPC patch from Grant Erickson <[email protected]> applied
- added BSDi patch from Peter Berger <[email protected]>, who reported
a failure when catching signals
- minor bug fix in the control interface for sajber jukebox
- fixed the ugly 'Ctrl-Z in buffer mode' bug .. YES ;)
- added buffer preload when underrun occurs (preload = 1/8 buffer size)
- minor SUN audio clean up
0.59m: (MH)
------
- Bug with RIFF header streams fixed.
- HTTP auth option patch from Henrik P Johnson <[email protected]>
- NetBSD patch(s) added from <[email protected]> and <[email protected]>
- Added advanced shuffle support from Steven Tiger Lang <[email protected]>
- fixed bug with too large big_value field
- fixed (hopefully) the bug with the '-a' option
- work-around for some pedantic compilers in fr->synth init
- some changes for the 'generic' version
- applied NAS bug-fix patch
- new (good) MPEG 2.5 tables (from Niklas Beisert)
- added WIN32 support from Tony Million
- added some bug fixes from Niklas Beisert
- fixed another ugly bug in layer3 dequantize (wrote over the border
of the 'xr' field)
- a minor HPUX clean up
- added BSD patch from Kevin Brintnall <[email protected]>
- added Makefile.win32
- added NAS big endian fix
0.59l: (MH)
------
- simple equalizer support (to be continued)
- added NAS patch from Martin Denn <[email protected]>
- real mono support
- added pentium optimized decode_i586 from Stefan Bieschewski <[email protected]>
- fixed a bug in MS dequantize function
0.59k: (OF)
------
- fixed "Accept" header in httpget.c
- fixed buffer overflow (causing core dumps) in httpget.c
- fixed display of song length
- fixed -b (buffer) problem on SGI / IRIX -- it definitely works now
- fixed problem when files with different sample rates where played,
it now works with -b (buffer), too
- fixed order of local variables in decode.c to work around a
compiler bug in ultrix
- fixed Makefile for ultrix
- reverted to old getbits.s (the new one could cause coredumps)
- more compact MPEG header display in non-verbose mode
- small fixes in buffer code and elsewhere
0.59j: (MH)
------
- added sajber jukebox control interface (it's currently a big hack)
(see 'JUKEBOX' file for more)
- added simple rewind facility .. (only used by sajber interface at the moment)
0.59i: (MH)
-----------
- added front-end (remote) patch from "Brian J. Swetland" <[email protected]>
- added OS2 patches from Niclas Lindstrom <[email protected]>
- fixed 'rewind bug'
- added patches from Leo Broukhis <[email protected]>
- added shuffle patch from Tillmann Steinbrecher <[email protected]>
- added i386-getbits from M.Stekelenburg <[email protected]>
- added fallback to 8bit if no 16bit samples support (currently linux only)
- added (slightly changed) outburst patch
from Antti Andreimann <[email protected]>
- added 'http accept' patch from Hur TaeSung <[email protected]>
- fixed buffer mode bug
0.59h: (MH)
------
- added '--8bit' option to force 'ULAW 8 BIT' playing
- pcm buffer type changed to 'unsigned char *'
- plays 2:1 and 4:1 with the real frequency (ie 11025/22050 instead
of 44100)
- program (re)sets (changed) frequency for every frame
- buffer mode is broken