Notice: A non well formed numeric value encountered in /sites/ on line 96 Notice: A non well formed numeric value encountered in /sites/ on line 96 Notice: A non well formed numeric value encountered in /sites/ on line 96 Deprecated: Function create_function() is deprecated in /sites/ on line 104 Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /sites/ on line 845 Deprecated: Function create_function() is deprecated in /sites/ on line 111 FS#10432 : Add Yamaha SMAF codec



FS#10432 - Add Yamaha SMAF codec

Attached to Project: Rockbox
Opened by Yoshihisa Uchida (Uchida) - Sunday, 12 July 2009, 06:34 GMT
Last edited by Yoshihisa Uchida (Uchida) - Wednesday, 17 March 2010, 12:28 GMT
Task Type Patches
Category Codecs
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


Yamaha SMAF codec adds.

SMAF (.mmf extension file) is used as the format of the music file for the cellular phone.

This codec supports only wave data (ADPCM and PCM).
It does not support MIDI, picture, and movie.

It is necessary to apply patchs of  FS#10422 ,  FS#10423 ,  FS#10424 .
This task depends upon

Closed by  Yoshihisa Uchida (Uchida)
Wednesday, 17 March 2010, 12:28 GMT
Reason for closing:  Accepted
Additional comments about closing:  new smaf codec commits and manual updates.
Comment by alex wallis (alexwallis646) - Tuesday, 14 July 2009, 21:35 GMT
this patch will not apply either on the latest svn code at time of writing r. 21873
Comment by Yoshihisa Uchida (Uchida) - Thursday, 16 July 2009, 12:04 GMT
please apply the patch of  FS#10422 ,  FS#10423 ,  FS#10424 , and  FS#10425 . And after this task's patch file applies.
When SMAF codec build failure still, please tell me the build environment.
Comment by alex wallis (alexwallis646) - Thursday, 16 July 2009, 13:32 GMT
I wasn't able to apply fs # 10424 directly after fs#10423. For some reason though I was able to apply it after I applied fs #10425.

However, I have now applied all the patches that this patch depends on, and it still won't apply.
I also can't apply fs #10433.
So the patches of yours that won't apply are fs#10432 and fs #10433.
I am running a cygwin build environment.
Comment by Yoshihisa Uchida (Uchida) - Thursday, 16 July 2009, 14:45 GMT
It is very mysterious.
In my build environment, all patches can be normally applied.

I operate the follwoing:
$ cd rockbox (~/rockbox is stored Rockbox souces)
$ patch -p1 < ../rb_aiff_wav.patch ( FS#10422 )
$ patch -p1 < ../rb_ieee_float.patch ( FS#10423 )
$ patch -p1 < ../rb_adpcms.patch ( FS#10424 )
$ patch -p1 < ../rb_ima_adpcms.patch ( FS#10425 )
$ patch -p1 < ../rb_smaf.patch ( FS#10432 )

My build environment
Windows + Cygwin

Comment by alex wallis (alexwallis646) - Thursday, 16 July 2009, 15:26 GMT
Hi. Just a thought, could you please make me a combined dif of all the patches, so that all I have to do is apply that one diff file? maybe that will apply for me. I tried removing all the individual patches and applying again from scratch, but again those two patches will not apply.
Comment by Yoshihisa Uchida (Uchida) - Monday, 20 July 2009, 05:08 GMT
I send the patch which combined all patches ( FS#10422  -  FS#10425 , and  FS#10432 ).
Comment by alex wallis (alexwallis646) - Friday, 24 July 2009, 15:54 GMT
Hi. sorry for not testing your combined diffs, I have been away in ireland for the past week.
I have just tried to apply them, and with the combined dif for this task, I am getting a lot of errors saying the files already exist. I assume this is because they were created by the other diff? is it possible for you to simply put up a diff of all your codecs to date that will apply without any problems? as at the moment I seem to be getting problems when I try to apply this combined diff.
I would simply like to be able to apply all your codec patches to date in one go.
Comment by alex wallis (alexwallis646) - Friday, 24 July 2009, 16:20 GMT
OK, both diffs seem to apply fine individually, I just can't seem to apply one on top of the other. I guess that's because both try to create files that the first applied one already creates. I guess that whatever the problem was with the individual patch files must be gone with these combined diffs. I wonder what was causing the original problem.
Comment by Yoshihisa Uchida (Uchida) - Tuesday, 16 February 2010, 09:43 GMT
I send new patch.

- sync r24691
- sync new  FS#10424 ,  FS#10425  patch

Please apply new  FS#10424  and  FS#10425  patch before applying this patch.
Comment by Alexander Levin (fml2) - Wednesday, 24 February 2010, 11:51 GMT
I think the task can be closed only after the manual has been updated as well. Please document the new supported audio file type in the manual.

And one more thing: it's good to say in what SVN revision the patch has been committed.
Comment by MichaelGiacomelli (saratoga) - Wednesday, 24 February 2010, 16:09 GMT
One other suggestion:

static unsigned char smafbuf[1024];

The metadata parser are loaded all the time, unlike the codecs (which load only when needed). This is a very large buffer to leave allocated all the time in rockbox even if no SMAF files are used. Putting this on the stack would allow the memory to be freed after the parser is done.
Comment by Steve Bavin (pondlife) - Wednesday, 24 February 2010, 17:31 GMT
I've moved that buffer - I probably misunderstood, but it seems local to one function anyway. There has still been a big binary size increase (~2K) which ought to be investigated further.
Comment by Yoshihisa Uchida (Uchida) - Sunday, 28 February 2010, 05:21 GMT
SMAF header parsing process changes;
- title/artist/composer are stored id3v2buf instead of id3v1buf.
- I corrected that there is no problem even if audio data is at which position from the head.

Please verify it.
Comment by Yoshihisa Uchida (Uchida) - Wednesday, 03 March 2010, 11:39 GMT
I change my new patch more.
Because the increase size of the firmware after it applies is large (about + 1k), is committing impossible?
I check and change logics more (sigh...).