Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#12069 - Playback rewrite - first stages

Attached to Project: Rockbox
Opened by Michael Sevakis (MikeS) - Saturday, 16 April 2011, 10:08 GMT+2
Last edited by Michael Sevakis (MikeS) - Wednesday, 27 April 2011, 22:19 GMT+2
Task Type Patches
Category Music playback
Status Closed
Assigned To Michael Sevakis (MikeS)
Player Type All players
Severity Low
Priority Normal
Reported Version Release 3.8.1
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Private No

Details

It's about time to start testing this since it's been working well enough for me now and better than current SVN. It renovates the codec and playback system, addressing whatever bugs are in scope for it and largely confined to directly-related files. It's not all changes I want to make but I almost made my 512KB .patch goal :p. Redoing PCM and some other stuff would be going too far in one felled swoop).

Codec interface is radically changed. NSF codec needs some updating with the metadata parsing if it's to work correctly because it can't poke values into the WPS any longer; the codec's metadata is private to it and playback. I've considered some sort of proper metadata push interface if we do want to do that sort of thing. Anyone who knows about them, give certain codecs a check; however for the most part, the changes are fairly formulaic.

There's a #define in playback.h called 'AUDIO_FAST_SKIP_PREVIEW' which enables fast skip preview to keep the displayed track in time with user actions but does use more RAM, so if it's of little benefit on a target (most likely a flash one), it can be disabled for it.
   playback-version-ii.patch (429.4 KiB)
 apps/codecs.c              |   96 
 apps/playlist.c            |   43 
 apps/codecs.h              |   67 
 apps/playlist.h            |    3 
 apps/pcmbuf.c              |   55 
 apps/pcmbuf.h              |   10 
 apps/metadata/nsf.c        |    3 
 apps/plugins/SOURCES       |    2 
 apps/plugins/test_codec.c  |   45 
 apps/gui/wps.c             |   41 
 apps/menus/playback_menu.c |    4 
 apps/appevents.h           |    1 
 apps/metadata.c            |  129 +
 apps/metadata.h            |    7 
 apps/codec_thread.c        |  675 +++---
 apps/codec_thread.h        |    7 
 apps/playback.c            | 4542 +++++++++++++++++++++++++++++----------------
 apps/playback.h            |   79 
 apps/plugin.c              |    2 
 apps/voice_thread.h        |    1 
 apps/plugin.h              |   10 
 apps/buffering.c           |  302 ++
 apps/buffering.h           |   29 
 apps/codecs/vorbis.c       |   74 
 apps/codecs/codec_crt0.c   |   50 
 apps/codecs/au.c           |   80 
 apps/codecs/ape.c          |   54 
 apps/codecs/aiff.c         |  108 -
 apps/codecs/flac.c         |   62 
 apps/codecs/raac.c         |   99 
 apps/codecs/atrac3_rm.c    |   66 
 apps/codecs/adx.c          |   40 
 apps/codecs/vox.c          |   78 
 apps/codecs/mpa.c          |   76 
 apps/codecs/mpc.c          |   76 
 apps/codecs/speex.c        |   61 
 apps/codecs/mp3_enc.c      |   59 
 apps/codecs/aac.c          |   65 
 apps/codecs/lib/codeclib.c |   27 
 apps/codecs/lib/codeclib.h |    3 
 apps/codecs/spc.c          |  124 -
 apps/codecs/tta.c          |   61 
 apps/codecs/alac.c         |  199 -
 apps/codecs/wmapro.c       |   68 
 apps/codecs/wav64.c        |  113 -
 apps/codecs/atrac3_oma.c   |  122 -
 apps/codecs/wmavoice.c     |   68 
 apps/codecs/mod.c          |   67 
 apps/codecs/sid.c          |   72 
 apps/codecs/wavpack_enc.c  |  112 -
 apps/codecs/shorten.c      |   40 
 apps/codecs/wav_enc.c      |   54 
 apps/codecs/asap.c         |   32 
 apps/codecs/wma.c          |   77 
 apps/codecs/a52_rm.c       |   77 
 apps/codecs/nsf.c          |   82 
 apps/codecs/smaf.c         |   82 
 apps/codecs/a52.c          |   53 
 apps/codecs/aiff_enc.c     |   54 
 apps/codecs/cook.c         |   63 
 apps/codecs/wavpack.c      |   78 
 apps/codecs/wav.c          |  106 -
 apps/misc.c                |    3 
 firmware/export/kernel.h   |   10 
 firmware/kernel.c          |  213 +-
 65 files changed, 5521 insertions(+), 3740 deletions(-)

This task depends upon

Closed by  Michael Sevakis (MikeS)
Wednesday, 27 April 2011, 22:19 GMT+2
Reason for closing:  Accepted
Additional comments about closing:  Committed in r29785 with a few minor tweaks.
Comment by Michael Sevakis (MikeS) - Saturday, 16 April 2011, 21:53 GMT+2
Resync for alac and aac to r29727
   playback-version-ii-2.patch (428.5 KiB)
 apps/codecs.c              |   96 
 apps/playlist.c            |   43 
 apps/codecs.h              |   67 
 apps/playlist.h            |    3 
 apps/pcmbuf.c              |   55 
 apps/pcmbuf.h              |   10 
 apps/metadata/nsf.c        |    3 
 apps/plugins/SOURCES       |    2 
 apps/plugins/test_codec.c  |   45 
 apps/gui/wps.c             |   41 
 apps/menus/playback_menu.c |    4 
 apps/appevents.h           |    1 
 apps/metadata.c            |  129 +
 apps/metadata.h            |    7 
 apps/codec_thread.c        |  675 +++---
 apps/codec_thread.h        |    7 
 apps/playback.c            | 4542 +++++++++++++++++++++++++++++----------------
 apps/playback.h            |   79 
 apps/plugin.c              |    2 
 apps/voice_thread.h        |    1 
 apps/plugin.h              |   10 
 apps/buffering.c           |  302 ++
 apps/buffering.h           |   29 
 apps/codecs/vorbis.c       |   74 
 apps/codecs/codec_crt0.c   |   50 
 apps/codecs/au.c           |   80 
 apps/codecs/ape.c          |   54 
 apps/codecs/aiff.c         |  108 -
 apps/codecs/flac.c         |   62 
 apps/codecs/raac.c         |   99 
 apps/codecs/atrac3_rm.c    |   66 
 apps/codecs/adx.c          |   40 
 apps/codecs/vox.c          |   78 
 apps/codecs/mpa.c          |   76 
 apps/codecs/mpc.c          |   76 
 apps/codecs/speex.c        |   61 
 apps/codecs/mp3_enc.c      |   59 
 apps/codecs/aac.c          |   62 
 apps/codecs/lib/codeclib.c |   27 
 apps/codecs/lib/codeclib.h |    3 
 apps/codecs/spc.c          |  124 -
 apps/codecs/tta.c          |   61 
 apps/codecs/alac.c         |  182 -
 apps/codecs/wmapro.c       |   68 
 apps/codecs/wav64.c        |  113 -
 apps/codecs/atrac3_oma.c   |  122 -
 apps/codecs/wmavoice.c     |   68 
 apps/codecs/mod.c          |   67 
 apps/codecs/sid.c          |   72 
 apps/codecs/wavpack_enc.c  |  112 -
 apps/codecs/shorten.c      |   40 
 apps/codecs/wav_enc.c      |   54 
 apps/codecs/asap.c         |   32 
 apps/codecs/wma.c          |   77 
 apps/codecs/a52_rm.c       |   77 
 apps/codecs/nsf.c          |   82 
 apps/codecs/smaf.c         |   82 
 apps/codecs/a52.c          |   53 
 apps/codecs/aiff_enc.c     |   54 
 apps/codecs/cook.c         |   63 
 apps/codecs/wavpack.c      |   78 
 apps/codecs/wav.c          |  106 -
 apps/misc.c                |    3 
 firmware/export/kernel.h   |   10 
 firmware/kernel.c          |  213 +-
 65 files changed, 5512 insertions(+), 3729 deletions(-)

Comment by MichaelGiacomelli (saratoga) - Tuesday, 19 April 2011, 08:05 GMT+2
Interestingly this patch seems to make  FS#12033  much worse. Playing the same SPC file twice in a row while the WPS screen is updating will crash my e200v1 every time. I have to let SPC run for a couple seconds before I can safely click the same file from the file browser.
Comment by Michael Sevakis (MikeS) - Tuesday, 19 April 2011, 11:12 GMT+2
Can't duplicate what you're talking about no matter what (varying database/dircache settings) even clicking as fast as I can select the SPC (about 3 times/s) but that bug shouldn't exist anyway.

ETA: it's not precisely the same patch either
Comment by JoshuaChang (JoshuaChang) - Tuesday, 19 April 2011, 13:09 GMT+2
change the spc songs rapidly in file browser should lead to system freeze, change them in wps/playlist is okay.
Comment by Michael Sevakis (MikeS) - Tuesday, 19 April 2011, 14:10 GMT+2
That's what I was doing...selecting an SPC in the file browser then clicking select as fast as possible, file->WPS->file->WPS->... etc. which gets about 3starts/second (much slower than my clicking). Nothing went wrong (e200v1). Same results clicking different ones.
Comment by JoshuaChang (JoshuaChang) - Tuesday, 19 April 2011, 15:30 GMT+2
have you turned off the dircache? on my cowon d2+ with original rockbox, the only way to get rid of this issue is disable the diracache
Comment by Michael Sevakis (MikeS) - Tuesday, 19 April 2011, 15:42 GMT+2
Dircache on/off, ramcache on/off, database yes/no, voice enabled/diabled, keyclick on/off, etc. etc., I can't get it to mess up. Maybe something with the particular files or some other setting having side effects? Attach .config and maybe the .spc as well, more appropriately over in  FS#12033 , not here.

