libac3 disabled

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3887 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
arpi 2001-12-30 03:14:30 +00:00
parent 3ba163b929
commit e41d35c31b
1 changed files with 17 additions and 0 deletions

View File

@ -1,5 +1,6 @@
#define USE_G72X #define USE_G72X
//#define USE_LIBAC3
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -26,7 +27,10 @@ extern int verbose; // defined in mplayer.c
#include "dll_init.h" #include "dll_init.h"
#include "mp3lib/mp3.h" #include "mp3lib/mp3.h"
#ifdef USE_LIBAC3
#include "libac3/ac3.h" #include "libac3/ac3.h"
#endif
#include "liba52/a52.h" #include "liba52/a52.h"
static sample_t * a52_samples; static sample_t * a52_samples;
@ -250,6 +254,7 @@ int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen);
static sh_audio_t* dec_audio_sh=NULL; static sh_audio_t* dec_audio_sh=NULL;
#ifdef USE_LIBAC3
// AC3 decoder buffer callback: // AC3 decoder buffer callback:
static void ac3_fill_buffer(uint8_t **start,uint8_t **end){ static void ac3_fill_buffer(uint8_t **start,uint8_t **end){
int len=ds_get_packet(dec_audio_sh->ds,start); int len=ds_get_packet(dec_audio_sh->ds,start);
@ -259,6 +264,7 @@ static void ac3_fill_buffer(uint8_t **start,uint8_t **end){
else else
*end = *start + len; *end = *start + len;
} }
#endif
// MP3 decoder buffer callback: // MP3 decoder buffer callback:
int mplayer_audio_read(char *buf,int size){ int mplayer_audio_read(char *buf,int size){
@ -468,6 +474,10 @@ case AFM_DVDPCM: {
break; break;
} }
case AFM_AC3: { case AFM_AC3: {
#ifndef USE_LIBAC3
mp_msg(MSGT_DECAUDIO,MSGL_WARN,"WARNING: libac3 support is disabled. (hint: upgrade codecs.conf)\n");
driver=0;
#else
// Dolby AC3 audio: // Dolby AC3 audio:
dec_audio_sh=sh_audio; // save sh_audio for the callback: dec_audio_sh=sh_audio; // save sh_audio for the callback:
ac3_config.fill_buffer_callback = ac3_fill_buffer; ac3_config.fill_buffer_callback = ac3_fill_buffer;
@ -491,6 +501,7 @@ if(gCpuCaps.has3DNow){
} else { } else {
driver=0; // bad frame -> disable audio driver=0; // bad frame -> disable audio
} }
#endif
break; break;
} }
case AFM_A52: { case AFM_A52: {
@ -1056,6 +1067,7 @@ int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen){
len=2*fox62_adpcm_decode_block((unsigned short*)buf,ibuf, sh_audio->wf->nChannels); len=2*fox62_adpcm_decode_block((unsigned short*)buf,ibuf, sh_audio->wf->nChannels);
break; break;
} }
#ifdef USE_LIBAC3
case AFM_AC3: // AC3 decoder case AFM_AC3: // AC3 decoder
//printf("{1:%d}",avi_header.idx_pos);fflush(stdout); //printf("{1:%d}",avi_header.idx_pos);fflush(stdout);
if(!sh_audio->ac3_frame) sh_audio->ac3_frame=ac3_decode_frame(); if(!sh_audio->ac3_frame) sh_audio->ac3_frame=ac3_decode_frame();
@ -1067,6 +1079,7 @@ int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen){
} }
//printf("{3:%d}",avi_header.idx_pos);fflush(stdout); //printf("{3:%d}",avi_header.idx_pos);fflush(stdout);
break; break;
#endif
case AFM_A52: { // AC3 decoder case AFM_A52: { // AC3 decoder
int flags=0; int flags=0;
int i; int i;
@ -1205,12 +1218,14 @@ void resync_audio_stream(sh_audio_t *sh_audio){
ogg_stream_reset(&sh_audio->ov->os); ogg_stream_reset(&sh_audio->ov->os);
break; break;
#endif #endif
#ifdef USE_LIBAC3
case AFM_AC3: case AFM_AC3:
ac3_bitstream_reset(); // reset AC3 bitstream buffer ac3_bitstream_reset(); // reset AC3 bitstream buffer
// if(verbose){ printf("Resyncing AC3 audio...");fflush(stdout);} // if(verbose){ printf("Resyncing AC3 audio...");fflush(stdout);}
sh_audio->ac3_frame=ac3_decode_frame(); // resync sh_audio->ac3_frame=ac3_decode_frame(); // resync
// if(verbose) printf(" OK!\n"); // if(verbose) printf(" OK!\n");
break; break;
#endif
case AFM_A52: case AFM_A52:
case AFM_ACM: case AFM_ACM:
case AFM_DSHOW: case AFM_DSHOW:
@ -1233,7 +1248,9 @@ void resync_audio_stream(sh_audio_t *sh_audio){
void skip_audio_frame(sh_audio_t *sh_audio){ void skip_audio_frame(sh_audio_t *sh_audio){
switch(sh_audio->codec->driver){ switch(sh_audio->codec->driver){
case AFM_MPEG: MP3_DecodeFrame(NULL,-2);break; // skip MPEG frame case AFM_MPEG: MP3_DecodeFrame(NULL,-2);break; // skip MPEG frame
#ifdef USE_LIBAC3
case AFM_AC3: sh_audio->ac3_frame=ac3_decode_frame();break; // skip AC3 frame case AFM_AC3: sh_audio->ac3_frame=ac3_decode_frame();break; // skip AC3 frame
#endif
case AFM_HWAC3: case AFM_HWAC3:
case AFM_A52: a52_fillbuff(sh_audio);break; // skip AC3 frame case AFM_A52: a52_fillbuff(sh_audio);break; // skip AC3 frame
case AFM_ACM: case AFM_ACM: