Mercurial > mplayer.hg
annotate libaf/af_mp.c @ 12877:e427e3cc26c1
skip ecc only if present, patch by Alexis Durelle <alexis.durelle@cen.cnamts.fr> (needed for the Aiptek DV3500 camera)
author | alex |
---|---|
date | Wed, 21 Jul 2004 08:54:39 +0000 |
parents | 265925e642e2 |
children | d40a1dfbf1d9 |
rev | line source |
---|---|
8167 | 1 #include "af.h" |
2 | |
3 /* Decodes the format from mplayer format to libaf format */ | |
4 int af_format_decode(int ifmt) | |
5 { | |
6 int ofmt = ~0; | |
7 // Check input ifmt | |
8 switch(ifmt){ | |
9 case(AFMT_U8): | |
10 ofmt = AF_FORMAT_LE|AF_FORMAT_US; break; | |
11 case(AFMT_S8): | |
12 ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break; | |
13 case(AFMT_S16_LE): | |
14 ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break; | |
15 case(AFMT_S16_BE): | |
16 ofmt = AF_FORMAT_BE|AF_FORMAT_SI; break; | |
17 case(AFMT_U16_LE): | |
18 ofmt = AF_FORMAT_LE|AF_FORMAT_US; break; | |
19 case(AFMT_U16_BE): | |
20 ofmt = AF_FORMAT_BE|AF_FORMAT_US; break; | |
21 case(AFMT_S32_LE): | |
22 ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break; | |
23 case(AFMT_S32_BE): | |
24 ofmt = AF_FORMAT_BE|AF_FORMAT_SI; break; | |
25 case(AFMT_IMA_ADPCM): | |
26 ofmt = AF_FORMAT_IMA_ADPCM; break; | |
27 case(AFMT_MU_LAW): | |
28 ofmt = AF_FORMAT_MU_LAW; break; | |
29 case(AFMT_A_LAW): | |
30 ofmt = AF_FORMAT_A_LAW; break; | |
31 case(AFMT_MPEG): | |
32 ofmt = AF_FORMAT_MPEG2; break; | |
33 case(AFMT_AC3): | |
34 ofmt = AF_FORMAT_AC3; break; | |
8233 | 35 case(AFMT_FLOAT): |
8952
2369087bb777
Fix for endianess conversion if input to libaf is float
anders
parents:
8233
diff
changeset
|
36 ofmt = AF_FORMAT_F | AF_FORMAT_NE; break; |
8167 | 37 default: |
12667 | 38 if ((ifmt & AFMT_AF_FLAGS) == AFMT_AF_FLAGS) { |
12478 | 39 ofmt = ifmt & ~AFMT_AF_FLAGS; |
40 break; | |
41 } | |
8167 | 42 //This can not happen .... |
43 af_msg(AF_MSG_FATAL,"Unrecognized input audio format %i\n",ifmt); | |
44 break; | |
45 } | |
46 return ofmt; | |
47 } | |
8993
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
48 |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
49 /* Encodes the format from libaf format to mplayer (OSS) format */ |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
50 int af_format_encode(void* fmtp) |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
51 { |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
52 af_data_t* fmt=(af_data_t*) fmtp; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
53 switch(fmt->format&AF_FORMAT_SPECIAL_MASK){ |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
54 case 0: // PCM: |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
55 if((fmt->format&AF_FORMAT_POINT_MASK)==AF_FORMAT_I){ |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
56 if((fmt->format&AF_FORMAT_SIGN_MASK)==AF_FORMAT_SI){ |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
57 // signed int PCM: |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
58 switch(fmt->bps){ |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
59 case 1: return AFMT_S8; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
60 case 2: return (fmt->format&AF_FORMAT_LE) ? AFMT_S16_LE : AFMT_S16_BE; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
61 case 4: return (fmt->format&AF_FORMAT_LE) ? AFMT_S32_LE : AFMT_S32_BE; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
62 } |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
63 } else { |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
64 // unsigned int PCM: |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
65 switch(fmt->bps){ |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
66 case 1: return AFMT_U8; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
67 case 2: return (fmt->format&AF_FORMAT_LE) ? AFMT_U16_LE : AFMT_U16_BE; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
68 // case 4: return (fmt->format&AF_FORMAT_LE) ? AFMT_U32_LE : AFMT_U32_BE; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
69 } |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
70 } |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
71 } else { |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
72 // float PCM: |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
73 return AFMT_FLOAT; // FIXME? |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
74 } |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
75 break; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
76 case AF_FORMAT_MU_LAW: return AFMT_MU_LAW; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
77 case AF_FORMAT_A_LAW: return AFMT_A_LAW; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
78 case AF_FORMAT_MPEG2: return AFMT_MPEG; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
79 case AF_FORMAT_AC3: return AFMT_AC3; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
80 case AF_FORMAT_IMA_ADPCM: return AFMT_IMA_ADPCM; |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
81 } |
12478 | 82 return (fmt->format | AFMT_AF_FLAGS); |
8993
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
83 } |
a6615e7bc710
added af_format_encode() to convert sample format from libaf to mplayer (OSS)
arpi
parents:
8952
diff
changeset
|
84 |