Skip to main content
Topic: MPC detection for Linux magic file (Read 4331 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

MPC detection for Linux magic file

Hi, it would be nice if the Linux utility 'file' could recognize mpc files and report some useful information about them. I have begun with the code below. You can add this to /etc/magic and test it with: 'file file.mpc'. I am no expert so any corrections and suggestions are very welcomed.

The format is simple. First number is offset in bytes. > is additional level of tests.

Code: [Select]
# Magic local data for file(1) command.
# Insert here your local magic data. Format is described in magic(5).
0    string    MP+  Musepack audio data
>3    byte        255    \b, SV pre8  
>3    byte&0xF      0x6    \b, SV 6
>3    byte&0xF    0x8    \b, SV 8
>3    byte&0xF      0x7    \b, SV 7
>>3    byte&0xF0    0x0    \b.0
>>3    byte&0xF0    0x10    \b.1
>>3    byte&0xF0    240    \b.15
>>10    byte&0xF0    0x0    \b, No profile
>>10    byte&0xF0    0x10    \b, Profile 'Unstable/Experimental'
>>10    byte&0xF0    0x50    \b, Profile 'quality 0'
>>10    byte&0xF0    0x60    \b, Profile 'quality 1'
>>10    byte&0xF0    0x70    \b, Profile 'Telephone'
>>10    byte&0xF0    0x80    \b, Profile 'Thumb'
>>10    byte&0xF0    0x90    \b, Profile 'Radio'
>>10    byte&0xF0    0xA0    \b, Profile 'Standard'
>>10    byte&0xF0    0xB0    \b, Profile 'Xtreme'
>>10    byte&0xF0    0xC0    \b, Profile 'Insane'
>>10    byte&0xF0    0xD0    \b, Profile 'BrainDead'
>>10    byte&0xF0    0xE0    \b, Profile 'quality 9'
>>10    byte&0xF0    0xF0    \b, Profile 'quality 10'
>>27    byte  0x0    \b, Buschmann 1.7.0-9, Klemm 0.90-1.05
#EncoderVersion %  2 == 1        Alpha (1.05a...z)
>>27    byte&0x1    0x1    \b (Alpha
#EncoderVersion %  2 == 0        Beta (1.06)
#EncoderVersion % 10 == 0        Release (1.0)
>>27    byte  >0
>>>27    byte&0x1    0x0    \b (Release or Beta
#Encoder version * 100
#fixme? this should be 1.06 instead of 106
>>27    byte  >0    \b v%d)
>>10    byte&0x3    0x0    \b, 44.1 kHz
>>10    byte&0x3    0x1    \b, 48 kHz
>>10    byte&0x3    0x2    \b, 37.8 kHz
>>10    byte&0x3    0x3    \b, 32 kHz

 
SimplePortal 1.0.0 RC1 © 2008-2019