I use .spc a fair amount and am surprised I never noticed such a problem.
Comment by JoshuaChang (JoshuaChang) - Tuesday, 19 April 2011, 15:48 GMT+2
i have no idea, for the default configuration can also reproduce the issue, i have many spc, too, and i don't think it's special file related.
Comment by Michael Sevakis (MikeS) - Thursday, 21 April 2011, 05:36 GMT+2
Updato and synced...satisfied with this one and handles track errors more thoroughtly (that's a messy thing to do right with the curent split loading). I don't want to go deeper now without the changes in SVN afterwhich I'll experiment with more radical ways of simplifying things (there are things I *don't* want to alter just yet, believe it or not :). FYI: Some things *can* be committed separately (like kernel and buffering diffs) but they're really designed to initially support this patch.
   playback-version-ii-3.patch (426.7 KiB)
 apps/codecs.c              |   96 
 apps/playlist.c            |   43 
 apps/codecs.h              |   67 
 apps/playlist.h            |    3 
 apps/pcmbuf.c              |   55 
 apps/pcmbuf.h              |   10 
 apps/metadata/nsf.c        |    3 
 apps/plugins/SOURCES       |    2 
 apps/plugins/test_codec.c  |   45 
 apps/gui/wps.c             |   40 
 apps/menus/playback_menu.c |    4 
 apps/appevents.h           |    1 
 apps/metadata.c            |  129 +
 apps/metadata.h            |    7 
 apps/codec_thread.c        |  677 +++---
 apps/codec_thread.h        |    7 
 apps/playback.c            | 4527 +++++++++++++++++++++++++++++----------------
 apps/playback.h            |   79 
 apps/plugin.c              |    2 
 apps/voice_thread.h        |    1 
 apps/plugin.h              |   10 
 apps/buffering.c           |  290 ++
 apps/buffering.h           |   25 
 apps/codecs/vorbis.c       |   74 
 apps/codecs/codec_crt0.c   |   50 
 apps/codecs/au.c           |   80 
 apps/codecs/ape.c          |   54 
 apps/codecs/aiff.c         |  108 -
 apps/codecs/flac.c         |   62 
 apps/codecs/raac.c         |   99 
 apps/codecs/atrac3_rm.c    |   66 
 apps/codecs/adx.c          |   40 
 apps/codecs/vox.c          |   78 
 apps/codecs/mpa.c          |   76 
 apps/codecs/mpc.c          |   76 
 apps/codecs/aac.c          |   62 
 apps/codecs/mp3_enc.c      |   59 
 apps/codecs/speex.c        |   61 
 apps/codecs/spc.c          |  124 -
 apps/codecs/lib/codeclib.c |   27 
 apps/codecs/lib/codeclib.h |    3 
 apps/codecs/tta.c          |   61 
 apps/codecs/alac.c         |  178 -
 apps/codecs/wmapro.c       |   68 
 apps/codecs/wav64.c        |  113 -
 apps/codecs/atrac3_oma.c   |  122 -
 apps/codecs/wmavoice.c     |   68 
 apps/codecs/mod.c          |   67 
 apps/codecs/sid.c          |   72 
 apps/codecs/wavpack_enc.c  |  112 -
 apps/codecs/shorten.c      |   40 
 apps/codecs/wav_enc.c      |   54 
 apps/codecs/asap.c         |   32 
 apps/codecs/wma.c          |   77 
 apps/codecs/a52_rm.c       |   77 
 apps/codecs/nsf.c          |   82 
 apps/codecs/smaf.c         |   82 
 apps/codecs/a52.c          |   53 
 apps/codecs/aiff_enc.c     |   54 
 apps/codecs/cook.c         |   63 
 apps/codecs/wavpack.c      |   78 
 apps/codecs/wav.c          |  106 -
 apps/misc.c                |    3 
 firmware/export/kernel.h   |   10 
 firmware/kernel.c          |  215 +-
 65 files changed, 5491 insertions(+), 3718 deletions(-)

Comment by Michael Sevakis (MikeS) - Thursday, 21 April 2011, 10:30 GMT+2
Frank, here your patch! Hope you not disappoint.

Also, adds a left-out line in apps/codecs/atrac3_rm.c that prevented resume from working there.

