diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-08-15 12:09:00 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-08-15 12:09:00 +0000 |
commit | 61927b3a9ebf7b125cf3b673900eb4ac2fa9ecfe (patch) | |
tree | 148d283a9c371ec5d45e30828ca3f2c2d5818482 /dec_audio.c | |
parent | 7c9c86fb97c49974274ea2404c5461fe42db5472 (diff) | |
download | mpv-61927b3a9ebf7b125cf3b673900eb4ac2fa9ecfe.tar.bz2 mpv-61927b3a9ebf7b125cf3b673900eb4ac2fa9ecfe.tar.xz |
o_bps changes for hwac3 driver
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1530 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'dec_audio.c')
-rw-r--r-- | dec_audio.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/dec_audio.c b/dec_audio.c index 07ce0d97bf..4032656bff 100644 --- a/dec_audio.c +++ b/dec_audio.c @@ -69,6 +69,7 @@ sh_audio->sample_format=AFMT_S16_LE; #endif sh_audio->samplerate=0; //sh_audio->pcm_bswap=0; +sh_audio->o_bps=0; sh_audio->a_buffer_size=0; sh_audio->a_buffer=NULL; @@ -230,7 +231,8 @@ case AFM_HWAC3: { unsigned char *buffer; struct hwac3info ai; int len, skipped; - len = ds_get_packet(sh_audio->ds, &buffer); + len = ds_get_packet(sh_audio->ds, &buffer); // maybe 1 packet is not enough, + // at least for mpeg, PS packets contain about max. 2000 bytes of data. if(ac3_iec958_parse_syncinfo(buffer, len, &ai, &skipped) < 0) { fprintf(stderr, "AC3 stream not valid.\n"); driver = 0; @@ -242,10 +244,11 @@ case AFM_HWAC3: { break; } sh_audio->samplerate=ai.samplerate; -// sh_audio->samplesize=ai.framesize; + sh_audio->samplesize=ai.framesize; sh_audio->channels=1; sh_audio->i_bps=ai.bitrate*(1000/8); sh_audio->ac3_frame=malloc(6144); + sh_audio->o_bps=sh_audio->i_bps; // XXX FIXME!!! XXX break; } case AFM_ALAW: { @@ -293,10 +296,10 @@ if(!sh_audio->channels || !sh_audio->samplerate){ if(!driver){ if(sh_audio->a_buffer) free(sh_audio->a_buffer); sh_audio->a_buffer=NULL; - sh_audio->o_bps=0; return 0; } + if(!sh_audio->o_bps) sh_audio->o_bps=sh_audio->channels*sh_audio->samplerate*sh_audio->samplesize; return driver; } |