This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#10182 - Addition of librm to svn
Attached to Project:
Rockbox
Opened by MohamedTarek (mtarek16) - Saturday, 02 May 2009, 11:14 GMT+2
Last edited by MichaelGiacomelli (saratoga) - Monday, 14 September 2009, 01:52 GMT+2
Opened by MohamedTarek (mtarek16) - Saturday, 02 May 2009, 11:14 GMT+2
Last edited by MichaelGiacomelli (saratoga) - Monday, 14 September 2009, 01:52 GMT+2
|
DetailsAddition of rm files to rockbox. It only adds the target files to rb's directory not to the actual build.
librm includes a makefile and a main.c for producing a test program that would convert an input rm file with cook codec to a wav file. The code still needs a lot of cleaning. |
Closed by MichaelGiacomelli (saratoga)
Monday, 14 September 2009, 01:52 GMT+2
Reason for closing: Accepted
Additional comments about closing: Accepted in r21695.
Monday, 14 September 2009, 01:52 GMT+2
Reason for closing: Accepted
Additional comments about closing: Accepted in r21695.
I only skimmed quickly, but some impressions:
cook_float should probably be removed since we're not going to try and keep fp support.
The libavutil and ffmpeg_config.h defines you're actually using can probably be combined into a cook.h file or similar.
dsputill.h can probably be combined too.
dsputil.c probably doesn't have much in it beyond the windowing functions (ff_vector_fmul_add_add_c, etc), and these can be put into cook.c
rm-wav converter using floating point cook decoder.
patch2 :
rm-wav converter using fixed point cook decoder.
patch3 :
clean code. (no ffmpeg-specific code)
-Created cook.h which defines COOKContext and the decoder's functions protoypes.
@Dave : Thanks for the commit.
Remove fft.c, mdct.c and dsputil.h.
>Remove fft.c, mdct.c and dsputil.h.
Committed in r20902.
This patch enables Rockbox to recognize a rm/ra file and parse it to get the metadata for the WPS.
The only codec supported now is cook. However, cook codec in this patch is just a fake a codec (actually it's just the one I wrote
for my qualification task ) The purpose of the codec is just to make the file run for its length just to be able to check if the parsing
was done correctly.
For read_uint32be to work properly (to eliminate warnings during compiling ) I had to #undef uint32_t, and then redefine it to unsigned
int, as it seems it was defined for "long unsigned int". Not an elegant solution, but it's not my focus currently either.
Also I had to define read_uint8() [just reads a byte] and read_uint16be() as I couldn't find it in metadata_common.h. Should I add
a read_byte() and a read_uint16be() to metadata_common.h, or just define them whenever I need them ?
The patch isn't intended for committing, it's mainly for debugging purposes.
-TABs were mistakenly used as indentation in some files.
-svn:executable property was added for some files. (I really don't know how it was added !)
-Some local functions weren't declared static.
-No handling for big endian targets.
Note : I don't have a big endian target, so I'd appreciate it if someone who has one could test this patch on it.
For example real_read_audio_stream_info() & rm_parse_header() could benefit of this, because the numerous variables could then be registers/on stack instead of memory variables (or am I wrong here and are these already on stack?)