ETA: last one is all-in-one of the previous files
   playback-version-ii-buffering.diff (21.3 KiB)
 apps/buffering.c |  290 +++++++++++++++++++++++++++++++++++++++----------------
 apps/buffering.h |   25 +++-
 2 files changed, 225 insertions(+), 90 deletions(-)

   playback-version-ii-codecapi.diff (37.5 KiB)
 apps/codecs.c       |   96 +++----
 apps/codecs.h       |   67 ++---
 apps/codec_thread.c |  677 +++++++++++++++++++++++++++++-----------------------
 apps/codec_thread.h |    7 
 apps/plugin.c       |    2 
 apps/plugin.h       |   10 
 6 files changed, 483 insertions(+), 376 deletions(-)

   playback-version-ii-codecs.patch (162.3 KiB)
 apps/codecs/vorbis.c       |   74 ++++++++----------
 apps/codecs/codec_crt0.c   |   50 +++++++-----
 apps/codecs/au.c           |   80 +++++++++-----------
 apps/codecs/ape.c          |   54 ++++++-------
 apps/codecs/aiff.c         |  108 ++++++++++++---------------
 apps/codecs/flac.c         |   62 ++++++---------
 apps/codecs/raac.c         |   99 ++++++++++++++-----------
 apps/codecs/atrac3_rm.c    |   67 ++++++++--------
 apps/codecs/adx.c          |   40 +++++-----
 apps/codecs/vox.c          |   78 +++++++++----------
 apps/codecs/mpa.c          |   76 ++++++++++---------
 apps/codecs/mpc.c          |   76 ++++++++-----------
 apps/codecs/aac.c          |   62 ++++++---------
 apps/codecs/mp3_enc.c      |   59 +++++++-------
 apps/codecs/speex.c        |   61 +++++----------
 apps/codecs/spc.c          |  124 +++++++++++++------------------
 apps/codecs/lib/codeclib.c |   27 +++---
 apps/codecs/lib/codeclib.h |    3 
 apps/codecs/tta.c          |   61 +++++++--------
 apps/codecs/alac.c         |  178 ++++++++++++++++++++++-----------------------
 apps/codecs/wmapro.c       |   68 +++++++----------
 apps/codecs/wav64.c        |  113 ++++++++++++----------------
 apps/codecs/atrac3_oma.c   |  122 +++++++++++++++---------------
 apps/codecs/wmavoice.c     |   68 ++++++++---------
 apps/codecs/mod.c          |   67 ++++++----------
 apps/codecs/sid.c          |   72 +++++++++---------
 apps/codecs/wavpack_enc.c  |  112 ++++++++++++++--------------
 apps/codecs/shorten.c      |   40 +++++-----
 apps/codecs/wav_enc.c      |   54 +++++++------
 apps/codecs/asap.c         |   32 +++-----
 apps/codecs/wma.c          |   77 +++++++++----------
 apps/codecs/a52_rm.c       |   77 ++++++++++---------
 apps/codecs/nsf.c          |   82 ++++++++++----------
 apps/codecs/smaf.c         |   82 ++++++++++----------
 apps/codecs/a52.c          |   53 ++++++-------
 apps/codecs/aiff_enc.c     |   54 +++++++------
 apps/codecs/cook.c         |   63 ++++++++-------
 apps/codecs/wavpack.c      |   78 ++++++++-----------
 apps/codecs/wav.c          |  106 +++++++++++---------------
 39 files changed, 1373 insertions(+), 1486 deletions(-)

   playback-version-ii-firmware.diff (9.6 KiB)
 firmware/export/kernel.h |   10 ++
 firmware/kernel.c        |  215 +++++++++++++++++++++++++++++++++++++----------
 2 files changed, 183 insertions(+), 42 deletions(-)

   playback-version-ii-metadata.patch (5.6 KiB)
 apps/metadata.c     |  129 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 apps/metadata.h     |    7 ++
 apps/metadata/nsf.c |    3 +
 3 files changed, 135 insertions(+), 4 deletions(-)

   playback-version-ii-miscellaneous.diff (18.3 KiB)
 apps/playlist.c            |   43 +++++++----------------------------
 apps/playlist.h            |    3 --
 apps/pcmbuf.c              |   55 ++++++++++++++++++++++++++++++---------------
 apps/pcmbuf.h              |   10 +++++++-
 apps/plugins/SOURCES       |    2 +
 apps/plugins/test_codec.c  |   45 +++++++++++++++++-------------------
 apps/gui/wps.c             |   40 +++++++++++++++++++++++---------
 apps/menus/playback_menu.c |    4 +++
 apps/appevents.h           |    1 
 apps/voice_thread.h        |    1 
 apps/misc.c                |    3 ++
 11 files changed, 116 insertions(+), 91 deletions(-)

   playback-version-ii-playback.diff (172.2 KiB)
 apps/playback.c | 4527 ++++++++++++++++++++++++++++++++++++--------------------
 apps/playback.h |   79 
 2 files changed, 2977 insertions(+), 1629 deletions(-)

   playback-version-ii-5.patch (426.7 KiB)
 apps/codecs.c              |   96 
 apps/playlist.c            |   43 
 apps/codecs.h              |   67 
 apps/playlist.h            |    3 
 apps/pcmbuf.c              |   55 
 apps/pcmbuf.h              |   10 
 apps/metadata/nsf.c        |    3 
 apps/plugins/SOURCES       |    2 
 apps/plugins/test_codec.c  |   45 
 apps/gui/wps.c             |   40 
 apps/menus/playback_menu.c |    4 
 apps/appevents.h           |    1 
 apps/metadata.c            |  129 +
 apps/metadata.h            |    7 
 apps/codec_thread.c        |  677 +++---
 apps/codec_thread.h        |    7 
 apps/playback.c            | 4527 +++++++++++++++++++++++++++++----------------
 apps/playback.h            |   79 
 apps/plugin.c              |    2 
 apps/voice_thread.h        |    1 
 apps/plugin.h              |   10 
 apps/buffering.c           |  290 ++
 apps/buffering.h           |   25 
 apps/codecs/vorbis.c       |   74 
 apps/codecs/codec_crt0.c   |   50 
 apps/codecs/au.c           |   80 
 apps/codecs/ape.c          |   54 
 apps/codecs/aiff.c         |  108 -
 apps/codecs/flac.c         |   62 
 apps/codecs/raac.c         |   99 
 apps/codecs/atrac3_rm.c    |   67 
 apps/codecs/adx.c          |   40 
 apps/codecs/vox.c          |   78 
 apps/codecs/mpa.c          |   76 
 apps/codecs/mpc.c          |   76 
 apps/codecs/aac.c          |   62 
 apps/codecs/mp3_enc.c      |   59 
 apps/codecs/speex.c        |   61 
 apps/codecs/spc.c          |  124 -
 apps/codecs/lib/codeclib.c |   27 
 apps/codecs/lib/codeclib.h |    3 
 apps/codecs/tta.c          |   61 
 apps/codecs/alac.c         |  178 -
 apps/codecs/wmapro.c       |   68 
 apps/codecs/wav64.c        |  113 -
 apps/codecs/atrac3_oma.c   |  122 -
 apps/codecs/wmavoice.c     |   68 
 apps/codecs/mod.c          |   67 
 apps/codecs/sid.c          |   72 
 apps/codecs/wavpack_enc.c  |  112 -
 apps/codecs/shorten.c      |   40 
 apps/codecs/wav_enc.c      |   54 
 apps/codecs/asap.c         |   32 
 apps/codecs/wma.c          |   77 
 apps/codecs/a52_rm.c       |   77 
 apps/codecs/nsf.c          |   82 
 apps/codecs/smaf.c         |   82 
 apps/codecs/a52.c          |   53 
 apps/codecs/aiff_enc.c     |   54 
 apps/codecs/cook.c         |   63 
 apps/codecs/wavpack.c      |   78 
 apps/codecs/wav.c          |  106 -
 apps/misc.c                |    3 
 firmware/export/kernel.h   |   10 
 firmware/kernel.c          |  215 +-
 65 files changed, 5492 insertions(+), 3718 deletions(-)

