Mercurial > mplayer.hg
comparison libmpdemux/demux_lavf.c @ 15011:83077e6742e7
various (de)muxer_lavf fixes
author | michael |
---|---|
date | Fri, 25 Mar 2005 22:47:09 +0000 |
parents | c03962274c4b |
children | e9865b828a89 |
comparison
equal
deleted
inserted
replaced
15010:aec21cf429cb | 15011:83077e6742e7 |
---|---|
45 }lavf_priv_t; | 45 }lavf_priv_t; |
46 | 46 |
47 extern void print_wave_header(WAVEFORMATEX *h); | 47 extern void print_wave_header(WAVEFORMATEX *h); |
48 extern void print_video_header(BITMAPINFOHEADER *h); | 48 extern void print_video_header(BITMAPINFOHEADER *h); |
49 | 49 |
50 int64_t ff_gcd(int64_t a, int64_t b); | |
51 | |
50 static int mp_open(URLContext *h, const char *filename, int flags){ | 52 static int mp_open(URLContext *h, const char *filename, int flags){ |
51 return 0; | 53 return 0; |
52 } | 54 } |
53 | 55 |
54 static int mp_read(URLContext *h, unsigned char *buf, int size){ | 56 static int mp_read(URLContext *h, unsigned char *buf, int size){ |
127 | 129 |
128 int demux_open_lavf(demuxer_t *demuxer){ | 130 int demux_open_lavf(demuxer_t *demuxer){ |
129 AVFormatContext *avfc; | 131 AVFormatContext *avfc; |
130 AVFormatParameters ap; | 132 AVFormatParameters ap; |
131 lavf_priv_t *priv= demuxer->priv; | 133 lavf_priv_t *priv= demuxer->priv; |
132 int i; | 134 int i,g; |
133 char mp_filename[256]="mp:"; | 135 char mp_filename[256]="mp:"; |
134 | 136 |
135 memset(&ap, 0, sizeof(AVFormatParameters)); | 137 memset(&ap, 0, sizeof(AVFormatParameters)); |
136 | 138 |
137 stream_seek(demuxer->stream, 0); | 139 stream_seek(demuxer->stream, 0); |
191 wf + 1, | 193 wf + 1, |
192 codec->extradata, | 194 codec->extradata, |
193 codec->extradata_size); | 195 codec->extradata_size); |
194 } | 196 } |
195 sh_audio->wf= wf; | 197 sh_audio->wf= wf; |
198 sh_audio->audio.dwSampleSize= codec->block_align; | |
199 if(codec->frame_size && codec->sample_rate){ | |
200 sh_audio->audio.dwScale=codec->frame_size; | |
201 sh_audio->audio.dwRate= codec->sample_rate; | |
202 }else{ | |
203 sh_audio->audio.dwScale= codec->block_align ? codec->block_align*8 : 8; | |
204 sh_audio->audio.dwRate = codec->bit_rate; | |
205 } | |
206 g= ff_gcd(sh_audio->audio.dwScale, sh_audio->audio.dwRate); | |
207 sh_audio->audio.dwScale /= g; | |
208 sh_audio->audio.dwRate /= g; | |
209 // printf("sca:%d rat:%d fs:%d sr:%d ba:%d\n", sh_audio->audio.dwScale, sh_audio->audio.dwRate, codec->frame_size, codec->sample_rate, codec->block_align); | |
196 sh_audio->ds= demuxer->audio; | 210 sh_audio->ds= demuxer->audio; |
197 sh_audio->format= codec->codec_tag; | 211 sh_audio->format= codec->codec_tag; |
198 sh_audio->channels= codec->channels; | 212 sh_audio->channels= codec->channels; |
199 sh_audio->samplerate= codec->sample_rate; | 213 sh_audio->samplerate= codec->sample_rate; |
200 sh_audio->i_bps= codec->bit_rate/8; | 214 sh_audio->i_bps= codec->bit_rate/8; |