annotate libmpcodecs/ad_dvdpcm.c @ 24576:6704a924d4aa

According to MSDN a thread must call CoUninitialize once for each successful call it has made to CoInitialize or CoInitializeEx, including any call that returns S_FALSE. Only the CoUninitialize call corresponding to the CoInitialize or CoInitializeEx call that initialized the library can close it. patch by Gianluigi Tiesi, mplayer netfarm it
author diego
date Sun, 23 Sep 2007 20:37:33 +0000
parents 815f03b7cee5
children 0f1b5b68af32
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5340
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
1 #include <stdio.h>
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
2 #include <stdlib.h>
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
3 #include <unistd.h>
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
4
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
5 #include "config.h"
13595
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
6 #include "mp_msg.h"
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
7 #include "help_mp.h"
5340
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
8 #include "ad_internal.h"
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
9
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
10 static ad_info_t info =
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
11 {
7191
1eadce15446c -afm/-vfm help implemenetd, some cosmetics of ad/vd codec names/comments
arpi
parents: 7180
diff changeset
12 "Uncompressed DVD/VOB LPCM audio decoder",
5340
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
13 "dvdpcm",
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
14 "Nick Kurshev",
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
15 "A'rpi",
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
16 ""
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
17 };
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
18
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
19 LIBAD_EXTERN(dvdpcm)
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
20
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
21 static int init(sh_audio_t *sh)
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
22 {
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
23 /* DVD PCM Audio:*/
13595
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
24 sh->i_bps = 0;
7670
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
25 if(sh->codecdata_len==3){
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
26 // we have LPCM header:
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
27 unsigned char h=sh->codecdata[1];
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
28 sh->channels=1+(h&7);
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
29 switch((h>>4)&3){
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
30 case 0: sh->samplerate=48000;break;
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
31 case 1: sh->samplerate=96000;break;
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
32 case 2: sh->samplerate=44100;break;
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
33 case 3: sh->samplerate=32000;break;
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
34 }
13236
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
35 switch ((h >> 6) & 3) {
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
36 case 0:
14245
815f03b7cee5 removing AFMT_ dependancy
alex
parents: 13980
diff changeset
37 sh->sample_format = AF_FORMAT_S16_BE;
13236
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
38 sh->samplesize = 2;
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
39 break;
13595
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
40 case 1:
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
41 mp_msg(MSGT_DECAUDIO, MSGL_INFO, MSGTR_SamplesWanted);
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
42 sh->i_bps = sh->channels * sh->samplerate * 5 / 2;
13236
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
43 case 2:
14245
815f03b7cee5 removing AFMT_ dependancy
alex
parents: 13980
diff changeset
44 sh->sample_format = AF_FORMAT_S24_BE;
13236
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
45 sh->samplesize = 3;
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
46 break;
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
47 default:
14245
815f03b7cee5 removing AFMT_ dependancy
alex
parents: 13980
diff changeset
48 sh->sample_format = AF_FORMAT_S16_BE;
13236
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
49 sh->samplesize = 2;
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
50 }
7670
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
51 } else {
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
52 // use defaults:
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
53 sh->channels=2;
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
54 sh->samplerate=48000;
14245
815f03b7cee5 removing AFMT_ dependancy
alex
parents: 13980
diff changeset
55 sh->sample_format = AF_FORMAT_S16_BE;
13236
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
56 sh->samplesize = 2;
7670
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
57 }
13595
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
58 if (!sh->i_bps)
13236
97a6f049c9f8 first attempt to make 24-bit PCM DVDs work
reimar
parents: 7670
diff changeset
59 sh->i_bps = sh->samplesize * sh->channels * sh->samplerate;
7670
d388a7ee48c5 parse samplerate & channels from LPCM header
arpi
parents: 7191
diff changeset
60 return 1;
5340
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
61 }
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
62
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
63 static int preinit(sh_audio_t *sh)
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
64 {
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
65 sh->audio_out_minsize=2048;
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
66 return 1;
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
67 }
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
68
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
69 static void uninit(sh_audio_t *sh)
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
70 {
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
71 }
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
72
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
73 static int control(sh_audio_t *sh,int cmd,void* arg, ...)
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
74 {
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
75 int skip;
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
76 switch(cmd)
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
77 {
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
78 case ADCTRL_SKIP_FRAME:
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
79 skip=sh->i_bps/16;
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
80 skip=skip&(~3);
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
81 demux_read_data(sh->ds,NULL,skip);
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
82 return CONTROL_TRUE;
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
83 }
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
84 return CONTROL_UNKNOWN;
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
85 }
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
86
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
87 static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen)
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
88 {
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
89 int j,len;
13595
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
90 if (sh_audio->samplesize == 3) {
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
91 if (((sh_audio->codecdata[1] >> 6) & 3) == 1) {
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
92 // 20 bit
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
93 // not sure if the "& 0xf0" and "<< 4" are the right way around
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
94 // can somebody clarify?
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
95 for (j = 0; j < minlen; j += 12) {
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
96 char tmp[10];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
97 len = demux_read_data(sh_audio->ds, tmp, 10);
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
98 if (len < 10) break;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
99 // first sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
100 buf[j + 0] = tmp[0];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
101 buf[j + 1] = tmp[1];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
102 buf[j + 2] = tmp[8] & 0xf0;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
103 // second sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
104 buf[j + 3] = tmp[2];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
105 buf[j + 4] = tmp[3];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
106 buf[j + 5] = tmp[8] << 4;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
107 // third sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
108 buf[j + 6] = tmp[4];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
109 buf[j + 7] = tmp[5];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
110 buf[j + 8] = tmp[9] & 0xf0;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
111 // fourth sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
112 buf[j + 9] = tmp[6];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
113 buf[j + 10] = tmp[7];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
114 buf[j + 11] = tmp[9] << 4;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
115 }
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
116 len = j;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
117 } else {
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
118 // 24 bit
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
119 for (j = 0; j < minlen; j += 12) {
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
120 char tmp[12];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
121 len = demux_read_data(sh_audio->ds, tmp, 12);
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
122 if (len < 12) break;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
123 // first sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
124 buf[j + 0] = tmp[0];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
125 buf[j + 1] = tmp[1];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
126 buf[j + 2] = tmp[8];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
127 // second sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
128 buf[j + 3] = tmp[2];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
129 buf[j + 4] = tmp[3];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
130 buf[j + 5] = tmp[9];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
131 // third sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
132 buf[j + 6] = tmp[4];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
133 buf[j + 7] = tmp[5];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
134 buf[j + 8] = tmp[10];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
135 // fourth sample
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
136 buf[j + 9] = tmp[6];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
137 buf[j + 10] = tmp[7];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
138 buf[j + 11] = tmp[11];
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
139 }
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
140 len = j;
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
141 }
f67d20c01332 Support for 24 bit and 20 bit LPCM (simple and slow :-( )
reimar
parents: 13236
diff changeset
142 } else
5340
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
143 len=demux_read_data(sh_audio->ds,buf,(minlen+3)&(~3));
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
144 return len;
0f12fb7c1c5d imported from MPlayerXP, dlopen() hack removed, some bugs fixed, interface functions changed to static, info->author field added
arpi
parents:
diff changeset
145 }