Comment by Steve Bavin (pondlife) - Thursday, 21 April 2011, 12:43 GMT+2
Hi Mike,
I'm attempting to test on a simulator, but build fails (H300 sim, under Cygwin, FWIW):

LD vorbis.codec
/home/Steve/rockbox/buildsim/apps/codecs/libcodec.a(codeclib.o): In function `qsort':
/home/Steve/rockbox/apps/codecs/lib/codeclib.c:149: multiple definition of `_codec_main'
/home/Steve/rockbox/buildsim/apps/codecs/vorbis.o:/home/Steve/rockbox/apps/codecs/vorbis.c:108: first defined here
collect2: ld returned 1 exit status
make: *** [/home/Steve/rockbox/buildsim/apps/codecs/vorbis.codec] Error 1

This is with only the last patch (playback-version-ii-5.patch) applied to SVN r29754.
Comment by Michael Sevakis (MikeS) - Friday, 22 April 2011, 08:32 GMT+2
hmmm...don't think I changed anything in codeclib since the first patch...will check it out

I mean, it's saying codec_main is inside qsort? :p WTF?
Comment by Michael Sevakis (MikeS) - Friday, 22 April 2011, 09:21 GMT+2
I just built and ran this as an H300 sim on debian VMWare without trouble besides a few format warnings for DEBUGF (which I corrected).

ETA: Still I have no idea why you were (or may still be) getting that problem.
   playback-version-ii-6.patch (426.8 KiB)
 apps/codecs.c              |   96 
 apps/playlist.c            |   43 
 apps/codecs.h              |   67 
 apps/playlist.h            |    3 
 apps/pcmbuf.c              |   55 
 apps/pcmbuf.h              |   10 
 apps/metadata/nsf.c        |    3 
 apps/plugins/SOURCES       |    2 
 apps/plugins/test_codec.c  |   45 
 apps/gui/wps.c             |   40 
 apps/menus/playback_menu.c |    4 
 apps/appevents.h           |    1 
 apps/metadata.c            |  129 +
 apps/metadata.h            |    7 
 apps/codec_thread.c        |  677 +++---
 apps/codec_thread.h        |    7 
 apps/playback.c            | 4536 +++++++++++++++++++++++++++++----------------
 apps/playback.h            |   79 
 apps/plugin.c              |    2 
 apps/voice_thread.h        |    1 
 apps/plugin.h              |   10 
 apps/buffering.c           |  288 ++
 apps/buffering.h           |   25 
 apps/codecs/vorbis.c       |   74 
 apps/codecs/codec_crt0.c   |   50 
 apps/codecs/au.c           |   80 
 apps/codecs/ape.c          |   54 
 apps/codecs/aiff.c         |  108 -
 apps/codecs/flac.c         |   62 
 apps/codecs/raac.c         |   99 
 apps/codecs/atrac3_rm.c    |   67 
 apps/codecs/adx.c          |   40 
 apps/codecs/vox.c          |   78 
 apps/codecs/mpa.c          |   76 
 apps/codecs/mpc.c          |   76 
 apps/codecs/speex.c        |   61 
 apps/codecs/mp3_enc.c      |   59 
 apps/codecs/aac.c          |   62 
 apps/codecs/lib/codeclib.c |   27 
 apps/codecs/lib/codeclib.h |    3 
 apps/codecs/spc.c          |  124 -
 apps/codecs/tta.c          |   61 
 apps/codecs/alac.c         |  178 -
 apps/codecs/wmapro.c       |   68 
 apps/codecs/wav64.c        |  113 -
 apps/codecs/atrac3_oma.c   |  122 -
 apps/codecs/wmavoice.c     |   68 
 apps/codecs/mod.c          |   67 
 apps/codecs/sid.c          |   72 
 apps/codecs/wavpack_enc.c  |  112 -
 apps/codecs/shorten.c      |   40 
 apps/codecs/wav_enc.c      |   54 
 apps/codecs/asap.c         |   32 
 apps/codecs/wma.c          |   77 
 apps/codecs/a52_rm.c       |   77 
 apps/codecs/nsf.c          |   82 
 apps/codecs/smaf.c         |   82 
 apps/codecs/a52.c          |   53 
 apps/codecs/aiff_enc.c     |   54 
 apps/codecs/cook.c         |   63 
 apps/codecs/wavpack.c      |   78 
 apps/codecs/wav.c          |  106 -
 apps/misc.c                |    3 
 firmware/export/kernel.h   |   10 
 firmware/kernel.c          |  215 +-
 65 files changed, 5499 insertions(+), 3718 deletions(-)

Comment by Steve Bavin (pondlife) - Sunday, 24 April 2011, 19:50 GMT+2
A slightly more useful observation; I've noticed that the compiler (gcc 3.4.4) gives an earlier warning:
warning: weak declaration of 'codec_main' not supported
Comment by Michael Sevakis (MikeS) - Monday, 25 April 2011, 17:34 GMT+2
Maybe it has something to do with not declaring it as such in the headers or I did it kind of wrong ?? We do use the weak declaration in some target code and have for a long time. I have 4.3.2 installed as a native compiler.
Comment by Michael Sevakis (MikeS) - Monday, 25 April 2011, 17:43 GMT+2
I did a bit of factoring some code out of an operation that really should not be part of starting a codec. Also, this handles short tracks with behavior consistent with longer tracks (I didn't like the way I handled it above by forcing the outstanding skip to complete early even though it works anyway); videogame formats can have many short files in a row (decoding VGM is one) and well it's just better if it all looks good doing it. Later (read: after a commit) I'll see if I can take advantage of limiting decode-ahead to one track into the future.
   playback-version-ii-8.patch (427.6 KiB)
 apps/codecs.c                        |   96 
 apps/playlist.c                      |   43 
 apps/codecs.h                        |   67 
 apps/playlist.h                      |    3 
 apps/pcmbuf.c                        |   55 
 apps/pcmbuf.h                        |   10 
 apps/metadata/nsf.c                  |    3 
 apps/plugins/SOURCES                 |    2 
 apps/plugins/test_codec.c            |   45 
 apps/gui/wps.c                       |   40 
 apps/menus/playback_menu.c           |    4 
 apps/appevents.h                     |    1 
 apps/metadata.c                      |  130 
 apps/metadata.h                      |    7 
 apps/codec_thread.c                  |  677 ++---
 apps/codec_thread.h                  |    7 
 apps/playback.c                      | 4584 ++++++++++++++++++++++-------------
 apps/playback.h                      |   79 
 apps/plugin.c                        |    2 
 apps/voice_thread.h                  |    1 
 apps/plugin.h                        |   10 
 apps/buffering.c                     |  288 +-
 apps/buffering.h                     |   25 
 apps/codecs/vorbis.c                 |   74 
 apps/codecs/codec_crt0.c             |   50 
 apps/codecs/au.c                     |   80 
 apps/codecs/ape.c                    |   54 
 apps/codecs/aiff.c                   |  108 
 apps/codecs/flac.c                   |   62 
 apps/codecs/raac.c                   |   98 
 apps/codecs/atrac3_rm.c              |   67 
 apps/codecs/adx.c                    |   40 
 apps/codecs/vox.c                    |   78 
 apps/codecs/mpa.c                    |   76 
 apps/codecs/mpc.c                    |   76 
 apps/codecs/speex.c                  |   61 
 apps/codecs/mp3_enc.c                |   59 
 apps/codecs/aac.c                    |   62 
 apps/codecs/lib/codeclib.c           |   27 
 apps/codecs/lib/codeclib.h           |    3 
 apps/codecs/spc.c                    |  124 
 apps/codecs/tta.c                    |   61 
 apps/codecs/alac.c                   |  178 -
 apps/codecs/wmapro.c                 |   68 
 apps/codecs/wav64.c                  |  113 
 apps/codecs/atrac3_oma.c             |  122 
 apps/codecs/wmavoice.c               |   68 
 apps/codecs/mod.c                    |   67 
 apps/codecs/sid.c                    |   72 
 apps/codecs/wavpack_enc.c            |  112 
 apps/codecs/shorten.c                |   40 
 apps/codecs/wav_enc.c                |   54 
 apps/codecs/asap.c                   |   32 
 apps/codecs/wma.c                    |   77 
 apps/codecs/a52_rm.c                 |   77 
 apps/codecs/nsf.c                    |   82 
 apps/codecs/smaf.c                   |   82 
 apps/codecs/a52.c                    |   53 
 apps/codecs/aiff_enc.c               |   54 
 apps/codecs/cook.c                   |   63 
 apps/codecs/wavpack.c                |   78 
 apps/codecs/wav.c                    |  106 
 apps/misc.c                          |    3 
 firmware/export/kernel.h             |   10 
 firmware/export/config/sansafuzev2.h |    4 
 firmware/kernel.c                    |  215 +
 66 files changed, 5552 insertions(+), 3717 deletions(-)

Loading...