1
0
mirror of https://github.com/mpv-player/mpv synced 2025-04-21 06:42:49 +00:00

removing AFMT_ dependancy

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14246 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
alex 2004-12-27 17:30:15 +00:00
parent 00f99a82a8
commit 507121f7fe
65 changed files with 483 additions and 585 deletions

View File

@ -20,7 +20,7 @@ DO_MAKE = @ for i in $(SUBDIRS); do $(MAKE) -C $$i $@; done
endif endif
SRCS_COMMON = cpudetect.c codec-cfg.c spudec.c playtree.c playtreeparser.c asxparser.c vobsub.c subreader.c sub_cc.c find_sub.c m_config.c m_option.c parser-cfg.c m_struct.c edl.c SRCS_COMMON = cpudetect.c codec-cfg.c spudec.c playtree.c playtreeparser.c asxparser.c vobsub.c subreader.c sub_cc.c find_sub.c m_config.c m_option.c parser-cfg.c m_struct.c edl.c
SRCS_MENCODER = mencoder.c mp_msg-mencoder.c $(SRCS_COMMON) libao2/afmt.c divx4_vbr.c libvo/aclib.c libvo/osd.c libvo/sub.c libvo/font_load.c libvo/font_load_ft.c xvid_vbr.c parser-mecmd.c SRCS_MENCODER = mencoder.c mp_msg-mencoder.c $(SRCS_COMMON) divx4_vbr.c libvo/aclib.c libvo/osd.c libvo/sub.c libvo/font_load.c libvo/font_load_ft.c xvid_vbr.c parser-mecmd.c
SRCS_MPLAYER = mplayer.c mp_msg.c $(SRCS_COMMON) mixer.c parser-mpcmd.c SRCS_MPLAYER = mplayer.c mp_msg.c $(SRCS_COMMON) mixer.c parser-mpcmd.c
ifeq ($(UNRARLIB),yes) ifeq ($(UNRARLIB),yes)

View File

@ -2,7 +2,7 @@ include config.mak
LIBNAME = libaf.a LIBNAME = libaf.a
SRCS=af.c af_mp.c af_dummy.c af_delay.c af_channels.c af_format.c af_resample.c \ SRCS=af.c af_dummy.c af_delay.c af_channels.c af_format.c af_resample.c \
window.c filter.c af_volume.c af_equalizer.c af_tools.c af_comp.c af_gate.c \ window.c filter.c af_volume.c af_equalizer.c af_tools.c af_comp.c af_gate.c \
af_pan.c af_surround.c af_sub.c af_export.c af_volnorm.c af_extrastereo.c \ af_pan.c af_surround.c af_sub.c af_export.c af_volnorm.c af_extrastereo.c \
af_lavcresample.c af_sweep.c af_hrtf.c $(OPTIONAL_SRCS) af_lavcresample.c af_sweep.c af_hrtf.c $(OPTIONAL_SRCS)

View File

@ -44,7 +44,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch; af->data->nch = ((af_data_t*)arg)->nch;
af->data->format = AF_FORMAT_F | AF_FORMAT_NE; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
// Time constant set to 0.1s // Time constant set to 0.1s

View File

@ -87,7 +87,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch; af->data->nch = ((af_data_t*)arg)->nch;
af->data->format = AF_FORMAT_NE | AF_FORMAT_F; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
// Calculate number of active filters // Calculate number of active filters
@ -173,7 +173,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data)
float* end = in + c->len/4; // Block loop end float* end = in + c->len/4; // Block loop end
while(in < end){ while(in < end){
register uint32_t k = 0; // Frequency band index register int k = 0; // Frequency band index
register float yt = *in; // Current input sample register float yt = *in; // Current input sample
in+=nch; in+=nch;

View File

@ -72,7 +72,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
// Accept only int16_t as input format (which sucks) // Accept only int16_t as input format (which sucks)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch; af->data->nch = ((af_data_t*)arg)->nch;
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
// If buffer length isn't set, set it to the default value // If buffer length isn't set, set it to the default value
@ -163,7 +163,6 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
*/ */
static void uninit( struct af_instance_s* af ) static void uninit( struct af_instance_s* af )
{ {
int i;
if (af->data){ if (af->data){
free(af->data); free(af->data);
af->data = NULL; af->data = NULL;

View File

@ -37,7 +37,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = 2; af->data->nch = 2;
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
return af_test_output(af,(af_data_t*)arg); return af_test_output(af,(af_data_t*)arg);

View File

@ -43,7 +43,7 @@ static void float2int(void* in, void* out, int len, int bps);
static void int2float(void* in, void* out, int len, int bps); static void int2float(void* in, void* out, int len, int bps);
// Convert from string to format // Convert from string to format
static int str2fmt(char* str) int af_str2fmt(char* str)
{ {
int format=0; int format=0;
// Scan for endianess // Scan for endianess
@ -87,16 +87,34 @@ static int str2fmt(char* str)
return format; return format;
} }
inline int af_fmt2bits(int format)
{
return (format & AF_FORMAT_BITS_MASK)+8;
// return (((format & AF_FORMAT_BITS_MASK)>>3)+1) * 8;
#if 0
switch(format & AF_FORMAT_BITS_MASK)
{
case AF_FORMAT_8BIT: return 8;
case AF_FORMAT_16BIT: return 16;
case AF_FORMAT_24BIT: return 24;
case AF_FORMAT_32BIT: return 32;
case AF_FORMAT_48BIT: return 48;
}
#endif
return -1;
}
/* Convert format to str input str is a buffer for the /* Convert format to str input str is a buffer for the
converted string, size is the size of the buffer */ converted string, size is the size of the buffer */
char* fmt2str(int format, char* str, size_t size) char* af_fmt2str(int format, char* str, int size)
{ {
int i=0; int i=0;
// Print endinaness
// Endianess
if(AF_FORMAT_LE == (format & AF_FORMAT_END_MASK)) if(AF_FORMAT_LE == (format & AF_FORMAT_END_MASK))
i+=snprintf(str,size,"little endian "); i+=snprintf(str,size-i,"little endian ");
else else
i+=snprintf(str,size,"big endian "); i+=snprintf(str,size-i,"big endian ");
if(format & AF_FORMAT_SPECIAL_MASK){ if(format & AF_FORMAT_SPECIAL_MASK){
switch(format & AF_FORMAT_SPECIAL_MASK){ switch(format & AF_FORMAT_SPECIAL_MASK){
@ -108,12 +126,17 @@ char* fmt2str(int format, char* str, size_t size)
i+=snprintf(&str[i],size-i,"MPEG 2 "); break; i+=snprintf(&str[i],size-i,"MPEG 2 "); break;
case(AF_FORMAT_AC3): case(AF_FORMAT_AC3):
i+=snprintf(&str[i],size-i,"AC3 "); break; i+=snprintf(&str[i],size-i,"AC3 "); break;
default:
printf("Unknown special\n");
} }
} }
else{ else{
// Bits
i+=snprintf(&str[i],size-i,"%d-bit ", af_fmt2bits(format));
// Point // Point
if(AF_FORMAT_F == (format & AF_FORMAT_POINT_MASK)) if(AF_FORMAT_F == (format & AF_FORMAT_POINT_MASK))
i+=snprintf(&str[i],size,"float "); i+=snprintf(&str[i],size-i,"float ");
else{ else{
// Sign // Sign
if(AF_FORMAT_US == (format & AF_FORMAT_SIGN_MASK)) if(AF_FORMAT_US == (format & AF_FORMAT_SIGN_MASK))
@ -121,7 +144,7 @@ char* fmt2str(int format, char* str, size_t size)
else else
i+=snprintf(&str[i],size-i,"signed "); i+=snprintf(&str[i],size-i,"signed ");
i+=snprintf(&str[i],size,"int "); i+=snprintf(&str[i],size-i,"int ");
} }
} }
return str; return str;
@ -148,7 +171,7 @@ static int check_format(int format)
case(AF_FORMAT_MPEG2): case(AF_FORMAT_MPEG2):
case(AF_FORMAT_AC3): case(AF_FORMAT_AC3):
af_msg(AF_MSG_ERROR,"[format] Sample format %s not yet supported \n", af_msg(AF_MSG_ERROR,"[format] Sample format %s not yet supported \n",
fmt2str(format,buf,255)); af_fmt2str(format,buf,255));
return AF_ERROR; return AF_ERROR;
} }
return AF_OK; return AF_OK;
@ -173,9 +196,9 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
(AF_OK != check_format(af->data->format))) (AF_OK != check_format(af->data->format)))
return AF_ERROR; return AF_ERROR;
af_msg(AF_MSG_VERBOSE,"[format] Changing sample format from %ibit %sto %ibit %s \n", af_msg(AF_MSG_VERBOSE,"[format] Changing sample format from %sto %s \n",
((af_data_t*)arg)->bps*8,fmt2str(((af_data_t*)arg)->format,buf1,255), af_fmt2str(((af_data_t*)arg)->format,buf1,255),
af->data->bps*8,fmt2str(af->data->format,buf2,255)); af_fmt2str(af->data->format,buf2,255));
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch; af->data->nch = ((af_data_t*)arg)->nch;
@ -190,7 +213,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
str[0] = '\0'; str[0] = '\0';
sscanf((char*)arg,"%i:%s",&bps,str); sscanf((char*)arg,"%i:%s",&bps,str);
// Convert string to format // Convert string to format
format = str2fmt(str); format = af_str2fmt(str);
// Automatic correction of errors // Automatic correction of errors
switch(format & AF_FORMAT_SPECIAL_MASK){ switch(format & AF_FORMAT_SPECIAL_MASK){

View File

@ -1,6 +1,8 @@
/* The sample format system used lin libaf is based on bitmasks. The /* The sample format system used lin libaf is based on bitmasks. The
format definition only refers to the storage format not the format definition only refers to the storage format not the
resolution. */ resolution. */
#ifndef __af_format_h__
#define __af_format_h__
// Endianess // Endianess
#define AF_FORMAT_BE (0<<0) // Big Endian #define AF_FORMAT_BE (0<<0) // Big Endian
@ -14,8 +16,8 @@
#endif #endif
// Signed/unsigned // Signed/unsigned
#define AF_FORMAT_SI (0<<1) // SIgned #define AF_FORMAT_SI (0<<1) // Signed
#define AF_FORMAT_US (1<<1) // Un Signed #define AF_FORMAT_US (1<<1) // Unsigned
#define AF_FORMAT_SIGN_MASK (1<<1) #define AF_FORMAT_SIGN_MASK (1<<1)
// Fixed or floating point // Fixed or floating point
@ -23,13 +25,63 @@
#define AF_FORMAT_F (1<<2) // Foating point #define AF_FORMAT_F (1<<2) // Foating point
#define AF_FORMAT_POINT_MASK (1<<2) #define AF_FORMAT_POINT_MASK (1<<2)
// Bits used
#define AF_FORMAT_8BIT (0<<3)
#define AF_FORMAT_16BIT (1<<3)
#define AF_FORMAT_24BIT (2<<3)
#define AF_FORMAT_32BIT (3<<3)
#define AF_FORMAT_40BIT (4<<3)
#define AF_FORMAT_48BIT (5<<3)
#define AF_FORMAT_BITS_MASK (7<<3)
// Special flags refering to non pcm data // Special flags refering to non pcm data
#define AF_FORMAT_MU_LAW (1<<3) // #define AF_FORMAT_MU_LAW (1<<6)
#define AF_FORMAT_A_LAW (2<<3) // #define AF_FORMAT_A_LAW (2<<6)
#define AF_FORMAT_MPEG2 (3<<3) // MPEG(2) audio #define AF_FORMAT_MPEG2 (3<<6) // MPEG(2) audio
#define AF_FORMAT_AC3 (4<<3) // Dolby Digital AC3 #define AF_FORMAT_AC3 (4<<6) // Dolby Digital AC3
#define AF_FORMAT_IMA_ADPCM AF_FORMAT_LE|AF_FORMAT_SI // Same as 16 bit signed int #define AF_FORMAT_IMA_ADPCM (5<<6)
#define AF_FORMAT_SPECIAL_MASK (7<<3) #define AF_FORMAT_SPECIAL_MASK (7<<6)
extern char* fmt2str(int format, char* str, size_t size); // PREDEFINED formats
#define AF_FORMAT_U8 (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_8BIT|AF_FORMAT_NE)
#define AF_FORMAT_S8 (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_8BIT|AF_FORMAT_NE)
#define AF_FORMAT_U16_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_LE)
#define AF_FORMAT_U16_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_BE)
#define AF_FORMAT_S16_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_LE)
#define AF_FORMAT_S16_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_BE)
#define AF_FORMAT_U24_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_LE)
#define AF_FORMAT_U24_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_BE)
#define AF_FORMAT_S24_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_LE)
#define AF_FORMAT_S24_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_BE)
#define AF_FORMAT_U32_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_LE)
#define AF_FORMAT_U32_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_BE)
#define AF_FORMAT_S32_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_LE)
#define AF_FORMAT_S32_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_BE)
#define AF_FORMAT_FLOAT_LE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_LE)
#define AF_FORMAT_FLOAT_BE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_BE)
#ifdef WORDS_BIGENDIAN
#define AF_FORMAT_U16_NE AF_FORMAT_U16_BE
#define AF_FORMAT_S16_NE AF_FORMAT_S16_BE
#define AF_FORMAT_U24_NE AF_FORMAT_U24_BE
#define AF_FORMAT_S24_NE AF_FORMAT_S24_BE
#define AF_FORMAT_U32_NE AF_FORMAT_U32_BE
#define AF_FORMAT_S32_NE AF_FORMAT_S32_BE
#define AF_FORMAT_FLOAT_NE AF_FORMAT_FLOAT_BE
#else
#define AF_FORMAT_U16_NE AF_FORMAT_U16_LE
#define AF_FORMAT_S16_NE AF_FORMAT_S16_LE
#define AF_FORMAT_U24_NE AF_FORMAT_U24_LE
#define AF_FORMAT_S24_NE AF_FORMAT_S24_LE
#define AF_FORMAT_U32_NE AF_FORMAT_U32_LE
#define AF_FORMAT_S32_NE AF_FORMAT_S32_LE
#define AF_FORMAT_FLOAT_NE AF_FORMAT_FLOAT_LE
#endif
extern int af_str2fmt(char *str);
extern int af_fmt2bits(int format);
extern char* af_fmt2str(int format, char* str, int size);
#endif /* __af_format_h__ */

View File

@ -42,7 +42,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch; af->data->nch = ((af_data_t*)arg)->nch;
af->data->format = AF_FORMAT_F | AF_FORMAT_NE; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
// Time constant set to 0.1s // Time constant set to 0.1s

View File

@ -119,7 +119,7 @@ static int control(struct af_instance_s *af, int cmd, void* arg)
if(af->data->nch < 5) { if(af->data->nch < 5) {
af->data->nch = 5; af->data->nch = 5;
} }
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
return af_test_output(af, (af_data_t*)arg); return af_test_output(af, (af_data_t*)arg);
case AF_CONTROL_COMMAND_LINE: case AF_CONTROL_COMMAND_LINE:

View File

@ -52,7 +52,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->nch = data->nch; af->data->nch = data->nch;
if (af->data->nch > CHANS) af->data->nch = CHANS; if (af->data->nch > CHANS) af->data->nch = CHANS;
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
g= ff_gcd(af->data->rate, data->rate); g= ff_gcd(af->data->rate, data->rate);
af->mul.n = af->data->rate/g; af->mul.n = af->data->rate/g;

View File

@ -1,98 +0,0 @@
#include "af.h"
/* Decodes the format from mplayer format to libaf format */
int af_format_decode(int ifmt)
{
int ofmt = ~0;
// Check input ifmt
switch(ifmt){
case(AFMT_U8):
ofmt = AF_FORMAT_LE|AF_FORMAT_US; break;
case(AFMT_S8):
ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break;
case(AFMT_S16_LE):
ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break;
case(AFMT_S16_BE):
ofmt = AF_FORMAT_BE|AF_FORMAT_SI; break;
case(AFMT_U16_LE):
ofmt = AF_FORMAT_LE|AF_FORMAT_US; break;
case(AFMT_U16_BE):
ofmt = AF_FORMAT_BE|AF_FORMAT_US; break;
case(AFMT_S24_LE):
ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break;
case(AFMT_S24_BE):
ofmt = AF_FORMAT_BE|AF_FORMAT_SI; break;
case(AFMT_U24_LE):
ofmt = AF_FORMAT_LE|AF_FORMAT_US; break;
case(AFMT_U24_BE):
ofmt = AF_FORMAT_BE|AF_FORMAT_US; break;
case(AFMT_S32_LE):
ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break;
case(AFMT_S32_BE):
ofmt = AF_FORMAT_BE|AF_FORMAT_SI; break;
case(AFMT_U32_LE):
ofmt = AF_FORMAT_LE|AF_FORMAT_US; break;
case(AFMT_U32_BE):
ofmt = AF_FORMAT_BE|AF_FORMAT_US; break;
case(AFMT_IMA_ADPCM):
ofmt = AF_FORMAT_IMA_ADPCM; break;
case(AFMT_MU_LAW):
ofmt = AF_FORMAT_MU_LAW; break;
case(AFMT_A_LAW):
ofmt = AF_FORMAT_A_LAW; break;
case(AFMT_MPEG):
ofmt = AF_FORMAT_MPEG2; break;
case(AFMT_AC3):
ofmt = AF_FORMAT_AC3; break;
case(AFMT_FLOAT):
ofmt = AF_FORMAT_F | AF_FORMAT_NE; break;
default:
if ((ifmt & AFMT_AF_FLAGS) == AFMT_AF_FLAGS) {
ofmt = ifmt & ~AFMT_AF_FLAGS;
break;
}
//This can not happen ....
af_msg(AF_MSG_FATAL,"Unrecognized input audio format %i\n",ifmt);
break;
}
return ofmt;
}
/* Encodes the format from libaf format to mplayer (OSS) format */
int af_format_encode(void* fmtp)
{
af_data_t* fmt=(af_data_t*) fmtp;
switch(fmt->format&AF_FORMAT_SPECIAL_MASK){
case 0: // PCM:
if((fmt->format&AF_FORMAT_POINT_MASK)==AF_FORMAT_I){
if((fmt->format&AF_FORMAT_SIGN_MASK)==AF_FORMAT_SI){
// signed int PCM:
switch(fmt->bps){
case 1: return AFMT_S8;
case 2: return (fmt->format&AF_FORMAT_LE) ? AFMT_S16_LE : AFMT_S16_BE;
case 3: return (fmt->format&AF_FORMAT_LE) ? AFMT_S24_LE : AFMT_S24_BE;
case 4: return (fmt->format&AF_FORMAT_LE) ? AFMT_S32_LE : AFMT_S32_BE;
}
} else {
// unsigned int PCM:
switch(fmt->bps){
case 1: return AFMT_U8;
case 2: return (fmt->format&AF_FORMAT_LE) ? AFMT_U16_LE : AFMT_U16_BE;
case 3: return (fmt->format&AF_FORMAT_LE) ? AFMT_U24_LE : AFMT_U24_BE;
case 4: return (fmt->format&AF_FORMAT_LE) ? AFMT_U32_LE : AFMT_U32_BE;
}
}
} else {
// float PCM:
return AFMT_FLOAT; // FIXME?
}
break;
case AF_FORMAT_MU_LAW: return AFMT_MU_LAW;
case AF_FORMAT_A_LAW: return AFMT_A_LAW;
case AF_FORMAT_MPEG2: return AFMT_MPEG;
case AF_FORMAT_AC3: return AFMT_AC3;
case AF_FORMAT_IMA_ADPCM: return AFMT_IMA_ADPCM;
}
return (fmt->format | AFMT_AF_FLAGS);
}

View File

@ -5,7 +5,6 @@
#include "../config.h" #include "../config.h"
#include "../mp_msg.h" #include "../mp_msg.h"
#include "../cpudetect.h" #include "../cpudetect.h"
#include "../libao2/afmt.h"
/* Set the initialization type from mplayers cpudetect */ /* Set the initialization type from mplayers cpudetect */
#ifdef AF_INIT_TYPE #ifdef AF_INIT_TYPE
@ -20,8 +19,4 @@
#define af_msg(lev, args... ) \ #define af_msg(lev, args... ) \
mp_msg(MSGT_AFILTER,(((lev)<0)?((lev)+3):(((lev)==0)?MSGL_INFO:((lev)+5))), ##args ) mp_msg(MSGT_AFILTER,(((lev)<0)?((lev)+3):(((lev)==0)?MSGL_INFO:((lev)+5))), ##args )
/* Decodes the format from mplayer format to libaf format */
extern int af_format_decode(int format);
extern int af_format_encode(void* fmt);
#endif /* __af_mp_h__ */ #endif /* __af_mp_h__ */

View File

@ -37,7 +37,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
if(!arg) return AF_ERROR; if(!arg) return AF_ERROR;
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->format = AF_FORMAT_F | AF_FORMAT_NE; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
af->mul.n = af->data->nch; af->mul.n = af->data->nch;
af->mul.d = ((af_data_t*)arg)->nch; af->mul.d = ((af_data_t*)arg)->nch;

View File

@ -135,29 +135,28 @@ static int set_types(struct af_instance_s* af, af_data_t* data)
// Make sure this filter isn't redundant // Make sure this filter isn't redundant
if((af->data->rate == data->rate) || (af->data->rate == 0)) if((af->data->rate == data->rate) || (af->data->rate == 0))
return AF_DETACH; return AF_DETACH;
/* If sloppy and small resampling difference (2%) */ /* If sloppy and small resampling difference (2%) */
rd = abs((float)af->data->rate - (float)data->rate)/(float)data->rate; rd = abs((float)af->data->rate - (float)data->rate)/(float)data->rate;
if((((s->setup & FREQ_MASK) == FREQ_SLOPPY) && (rd < 0.02) && if((((s->setup & FREQ_MASK) == FREQ_SLOPPY) && (rd < 0.02) &&
(data->format != (AF_FORMAT_NE | AF_FORMAT_F))) || (data->format != (AF_FORMAT_FLOAT_NE))) ||
((s->setup & RSMP_MASK) == RSMP_LIN)){ ((s->setup & RSMP_MASK) == RSMP_LIN)){
s->setup = (s->setup & ~RSMP_MASK) | RSMP_LIN; s->setup = (s->setup & ~RSMP_MASK) | RSMP_LIN;
af->data->format = AF_FORMAT_NE | AF_FORMAT_SI; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
af_msg(AF_MSG_VERBOSE,"[resample] Using linear interpolation. \n"); af_msg(AF_MSG_VERBOSE,"[resample] Using linear interpolation. \n");
} }
else{ else{
/* If the input format is float or if float is explicitly selected /* If the input format is float or if float is explicitly selected
use float, otherwise use int */ use float, otherwise use int */
if((data->format == (AF_FORMAT_NE | AF_FORMAT_F)) || if((data->format == (AF_FORMAT_FLOAT_NE)) ||
((s->setup & RSMP_MASK) == RSMP_FLOAT)){ ((s->setup & RSMP_MASK) == RSMP_FLOAT)){
s->setup = (s->setup & ~RSMP_MASK) | RSMP_FLOAT; s->setup = (s->setup & ~RSMP_MASK) | RSMP_FLOAT;
af->data->format = AF_FORMAT_NE | AF_FORMAT_F; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
} }
else{ else{
s->setup = (s->setup & ~RSMP_MASK) | RSMP_INT; s->setup = (s->setup & ~RSMP_MASK) | RSMP_INT;
af->data->format = AF_FORMAT_NE | AF_FORMAT_SI; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
} }
af_msg(AF_MSG_VERBOSE,"[resample] Using %s processing and %s frequecy" af_msg(AF_MSG_VERBOSE,"[resample] Using %s processing and %s frequecy"

View File

@ -61,7 +61,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = max(s->ch+1,((af_data_t*)arg)->nch); af->data->nch = max(s->ch+1,((af_data_t*)arg)->nch);
af->data->format = AF_FORMAT_F | AF_FORMAT_NE; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
// Design low-pass filter // Design low-pass filter

View File

@ -93,7 +93,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
float fc; float fc;
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch*2; af->data->nch = ((af_data_t*)arg)->nch*2;
af->data->format = AF_FORMAT_F | AF_FORMAT_NE; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
if (af->data->nch != 4){ if (af->data->nch != 4){

View File

@ -25,7 +25,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
switch(cmd){ switch(cmd){
case AF_CONTROL_REINIT: case AF_CONTROL_REINIT:
af->data->nch = data->nch; af->data->nch = data->nch;
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
af->data->rate = data->rate; af->data->rate = data->rate;

View File

@ -79,11 +79,11 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch; af->data->nch = ((af_data_t*)arg)->nch;
if(((af_data_t*)arg)->format == (AF_FORMAT_SI | AF_FORMAT_NE)){ if(((af_data_t*)arg)->format == (AF_FORMAT_S16_NE)){
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
}else{ }else{
af->data->format = AF_FORMAT_F | AF_FORMAT_NE; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
} }
return af_test_output(af,(af_data_t*)arg); return af_test_output(af,(af_data_t*)arg);
@ -288,14 +288,14 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data)
{ {
af_volnorm_t *s = af->setup; af_volnorm_t *s = af->setup;
if(af->data->format == (AF_FORMAT_SI | AF_FORMAT_NE)) if(af->data->format == (AF_FORMAT_S16_NE))
{ {
if (s->method) if (s->method)
method2_int16(s, data); method2_int16(s, data);
else else
method1_int16(s, data); method1_int16(s, data);
} }
else if(af->data->format == (AF_FORMAT_F | AF_FORMAT_NE)) else if(af->data->format == (AF_FORMAT_FLOAT_NE))
{ {
if (s->method) if (s->method)
method2_float(s, data); method2_float(s, data);

View File

@ -60,8 +60,8 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
af->data->rate = ((af_data_t*)arg)->rate; af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch; af->data->nch = ((af_data_t*)arg)->nch;
if(s->fast && (((af_data_t*)arg)->format != (AF_FORMAT_F | AF_FORMAT_NE))){ if(s->fast && (((af_data_t*)arg)->format != (AF_FORMAT_FLOAT_NE))){
af->data->format = AF_FORMAT_SI | AF_FORMAT_NE; af->data->format = AF_FORMAT_S16_NE;
af->data->bps = 2; af->data->bps = 2;
} }
else{ else{
@ -70,7 +70,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
float t = 2.0-cos(x); float t = 2.0-cos(x);
s->time = 1.0 - (t - sqrt(t*t - 1)); s->time = 1.0 - (t - sqrt(t*t - 1));
af_msg(AF_MSG_DEBUG0,"[volume] Forgetting factor = %0.5f\n",s->time); af_msg(AF_MSG_DEBUG0,"[volume] Forgetting factor = %0.5f\n",s->time);
af->data->format = AF_FORMAT_F | AF_FORMAT_NE; af->data->format = AF_FORMAT_FLOAT_NE;
af->data->bps = 4; af->data->bps = 4;
} }
return af_test_output(af,(af_data_t*)arg); return af_test_output(af,(af_data_t*)arg);
@ -140,7 +140,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data)
register int i = 0; register int i = 0;
// Basic operation volume control only (used on slow machines) // Basic operation volume control only (used on slow machines)
if(af->data->format == (AF_FORMAT_SI | AF_FORMAT_NE)){ if(af->data->format == (AF_FORMAT_S16_NE)){
int16_t* a = (int16_t*)c->audio; // Audio data int16_t* a = (int16_t*)c->audio; // Audio data
int len = c->len/2; // Number of samples int len = c->len/2; // Number of samples
for(ch = 0; ch < nch ; ch++){ for(ch = 0; ch < nch ; ch++){
@ -154,7 +154,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data)
} }
} }
// Machine is fast and data is floating point // Machine is fast and data is floating point
else if(af->data->format == (AF_FORMAT_F | AF_FORMAT_NE)){ else if(af->data->format == (AF_FORMAT_FLOAT_NE)){
float* a = (float*)c->audio; // Audio data float* a = (float*)c->audio; // Audio data
int len = c->len/4; // Number of samples int len = c->len/4; // Number of samples
for(ch = 0; ch < nch ; ch++){ for(ch = 0; ch < nch ; ch++){

View File

@ -8,6 +8,8 @@
//============================================================================= //=============================================================================
*/ */
#include "../config.h" // WORDS_BIGENDIAN
// Number of channels // Number of channels
#ifndef AF_NCH #ifndef AF_NCH
#define AF_NCH 6 #define AF_NCH 6

View File

@ -2,7 +2,7 @@ include config.mak
LIBNAME = libao2.a LIBNAME = libao2.a
SRCS=afmt.c audio_out.c ao_mpegpes.c ao_null.c ao_pcm.c ao_plugin.c pl_delay.c pl_format.c pl_surround.c remez.c pl_resample.c pl_volume.c pl_extrastereo.c pl_volnorm.c pl_eq.c $(OPTIONAL_SRCS) SRCS=audio_out.c ao_mpegpes.c ao_null.c ao_pcm.c ao_plugin.c pl_delay.c pl_format.c pl_surround.c remez.c pl_resample.c pl_volume.c pl_extrastereo.c pl_volnorm.c pl_eq.c $(OPTIONAL_SRCS)
OBJS=$(SRCS:.c=.o) OBJS=$(SRCS:.c=.o)

View File

@ -1,90 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include "config.h"
#include "afmt.h"
char *audio_out_format_name(int format)
{
switch (format)
{
case AFMT_MU_LAW:
return("Mu-Law");
case AFMT_A_LAW:
return("A-Law");
case AFMT_IMA_ADPCM:
return("Ima-ADPCM");
case AFMT_S8:
return("Signed 8-bit");
case AFMT_U8:
return("Unsigned 8-bit");
case AFMT_U16_LE:
return("Unsigned 16-bit (Little-Endian)");
case AFMT_U16_BE:
return("Unsigned 16-bit (Big-Endian)");
case AFMT_S16_LE:
return("Signed 16-bit (Little-Endian)");
case AFMT_S16_BE:
return("Signed 16-bit (Big-Endian)");
case AFMT_MPEG:
return("MPEG (2) audio");
case AFMT_AC3:
return("AC3");
case AFMT_U32_LE:
return("Unsigned 32-bit (Little-Endian)");
case AFMT_U32_BE:
return("Unsigned 32-bit (Big-Endian)");
case AFMT_S32_LE:
return("Signed 32-bit (Little-Endian)");
case AFMT_S32_BE:
return("Signed 32-bit (Big-Endian)");
case AFMT_U24_LE:
return("Unsigned 24-bit (Little-Endian)");
case AFMT_U24_BE:
return("Unsigned 24-bit (Big-Endian)");
case AFMT_S24_LE:
return("Signed 24-bit (Little-Endian)");
case AFMT_S24_BE:
return("Signed 24-bit (Big-Endian)");
case AFMT_FLOAT:
return("Floating Point");
}
return("Unknown");
}
// return number of bits for 1 sample in one channel, or 8 bits for compressed
int audio_out_format_bits(int format){
switch (format)
{
case AFMT_S16_LE:
case AFMT_S16_BE:
case AFMT_U16_LE:
case AFMT_U16_BE:
return 16;//16 bits
case AFMT_S32_LE:
case AFMT_S32_BE:
case AFMT_U32_LE:
case AFMT_U32_BE:
case AFMT_FLOAT:
return 32;
case AFMT_S24_LE:
case AFMT_S24_BE:
case AFMT_U24_LE:
case AFMT_U24_BE:
return 24;
case AFMT_MU_LAW:
case AFMT_A_LAW:
case AFMT_IMA_ADPCM:
case AFMT_S8:
case AFMT_U8:
case AFMT_MPEG:
case AFMT_AC3:
default:
return 8;//default 1 byte
}
return 8;
}

View File

@ -1,84 +0,0 @@
/* Defines that AFMT_ stuff */
#ifdef HAVE_SYS_SOUNDCARD_H
#include <sys/soundcard.h> /* For AFMT_* on linux */
#else
#ifdef HAVE_SOUNDCARD_H
#include <soundcard.h> /* OpenBSD have this instead of <sys/soundcard> */
#endif
#endif
#include "config.h" /* for native endianness */
/* standard, old OSS audio formats */
#ifndef AFMT_MU_LAW
# define AFMT_MU_LAW 0x00000001
# define AFMT_A_LAW 0x00000002
# define AFMT_IMA_ADPCM 0x00000004
# define AFMT_U8 0x00000008
# define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/
# define AFMT_S16_BE 0x00000020 /* Big endian signed 16 */
# define AFMT_S8 0x00000040
# define AFMT_U16_LE 0x00000080 /* Little endian U16 */
# define AFMT_U16_BE 0x00000100 /* Big endian U16 */
#endif
#ifndef AFMT_MPEG
# define AFMT_MPEG 0x00000200 /* MPEG (2) audio */
#endif
#ifndef AFMT_AC3
# define AFMT_AC3 0x00000400 /* Dolby Digital AC3 */
#endif
/* 24 bit formats from the linux kernel */
#ifndef AFMT_S24_LE
// FreeBSD fix...
#if AFMT_S32_LE == 0x1000
#define AFMT_S24_LE 0x00010000
#define AFMT_S24_BE 0x00020000
#define AFMT_U24_LE 0x00040000
#define AFMT_U24_BE 0x00080000
#else
#define AFMT_S24_LE 0x00000800
#define AFMT_S24_BE 0x00001000
#define AFMT_U24_LE 0x00002000
#define AFMT_U24_BE 0x00004000
#endif
#endif
/* 32 bit formats from the linux kernel */
#ifndef AFMT_S32_LE
#define AFMT_S32_LE 0x00008000
#define AFMT_S32_BE 0x00010000
#define AFMT_U32_LE 0x00020000
#define AFMT_U32_BE 0x00040000
#endif
/* native endian formats */
#ifndef AFMT_S16_NE
# if WORDS_BIGENDIAN
# define AFMT_S16_NE AFMT_S16_BE
# define AFMT_S24_NE AFMT_S24_BE
# define AFMT_S32_NE AFMT_S32_BE
# else
# define AFMT_S16_NE AFMT_S16_LE
# define AFMT_S24_NE AFMT_S24_LE
# define AFMT_S32_NE AFMT_S32_LE
# endif
#endif
#ifndef AFMT_FLOAT
# define AFMT_FLOAT 0x00100000
#endif
/* for formats that don't have a corresponding AFMT_* type,
* use the flags from libaf/af_format.h or'ed with this */
#define AFMT_AF_FLAGS 0x70000000

View File

@ -37,7 +37,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = static ao_info_t info =
{ {
@ -125,7 +125,7 @@ static int control(int cmd, void *arg)
} }
if(mixer_device) card = mixer_device; if(mixer_device) card = mixer_device;
if(ao_data.format == AFMT_AC3) if(ao_data.format == AF_FORMAT_AC3)
return CONTROL_TRUE; return CONTROL_TRUE;
//allocate simple id //allocate simple id
@ -275,42 +275,42 @@ static int init(int rate_hz, int channels, int format, int flags)
switch (format) switch (format)
{ {
case AFMT_S8: case AF_FORMAT_S8:
alsa_format = SND_PCM_FORMAT_S8; alsa_format = SND_PCM_FORMAT_S8;
break; break;
case AFMT_U8: case AF_FORMAT_U8:
alsa_format = SND_PCM_FORMAT_U8; alsa_format = SND_PCM_FORMAT_U8;
break; break;
case AFMT_U16_LE: case AF_FORMAT_U16_LE:
alsa_format = SND_PCM_FORMAT_U16_LE; alsa_format = SND_PCM_FORMAT_U16_LE;
break; break;
case AFMT_U16_BE: case AF_FORMAT_U16_BE:
alsa_format = SND_PCM_FORMAT_U16_BE; alsa_format = SND_PCM_FORMAT_U16_BE;
break; break;
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
case AFMT_AC3: case AF_FORMAT_AC3:
#endif #endif
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
alsa_format = SND_PCM_FORMAT_S16_LE; alsa_format = SND_PCM_FORMAT_S16_LE;
break; break;
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
case AFMT_AC3: case AF_FORMAT_AC3:
#endif #endif
case AFMT_S16_BE: case AF_FORMAT_S16_BE:
alsa_format = SND_PCM_FORMAT_S16_BE; alsa_format = SND_PCM_FORMAT_S16_BE;
break; break;
case AFMT_S32_LE: case AF_FORMAT_S32_LE:
alsa_format = SND_PCM_FORMAT_S32_LE; alsa_format = SND_PCM_FORMAT_S32_LE;
break; break;
case AFMT_S32_BE: case AF_FORMAT_S32_BE:
alsa_format = SND_PCM_FORMAT_S32_BE; alsa_format = SND_PCM_FORMAT_S32_BE;
break; break;
case AFMT_FLOAT: case AF_FORMAT_FLOAT_LE:
alsa_format = SND_PCM_FORMAT_FLOAT_LE; alsa_format = SND_PCM_FORMAT_FLOAT_LE;
break; break;
default: default:
alsa_format = SND_PCM_FORMAT_MPEG; //? default should be -1 alsa_format = SND_PCM_FORMAT_MPEG2; //? default should be -1
break; break;
} }
@ -412,7 +412,7 @@ static int init(int rate_hz, int channels, int format, int flags)
* while opening the abstract alias for the spdif subdevice * while opening the abstract alias for the spdif subdevice
* 'iec958' * 'iec958'
*/ */
if (format == AFMT_AC3) { if (format == AF_FORMAT_AC3) {
unsigned char s[4]; unsigned char s[4];
switch (channels) { switch (channels) {
@ -590,7 +590,7 @@ static int init(int rate_hz, int channels, int format, int flags)
"alsa-init: format %s are not supported by hardware, trying default\n", "alsa-init: format %s are not supported by hardware, trying default\n",
audio_out_format_name(format)); audio_out_format_name(format));
alsa_format = SND_PCM_FORMAT_S16_LE; alsa_format = SND_PCM_FORMAT_S16_LE;
ao_data.format = AFMT_S16_LE; ao_data.format = AF_FORMAT_S16_LE;
ao_data.bps = channels * rate_hz * 2; ao_data.bps = channels * rate_hz * 2;
} }

View File

@ -13,7 +13,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "mp_msg.h" #include "mp_msg.h"
#include "help_mp.h" #include "help_mp.h"
@ -75,28 +75,28 @@ static int init(int rate_hz, int channels, int format, int flags)
memset(&alsa_format, 0, sizeof(alsa_format)); memset(&alsa_format, 0, sizeof(alsa_format));
switch (format) switch (format)
{ {
case AFMT_S8: case AF_FORMAT_S8:
alsa_format.format = SND_PCM_SFMT_S8; alsa_format.format = SND_PCM_SFMT_S8;
break; break;
case AFMT_U8: case AF_FORMAT_U8:
alsa_format.format = SND_PCM_SFMT_U8; alsa_format.format = SND_PCM_SFMT_U8;
break; break;
case AFMT_U16_LE: case AF_FORMAT_U16_LE:
alsa_format.format = SND_PCM_SFMT_U16_LE; alsa_format.format = SND_PCM_SFMT_U16_LE;
break; break;
case AFMT_U16_BE: case AF_FORMAT_U16_BE:
alsa_format.format = SND_PCM_SFMT_U16_BE; alsa_format.format = SND_PCM_SFMT_U16_BE;
break; break;
#ifndef WORDS_BIGENDIAN #ifndef WORDS_BIGENDIAN
case AFMT_AC3: case AF_FORMAT_AC3:
#endif #endif
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
alsa_format.format = SND_PCM_SFMT_S16_LE; alsa_format.format = SND_PCM_SFMT_S16_LE;
break; break;
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
case AFMT_AC3: case AF_FORMAT_AC3:
#endif #endif
case AFMT_S16_BE: case AF_FORMAT_S16_BE:
alsa_format.format = SND_PCM_SFMT_S16_BE; alsa_format.format = SND_PCM_SFMT_S16_BE;
break; break;
default: default:

View File

@ -12,12 +12,12 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "config.h" #include "config.h"
#include "mp_msg.h" #include "mp_msg.h"
#include "help_mp.h" #include "help_mp.h"
#define OBTAIN_BITRATE(a) (((a != AFMT_U8) && (a != AFMT_S8)) ? 16 : 8) #define OBTAIN_BITRATE(a) (((a != AF_FORMAT_U8) && (a != AF_FORMAT_S8)) ? 16 : 8)
/* Feel free to experiment with the following values: */ /* Feel free to experiment with the following values: */
#define ARTS_PACKETS 10 /* Number of audio packets */ #define ARTS_PACKETS 10 /* Number of audio packets */
@ -60,12 +60,12 @@ static int init(int rate_hz, int channels, int format, int flags)
* using mplayer's audio filters. * using mplayer's audio filters.
*/ */
switch (format) { switch (format) {
case AFMT_U8: case AF_FORMAT_U8:
case AFMT_S8: case AF_FORMAT_S8:
format = AFMT_U8; format = AF_FORMAT_U8;
break; break;
default: default:
format = AFMT_S16_LE; /* artsd always expects little endian?*/ format = AF_FORMAT_S16_LE; /* artsd always expects little endian?*/
break; break;
} }
@ -74,7 +74,7 @@ static int init(int rate_hz, int channels, int format, int flags)
ao_data.samplerate = rate_hz; ao_data.samplerate = rate_hz;
ao_data.bps = (rate_hz*channels); ao_data.bps = (rate_hz*channels);
if(format != AFMT_U8 && format != AFMT_S8) if(format != AF_FORMAT_U8 && format != AF_FORMAT_S8)
ao_data.bps*=2; ao_data.bps*=2;
stream=arts_play_stream(rate_hz, OBTAIN_BITRATE(format), channels, "MPlayer"); stream=arts_play_stream(rate_hz, OBTAIN_BITRATE(format), channels, "MPlayer");

View File

@ -28,7 +28,7 @@
#define DIRECTSOUND_VERSION 0x0600 #define DIRECTSOUND_VERSION 0x0600
#include <dsound.h> #include <dsound.h>
#include "afmt.h" #include "libaf/af_format.h"
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "mp_msg.h" #include "mp_msg.h"
@ -265,7 +265,7 @@ static int write_buffer(unsigned char *data, int len)
if (SUCCEEDED(res)) if (SUCCEEDED(res))
{ {
if( (ao_data.channels == 6) && (ao_data.format!=AFMT_AC3) ) { if( (ao_data.channels == 6) && (ao_data.format!=AF_FORMAT_AC3) ) {
// reorder channels while writing to pointers. // reorder channels while writing to pointers.
// it's this easy because buffer size and len are always // it's this easy because buffer size and len are always
// aligned to multiples of channels*bytespersample // aligned to multiples of channels*bytespersample
@ -366,14 +366,14 @@ static int init(int rate, int channels, int format, int flags)
//check if the format is supported in general //check if the format is supported in general
switch(format){ switch(format){
case AFMT_AC3: case AF_FORMAT_AC3:
case AFMT_S24_LE: case AF_FORMAT_S24_LE:
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
case AFMT_S8: case AF_FORMAT_S8:
break; break;
default: default:
mp_msg(MSGT_AO, MSGL_V,"ao_dsound: format %s not supported defaulting to Signed 16-bit Little-Endian\n",audio_out_format_name(format)); mp_msg(MSGT_AO, MSGL_V,"ao_dsound: format %s not supported defaulting to Signed 16-bit Little-Endian\n",audio_out_format_name(format));
format=AFMT_S16_LE; format=AF_FORMAT_S16_LE;
} }
//fill global ao_data //fill global ao_data
ao_data.channels = channels; ao_data.channels = channels;
@ -389,7 +389,7 @@ static int init(int rate, int channels, int format, int flags)
wformat.Format.cbSize = (channels > 2) ? sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX) : 0; wformat.Format.cbSize = (channels > 2) ? sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX) : 0;
wformat.Format.nChannels = channels; wformat.Format.nChannels = channels;
wformat.Format.nSamplesPerSec = rate; wformat.Format.nSamplesPerSec = rate;
if (format == AFMT_AC3) { if (format == AF_FORMAT_AC3) {
wformat.Format.wFormatTag = WAVE_FORMAT_DOLBY_AC3_SPDIF; wformat.Format.wFormatTag = WAVE_FORMAT_DOLBY_AC3_SPDIF;
wformat.Format.wBitsPerSample = 16; wformat.Format.wBitsPerSample = 16;
wformat.Format.nBlockAlign = 4; wformat.Format.nBlockAlign = 4;

View File

@ -11,8 +11,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "libaf/af_format.h"
#include "afmt.h"
static ao_info_t info = static ao_info_t info =
@ -158,9 +157,9 @@ static int get_space(){
// return: number of bytes played // return: number of bytes played
static int play(void* data,int len,int flags){ static int play(void* data,int len,int flags){
// MPEG and AC3 don't work :-( // MPEG and AC3 don't work :-(
if(ao_data.format==AFMT_MPEG) if(ao_data.format==AF_FORMAT_MPEG2)
dxr2_send_packet(data,len,0xC0,ao_data.pts); dxr2_send_packet(data,len,0xC0,ao_data.pts);
else if(ao_data.format==AFMT_AC3) else if(ao_data.format==AF_FORMAT_AC3)
dxr2_send_packet(data,len,0x80,ao_data.pts); dxr2_send_packet(data,len,0x80,ao_data.pts);
else { else {
int i; int i;

View File

@ -32,7 +32,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "config.h" #include "config.h"
#include "mp_msg.h" #include "mp_msg.h"
#include "help_mp.h" #include "help_mp.h"
@ -200,14 +200,14 @@ static int init(int rate_hz, int channels, int format, int flags)
/* EsounD can play 8bit unsigned and 16bit signed native */ /* EsounD can play 8bit unsigned and 16bit signed native */
switch (format) { switch (format) {
case AFMT_S8: case AF_FORMAT_S8:
case AFMT_U8: case AF_FORMAT_U8:
esd_fmt |= ESD_BITS8; esd_fmt |= ESD_BITS8;
ao_data.format = AFMT_U8; ao_data.format = AF_FORMAT_U8;
break; break;
default: default:
esd_fmt |= ESD_BITS16; esd_fmt |= ESD_BITS16;
ao_data.format = AFMT_S16_NE; ao_data.format = AF_FORMAT_S16_NE;
bytes_per_sample *= 2; bytes_per_sample *= 2;
break; break;
} }

View File

@ -14,7 +14,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "config.h" #include "config.h"
#include "mp_msg.h" #include "mp_msg.h"
@ -146,14 +146,14 @@ static int init(int rate_hz, int channels, int format, int flags)
} }
switch (format) { switch (format) {
case AFMT_U8: case AF_FORMAT_U8:
case AFMT_S8: case AF_FORMAT_S8:
format = AFMT_U8; format = AF_FORMAT_U8;
bits_per_sample = 8; bits_per_sample = 8;
m = 1; m = 1;
break; break;
default: default:
format = AFMT_S16_LE; format = AF_FORMAT_S16_LE;
bits_per_sample = 16; bits_per_sample = 16;
m = 2; m = 2;
break; break;

View File

@ -47,7 +47,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = static ao_info_t info =
{ {
@ -252,7 +252,7 @@ static int init(int rate,int channels,int format,int flags)
if (ao->outputStreamBasicDescription.mFormatID == kAudioFormatLinearPCM) { if (ao->outputStreamBasicDescription.mFormatID == kAudioFormatLinearPCM) {
uint32_t flags = ao->outputStreamBasicDescription.mFormatFlags; uint32_t flags = ao->outputStreamBasicDescription.mFormatFlags;
if (flags & kAudioFormatFlagIsFloat) { if (flags & kAudioFormatFlagIsFloat) {
ao_data.format = AFMT_FLOAT; ao_data.format = AF_FORMAT_FLOAT_NE;
} else { } else {
ao_msg(MSGT_AO,MSGL_WARN, "Unsupported audio output " ao_msg(MSGT_AO,MSGL_WARN, "Unsupported audio output "
"format %d. Please report this to the developer\n", "format %d. Please report this to the developer\n",

View File

@ -15,7 +15,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "mp_msg.h" #include "mp_msg.h"
#include "help_mp.h" #include "help_mp.h"
@ -96,14 +96,14 @@ static int init(int rate,int channels,int format,int flags){
ao_data.channels=2; ao_data.channels=2;
ao_data.outburst=2000; ao_data.outburst=2000;
switch(format){ switch(format){
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
case AFMT_S16_BE: case AF_FORMAT_S16_BE:
case AFMT_MPEG: case AF_FORMAT_MPEG2:
case AFMT_AC3: case AF_FORMAT_AC3:
ao_data.format=format; ao_data.format=format;
break; break;
default: default:
ao_data.format=AFMT_S16_BE; ao_data.format=AF_FORMAT_S16_BE;
} }
retry: retry:
@ -174,14 +174,14 @@ static int get_space(){
// return: number of bytes played // return: number of bytes played
static int play(void* data,int len,int flags){ static int play(void* data,int len,int flags){
// printf("\nao_mpegpes: play(%d) freq=%d\n",len,freq_id); // printf("\nao_mpegpes: play(%d) freq=%d\n",len,freq_id);
if(ao_data.format==AFMT_MPEG) if(ao_data.format==AF_FORMAT_MPEG2)
send_pes_packet(data,len,0x1C0,ao_data.pts); send_pes_packet(data,len,0x1C0,ao_data.pts);
else { else {
int i; int i;
unsigned short *s=data; unsigned short *s=data;
// if(len>2000) len=2000; // if(len>2000) len=2000;
// printf("ao_mpegpes: len=%d \n",len); // printf("ao_mpegpes: len=%d \n",len);
if(ao_data.format==AFMT_S16_LE || ao_data.format==AFMT_AC3) if(ao_data.format==AF_FORMAT_S16_LE || ao_data.format==AF_FORMAT_AC3)
for(i=0;i<len/2;i++) s[i]=(s[i]>>8)|(s[i]<<8); // le<->be for(i=0;i<len/2;i++) s[i]=(s[i]>>8)|(s[i]<<8); // le<->be
send_lpcm_packet(data,len,0xA0,ao_data.pts,freq_id); send_lpcm_packet(data,len,0xA0,ao_data.pts,freq_id);
} }

View File

@ -37,7 +37,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#define NAS_FRAG_SIZE 4096 #define NAS_FRAG_SIZE 4096
@ -312,22 +312,22 @@ static AuDeviceID nas_find_device(AuServer *aud, int nch)
static unsigned int nas_aformat_to_auformat(unsigned int *format) static unsigned int nas_aformat_to_auformat(unsigned int *format)
{ {
switch (*format) { switch (*format) {
case AFMT_U8: case AF_FORMAT_U8:
return AuFormatLinearUnsigned8; return AuFormatLinearUnsigned8;
case AFMT_S8: case AF_FORMAT_S8:
return AuFormatLinearSigned8; return AuFormatLinearSigned8;
case AFMT_U16_LE: case AF_FORMAT_U16_LE:
return AuFormatLinearUnsigned16LSB; return AuFormatLinearUnsigned16LSB;
case AFMT_U16_BE: case AF_FORMAT_U16_BE:
return AuFormatLinearUnsigned16MSB; return AuFormatLinearUnsigned16MSB;
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
return AuFormatLinearSigned16LSB; return AuFormatLinearSigned16LSB;
case AFMT_S16_BE: case AF_FORMAT_S16_BE:
return AuFormatLinearSigned16MSB; return AuFormatLinearSigned16MSB;
case AFMT_MU_LAW: case AF_FORMAT_MU_LAW:
return AuFormatULAW8; return AuFormatULAW8;
default: default:
*format=AFMT_S16_NE; *format=AF_FORMAT_S16_NE;
return nas_aformat_to_auformat(format); return nas_aformat_to_auformat(format);
} }
} }

View File

@ -2,7 +2,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <sys/time.h> #include <sys/time.h>
#include "afmt.h" #include "libaf/af_format.h"
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
@ -55,7 +55,7 @@ static int init(int rate,int channels,int format,int flags){
ao_data.samplerate=rate; ao_data.samplerate=rate;
ao_data.format=format; ao_data.format=format;
ao_data.bps=channels*rate; ao_data.bps=channels*rate;
if (format != AFMT_U8 && format != AFMT_S8) if (format != AF_FORMAT_U8 && format != AF_FORMAT_S8)
ao_data.bps*=2; ao_data.bps*=2;
buffer=0; buffer=0;
gettimeofday(&last_tv, 0); gettimeofday(&last_tv, 0);

View File

@ -9,14 +9,21 @@
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
//#include <sys/soundcard.h>
#include "config.h" #include "config.h"
#include "mp_msg.h" #include "mp_msg.h"
#include "mixer.h" #include "mixer.h"
#include "help_mp.h" #include "help_mp.h"
#include "afmt.h" #ifdef HAVE_SYS_SOUNDCARD_H
#include <sys/soundcard.h>
#else
#ifdef HAVE_SOUNDCARD_H
#include <soundcard.h>
#endif
#endif
#include "../libaf/af_format.h"
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
@ -33,6 +40,86 @@ static ao_info_t info =
LIBAO_EXTERN(oss) LIBAO_EXTERN(oss)
static int format2oss(int format)
{
switch(format)
{
case AF_FORMAT_U8: return AFMT_U8;
case AF_FORMAT_S8: return AFMT_S8;
case AF_FORMAT_U16_LE: return AFMT_U16_LE;
case AF_FORMAT_U16_BE: return AFMT_U16_BE;
case AF_FORMAT_S16_LE: return AFMT_S16_LE;
case AF_FORMAT_S16_BE: return AFMT_S16_BE;
#ifdef AFMT_S24_LE
case AF_FORMAT_U24_LE: return AFMT_U24_LE;
case AF_FORMAT_U24_BE: return AFMT_U24_BE;
case AF_FORMAT_S24_LE: return AFMT_S24_LE;
case AF_FORMAT_S24_BE: return AFMT_S24_BE;
#endif
#ifdef AFMT_S32_LE
case AF_FORMAT_U32_LE: return AFMT_U32_LE;
case AF_FORMAT_U32_BE: return AFMT_U32_BE;
case AF_FORMAT_S32_LE: return AFMT_S32_LE;
case AF_FORMAT_S32_BE: return AFMT_S32_BE;
#endif
#ifdef AFMT_FLOAT
case AF_FORMAT_FLOAT_NE: return AFMT_FLOAT;
#endif
// SPECIALS
case AF_FORMAT_MU_LAW: return AFMT_MU_LAW;
case AF_FORMAT_A_LAW: return AFMT_A_LAW;
case AF_FORMAT_IMA_ADPCM: return AFMT_IMA_ADPCM;
#ifdef AFMT_MPEG
case AF_FORMAT_MPEG2: return AFMT_MPEG;
#endif
#ifdef AFMT_AC3
case AF_FORMAT_AC3: return AFMT_AC3;
#endif
}
printf("Unknown format: %x\n", format);
return -1;
}
static int oss2format(int format)
{
switch(format)
{
case AFMT_U8: return AF_FORMAT_U8;
case AFMT_S8: return AF_FORMAT_S8;
case AFMT_U16_LE: return AF_FORMAT_U16_LE;
case AFMT_U16_BE: return AF_FORMAT_U16_BE;
case AFMT_S16_LE: return AF_FORMAT_S16_LE;
case AFMT_S16_BE: return AF_FORMAT_S16_BE;
#ifdef AFMT_S24_LE
case AFMT_U24_LE: return AF_FORMAT_U24_LE;
case AFMT_U24_BE: return AF_FORMAT_U24_BE;
case AFMT_S24_LE: return AF_FORMAT_S24_LE;
case AFMT_S24_BE: return AF_FORMAT_S24_BE;
#endif
#ifdef AFMT_S32_LE
case AFMT_U32_LE: return AF_FORMAT_U32_LE;
case AFMT_U32_BE: return AF_FORMAT_U32_BE;
case AFMT_S32_LE: return AF_FORMAT_S32_LE;
case AFMT_S32_BE: return AF_FORMAT_S32_BE;
#endif
#ifdef AFMT_FLOAT
case AFMT_FLOAT: return AF_FORMAT_FLOAT_NE;
#endif
// SPECIALS
case AFMT_MU_LAW: return AF_FORMAT_MU_LAW;
case AFMT_A_LAW: return AF_FORMAT_A_LAW;
case AFMT_IMA_ADPCM: return AF_FORMAT_IMA_ADPCM;
#ifdef AFMT_MPEG
case AFMT_MPEG: return AF_FORMAT_MPEG2;
#endif
#ifdef AFMT_AC3
case AFMT_AC3: return AF_FORMAT_AC3;
#endif
}
printf("Unknown format: %x\n", format);
return -1;
}
static char *dsp=PATH_DEV_DSP; static char *dsp=PATH_DEV_DSP;
static audio_buf_info zz; static audio_buf_info zz;
static int audio_fd=-1; static int audio_fd=-1;
@ -57,7 +144,7 @@ static int control(int cmd,void *arg){
ao_control_vol_t *vol = (ao_control_vol_t *)arg; ao_control_vol_t *vol = (ao_control_vol_t *)arg;
int fd, v, devs; int fd, v, devs;
if(ao_data.format == AFMT_AC3) if(ao_data.format == AF_FORMAT_AC3)
return CONTROL_TRUE; return CONTROL_TRUE;
if ((fd = open(oss_mixer_device, O_RDONLY)) > 0) if ((fd = open(oss_mixer_device, O_RDONLY)) > 0)
@ -95,9 +182,10 @@ static int control(int cmd,void *arg){
// return: 1=success 0=fail // return: 1=success 0=fail
static int init(int rate,int channels,int format,int flags){ static int init(int rate,int channels,int format,int flags){
char *mixer_channels [SOUND_MIXER_NRDEVICES] = SOUND_DEVICE_NAMES; char *mixer_channels [SOUND_MIXER_NRDEVICES] = SOUND_DEVICE_NAMES;
int oss_format;
mp_msg(MSGT_AO,MSGL_V,"ao2: %d Hz %d chans %s\n",rate,channels, // mp_msg(MSGT_AO,MSGL_V,"ao2: %d Hz %d chans %s\n",rate,channels,
audio_out_format_name(format)); // audio_out_format_name(format));
if (ao_subdevice) if (ao_subdevice)
dsp = ao_subdevice; dsp = ao_subdevice;
@ -160,32 +248,39 @@ static int init(int rate,int channels,int format,int flags){
fcntl(audio_fd, F_SETFD, FD_CLOEXEC); fcntl(audio_fd, F_SETFD, FD_CLOEXEC);
#endif #endif
if(format == AFMT_AC3) { if(format == AF_FORMAT_AC3) {
ao_data.samplerate=rate; ao_data.samplerate=rate;
ioctl (audio_fd, SNDCTL_DSP_SPEED, &ao_data.samplerate); ioctl (audio_fd, SNDCTL_DSP_SPEED, &ao_data.samplerate);
} }
ac3_retry: ac3_retry:
ao_data.format=format; ao_data.format=format;
if( ioctl(audio_fd, SNDCTL_DSP_SETFMT, &ao_data.format)<0 || oss_format=format2oss(format);
ao_data.format != format) if(format == AFMT_AC3){ if (oss_format == -1) return 0;
if( ioctl(audio_fd, SNDCTL_DSP_SETFMT, &oss_format)<0 ||
oss_format != format2oss(format)) if(format == AF_FORMAT_AC3){
mp_msg(MSGT_AO,MSGL_WARN, MSGTR_AO_OSS_CantSetAC3, dsp); mp_msg(MSGT_AO,MSGL_WARN, MSGTR_AO_OSS_CantSetAC3, dsp);
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
format=AFMT_S16_BE; oss_format=AFMT_S16_BE;
format=AF_FORMAT_S16_BE;
#else #else
format=AFMT_S16_LE; oss_format=AFMT_S16_LE;
format=AF_FORMAT_S16_LE;
#endif #endif
goto ac3_retry; goto ac3_retry;
} }
mp_msg(MSGT_AO,MSGL_V,"audio_setup: sample format: %s (requested: %s)\n", // mp_msg(MSGT_AO,MSGL_V,"audio_setup: sample format: %s (requested: %s)\n",
audio_out_format_name(ao_data.format), audio_out_format_name(format)); // audio_out_format_name(ao_data.format), audio_out_format_name(format));
#if 0 #if 0
if(ao_data.format!=format) if(oss_format!=format2oss(format))
mp_msg(MSGT_AO,MSGL_WARN,"WARNING! Your soundcard does NOT support %s sample format! Broken audio or bad playback speed are possible! Try with '-aop list=format'\n",audio_out_format_name(format)); mp_msg(MSGT_AO,MSGL_WARN,"WARNING! Your soundcard does NOT support %s sample format! Broken audio or bad playback speed are possible! Try with '-aop list=format'\n",audio_out_format_name(format));
#endif #endif
ao_data.format = oss2format(oss_format);
if (ao_data.format == -1) return 0;
ao_data.channels = channels; ao_data.channels = channels;
if(format != AFMT_AC3) { if(format != AF_FORMAT_AC3) {
// We only use SNDCTL_DSP_CHANNELS for >2 channels, in case some drivers don't have it // We only use SNDCTL_DSP_CHANNELS for >2 channels, in case some drivers don't have it
if (ao_data.channels > 2) { if (ao_data.channels > 2) {
if ( ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &ao_data.channels) == -1 || if ( ioctl(audio_fd, SNDCTL_DSP_CHANNELS, &ao_data.channels) == -1 ||
@ -253,7 +348,7 @@ ac3_retry:
} }
ao_data.bps=ao_data.channels; ao_data.bps=ao_data.channels;
if(ao_data.format != AFMT_U8 && ao_data.format != AFMT_S8) if(ao_data.format != AF_FORMAT_U8 && ao_data.format != AF_FORMAT_S8)
ao_data.bps*=2; ao_data.bps*=2;
ao_data.outburst-=ao_data.outburst % ao_data.bps; // round down ao_data.outburst-=ao_data.outburst % ao_data.bps; // round down
@ -280,6 +375,7 @@ static void uninit(int immed){
// stop playing and empty buffers (for seeking/pause) // stop playing and empty buffers (for seeking/pause)
static void reset(){ static void reset(){
int oss_format;
uninit(1); uninit(1);
audio_fd=open(dsp, O_WRONLY); audio_fd=open(dsp, O_WRONLY);
if(audio_fd < 0){ if(audio_fd < 0){
@ -291,8 +387,9 @@ static void reset(){
fcntl(audio_fd, F_SETFD, FD_CLOEXEC); fcntl(audio_fd, F_SETFD, FD_CLOEXEC);
#endif #endif
ioctl (audio_fd, SNDCTL_DSP_SETFMT, &ao_data.format); oss_format = format2oss(ao_data.format);
if(ao_data.format != AFMT_AC3) { ioctl (audio_fd, SNDCTL_DSP_SETFMT, &oss_format);
if(ao_data.format != AF_FORMAT_AC3) {
if (ao_data.channels > 2) if (ao_data.channels > 2)
ioctl (audio_fd, SNDCTL_DSP_CHANNELS, &ao_data.channels); ioctl (audio_fd, SNDCTL_DSP_CHANNELS, &ao_data.channels);
else { else {

View File

@ -5,7 +5,7 @@
#include <string.h> #include <string.h>
#include "bswap.h" #include "bswap.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "mp_msg.h" #include "mp_msg.h"
@ -89,12 +89,12 @@ static int init(int rate,int channels,int format,int flags){
bits=8; bits=8;
switch(format){ switch(format){
case AFMT_S8: case AF_FORMAT_S8:
format=AFMT_U8; format=AF_FORMAT_U8;
case AFMT_U8: case AF_FORMAT_U8:
break; break;
default: default:
format=AFMT_S16_LE; format=AF_FORMAT_S16_LE;
bits=16; bits=16;
break; break;
} }
@ -114,9 +114,9 @@ static int init(int rate,int channels,int format,int flags){
wavhdr.data_length=le2me_32(0x7ffff000); wavhdr.data_length=le2me_32(0x7ffff000);
wavhdr.file_length = wavhdr.data_length + sizeof(wavhdr) - 8; wavhdr.file_length = wavhdr.data_length + sizeof(wavhdr) - 8;
mp_msg(MSGT_AO, MSGL_INFO, MSGTR_AO_PCM_FileInfo, ao_outputfilename, // mp_msg(MSGT_AO, MSGL_INFO, MSGTR_AO_PCM_FileInfo, ao_outputfilename,
(ao_pcm_waveheader?"WAVE":"RAW PCM"), rate, // (ao_pcm_waveheader?"WAVE":"RAW PCM"), rate,
(channels > 1) ? "Stereo" : "Mono", audio_out_format_name(format)); // (channels > 1) ? "Stereo" : "Mono", audio_out_format_name(format));
mp_msg(MSGT_AO, MSGL_INFO, MSGTR_AO_PCM_HintInfo); mp_msg(MSGT_AO, MSGL_INFO, MSGTR_AO_PCM_HintInfo);
fp = fopen(ao_outputfilename, "wb"); fp = fopen(ao_outputfilename, "wb");

View File

@ -6,7 +6,7 @@
#include "mp_msg.h" #include "mp_msg.h"
#include "help_mp.h" #include "help_mp.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
@ -140,7 +140,7 @@ static int init(int rate,int channels,int format,int flags){
ao_plugin_local_data.format=format; ao_plugin_local_data.format=format;
ao_plugin_local_data.channels=channels; ao_plugin_local_data.channels=channels;
ao_plugin_local_data.bpm=audio_out_format_bits(format); ao_plugin_local_data.bpm=af_fmt2bits(format);
ao_plugin_data.rate=rate; ao_plugin_data.rate=rate;
ao_plugin_data.channels=channels; ao_plugin_data.channels=channels;
@ -168,7 +168,7 @@ static int init(int rate,int channels,int format,int flags){
// Calculate bps // Calculate bps
ao_plugin_local_data.bps=(float)(ao_plugin_data.rate * ao_plugin_local_data.bps=(float)(ao_plugin_data.rate *
ao_plugin_data.channels); ao_plugin_data.channels);
ao_plugin_local_data.bps*=audio_out_format_bits(ao_plugin_data.format)/8; ao_plugin_local_data.bps*=af_fmt2bits(ao_plugin_data.format)/8;
// This should never happen but check anyway // This should never happen but check anyway
if(NULL==ao_plugin_local_data.driver) if(NULL==ao_plugin_local_data.driver)

View File

@ -6,7 +6,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "config.h" #include "config.h"
#include "mp_msg.h" #include "mp_msg.h"
@ -91,16 +91,16 @@ static int init(int rate_hz, int channels, int format, int flags) {
ss.rate = rate_hz; ss.rate = rate_hz;
switch (format) { switch (format) {
case AFMT_U8: case AF_FORMAT_U8:
ss.format = PA_SAMPLE_U8; ss.format = PA_SAMPLE_U8;
break; break;
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
ss.format = PA_SAMPLE_S16LE; ss.format = PA_SAMPLE_S16LE;
break; break;
case AFMT_S16_BE: case AF_FORMAT_S16_BE:
ss.format = PA_SAMPLE_S16BE; ss.format = PA_SAMPLE_S16BE;
break; break;
case AFMT_FLOAT: case AF_FORMAT_FLOAT_NE:
ss.format = PA_SAMPLE_FLOAT32; ss.format = PA_SAMPLE_FLOAT32;
break; break;
default: default:

View File

@ -20,7 +20,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include <SDL.h> #include <SDL.h>
#include "osdep/timer.h" #include "osdep/timer.h"
@ -181,7 +181,7 @@ static int init(int rate,int channels,int format,int flags){
/* Allocate ring-buffer memory */ /* Allocate ring-buffer memory */
buffer = (unsigned char *) malloc(BUFFSIZE); buffer = (unsigned char *) malloc(BUFFSIZE);
mp_msg(MSGT_AO,MSGL_INFO,MSGTR_AO_SDL_INFO, rate, (channels > 1) ? "Stereo" : "Mono", audio_out_format_name(format)); // mp_msg(MSGT_AO,MSGL_INFO,MSGTR_AO_SDL_INFO, rate, (channels > 1) ? "Stereo" : "Mono", audio_out_format_name(format));
if(ao_subdevice) { if(ao_subdevice) {
setenv("SDL_AUDIODRIVER", ao_subdevice, 1); setenv("SDL_AUDIODRIVER", ao_subdevice, 1);
@ -193,32 +193,32 @@ static int init(int rate,int channels,int format,int flags){
ao_data.format=format; ao_data.format=format;
ao_data.bps=channels*rate; ao_data.bps=channels*rate;
if(format != AFMT_U8 && format != AFMT_S8) if(format != AF_FORMAT_U8 && format != AF_FORMAT_S8)
ao_data.bps*=2; ao_data.bps*=2;
/* The desired audio format (see SDL_AudioSpec) */ /* The desired audio format (see SDL_AudioSpec) */
switch(format) { switch(format) {
case AFMT_U8: case AF_FORMAT_U8:
aspec.format = AUDIO_U8; aspec.format = AUDIO_U8;
break; break;
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
aspec.format = AUDIO_S16LSB; aspec.format = AUDIO_S16LSB;
break; break;
case AFMT_S16_BE: case AF_FORMAT_S16_BE:
aspec.format = AUDIO_S16MSB; aspec.format = AUDIO_S16MSB;
break; break;
case AFMT_S8: case AF_FORMAT_S8:
aspec.format = AUDIO_S8; aspec.format = AUDIO_S8;
break; break;
case AFMT_U16_LE: case AF_FORMAT_U16_LE:
aspec.format = AUDIO_U16LSB; aspec.format = AUDIO_U16LSB;
break; break;
case AFMT_U16_BE: case AF_FORMAT_U16_BE:
aspec.format = AUDIO_U16MSB; aspec.format = AUDIO_U16MSB;
break; break;
default: default:
aspec.format = AUDIO_S16LSB; aspec.format = AUDIO_S16LSB;
ao_data.format = AFMT_S16_LE; ao_data.format = AF_FORMAT_S16_LE;
mp_msg(MSGT_AO,MSGL_WARN,MSGTR_AO_SDL_UnsupportedAudioFmt, format); mp_msg(MSGT_AO,MSGL_WARN,MSGTR_AO_SDL_UnsupportedAudioFmt, format);
} }
@ -256,22 +256,22 @@ void callback(void *userdata, Uint8 *stream, int len); userdata is the pointer s
switch(obtained.format) { switch(obtained.format) {
case AUDIO_U8 : case AUDIO_U8 :
ao_data.format = AFMT_U8; ao_data.format = AF_FORMAT_U8;
break; break;
case AUDIO_S16LSB : case AUDIO_S16LSB :
ao_data.format = AFMT_S16_LE; ao_data.format = AF_FORMAT_S16_LE;
break; break;
case AUDIO_S16MSB : case AUDIO_S16MSB :
ao_data.format = AFMT_S16_BE; ao_data.format = AF_FORMAT_S16_BE;
break; break;
case AUDIO_S8 : case AUDIO_S8 :
ao_data.format = AFMT_S8; ao_data.format = AF_FORMAT_S8;
break; break;
case AUDIO_U16LSB : case AUDIO_U16LSB :
ao_data.format = AFMT_U16_LE; ao_data.format = AF_FORMAT_U16_LE;
break; break;
case AUDIO_U16MSB : case AUDIO_U16MSB :
ao_data.format = AFMT_U16_BE; ao_data.format = AF_FORMAT_U16_BE;
break; break;
default: default:
mp_msg(MSGT_AO,MSGL_WARN,MSGTR_AO_SDL_UnsupportedAudioFmt, obtained.format); mp_msg(MSGT_AO,MSGL_WARN,MSGTR_AO_SDL_UnsupportedAudioFmt, obtained.format);

View File

@ -23,7 +23,7 @@
#include <windows.h> #include <windows.h>
#include <mmsystem.h> #include <mmsystem.h>
#include "afmt.h" #include "libaf/af_format.h"
#include "audio_out.h" #include "audio_out.h"
#include "audio_out_internal.h" #include "audio_out_internal.h"
#include "mp_msg.h" #include "mp_msg.h"
@ -149,21 +149,21 @@ static int init(int rate,int channels,int format,int flags)
int i; int i;
switch(format){ switch(format){
case AFMT_AC3: case AF_FORMAT_AC3:
case AFMT_S24_LE: case AF_FORMAT_S24_LE:
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
case AFMT_S8: case AF_FORMAT_S8:
break; break;
default: default:
mp_msg(MSGT_AO, MSGL_V,"ao_win32: format %s not supported defaulting to Signed 16-bit Little-Endian\n",audio_out_format_name(format)); mp_msg(MSGT_AO, MSGL_V,"ao_win32: format %s not supported defaulting to Signed 16-bit Little-Endian\n",audio_out_format_name(format));
format=AFMT_S16_LE; format=AF_FORMAT_S16_LE;
} }
//fill global ao_data //fill global ao_data
ao_data.channels=channels; ao_data.channels=channels;
ao_data.samplerate=rate; ao_data.samplerate=rate;
ao_data.format=format; ao_data.format=format;
ao_data.bps=channels*rate; ao_data.bps=channels*rate;
if(format != AFMT_U8 && format != AFMT_S8) if(format != AF_FORMAT_U8 && format != AF_FORMAT_S8)
ao_data.bps*=2; ao_data.bps*=2;
if(ao_data.buffersize==-1) if(ao_data.buffersize==-1)
{ {
@ -179,7 +179,7 @@ static int init(int rate,int channels,int format,int flags)
wformat.Format.cbSize = (channels>2)?sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX):0; wformat.Format.cbSize = (channels>2)?sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX):0;
wformat.Format.nChannels = channels; wformat.Format.nChannels = channels;
wformat.Format.nSamplesPerSec = rate; wformat.Format.nSamplesPerSec = rate;
if(format == AFMT_AC3) if(format == AF_FORMAT_AC3)
{ {
wformat.Format.wFormatTag = WAVE_FORMAT_DOLBY_AC3_SPDIF; wformat.Format.wFormatTag = WAVE_FORMAT_DOLBY_AC3_SPDIF;
wformat.Format.wBitsPerSample = 16; wformat.Format.wBitsPerSample = 16;
@ -208,7 +208,7 @@ static int init(int rate,int channels,int format,int flags)
mp_msg(MSGT_AO, MSGL_ERR,"ao_win32: format not supported switching to default\n"); mp_msg(MSGT_AO, MSGL_ERR,"ao_win32: format not supported switching to default\n");
ao_data.channels = wformat.Format.nChannels = 2; ao_data.channels = wformat.Format.nChannels = 2;
ao_data.samplerate = wformat.Format.nSamplesPerSec = 44100; ao_data.samplerate = wformat.Format.nSamplesPerSec = 44100;
ao_data.format = AFMT_S16_LE; ao_data.format = AF_FORMAT_S16_LE;
ao_data.bps=ao_data.channels * ao_data.samplerate*2; ao_data.bps=ao_data.channels * ao_data.samplerate*2;
wformat.Format.wBitsPerSample=16; wformat.Format.wBitsPerSample=16;
wformat.Format.wFormatTag=WAVE_FORMAT_PCM; wformat.Format.wFormatTag=WAVE_FORMAT_PCM;

View File

@ -4,7 +4,6 @@
#include "config.h" #include "config.h"
#include "audio_out.h" #include "audio_out.h"
#include "afmt.h"
#include "mp_msg.h" #include "mp_msg.h"
#include "help_mp.h" #include "help_mp.h"
@ -187,6 +186,7 @@ ao_functions_t* init_best_audio_out(char** ao_list,int use_plugin,int rate,int c
audio_out_plugin.control(AOCONTROL_SET_PLUGIN_DRIVER,audio_out); audio_out_plugin.control(AOCONTROL_SET_PLUGIN_DRIVER,audio_out);
audio_out=&audio_out_plugin; audio_out=&audio_out_plugin;
} }
// if(audio_out->control(AOCONTROL_QUERY_FORMAT, (int)format) == CONTROL_TRUE)
if(audio_out->init(rate,channels,format,flags)) if(audio_out->init(rate,channels,format,flags))
return audio_out; // success! return audio_out; // success!
} }

View File

@ -45,7 +45,7 @@ extern ao_plugin_cfg_t ao_plugin_cfg;
// Configuration defaults // Configuration defaults
#define CFG_DEFAULTS { \ #define CFG_DEFAULTS { \
NULL, \ NULL, \
AFMT_S16_LE, \ AF_FORMAT_S16_LE, \
0, \ 0, \
48000, \ 48000, \
101, \ 101, \

View File

@ -12,7 +12,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = static ao_info_t info =
{ {
@ -65,7 +65,7 @@ static int init(){
// Tell ao_plugin how much this plugin adds to the overall time delay // Tell ao_plugin how much this plugin adds to the overall time delay
time_delay=-1*(float)ao_plugin_cfg.pl_delay_len/((float)pl_delay.channels*(float)pl_delay.rate); time_delay=-1*(float)ao_plugin_cfg.pl_delay_len/((float)pl_delay.channels*(float)pl_delay.rate);
if(pl_delay.format != AFMT_U8 && pl_delay.format != AFMT_S8) if(pl_delay.format != AF_FORMAT_U8 && pl_delay.format != AF_FORMAT_S8)
time_delay/=2; time_delay/=2;
ao_plugin_data.delay_fix+=time_delay; ao_plugin_data.delay_fix+=time_delay;

View File

@ -24,7 +24,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "eq.h" #include "eq.h"
static ao_info_t info = static ao_info_t info =
@ -122,7 +122,7 @@ static int init(){
float F[KM] = CF; float F[KM] = CF;
// Check input format // Check input format
if(ao_plugin_data.format != AFMT_S16_NE){ if(ao_plugin_data.format != AF_FORMAT_S16_NE){
fprintf(stderr,"[pl_eq] Input audio format not yet supported. \n"); fprintf(stderr,"[pl_eq] Input audio format not yet supported. \n");
return 0; return 0;
} }

View File

@ -19,7 +19,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = { static ao_info_t info = {
"Extra stereo plugin", "Extra stereo plugin",
@ -57,7 +57,7 @@ static int control(int cmd,void *arg){
// return: 1=success 0=fail // return: 1=success 0=fail
static int init(){ static int init(){
switch(ao_plugin_data.format){ switch(ao_plugin_data.format){
case(AFMT_S16_NE): case(AF_FORMAT_S16_NE):
break; break;
default: default:
fprintf(stderr,"[pl_extrastereo] Audio format not yet suported \n"); fprintf(stderr,"[pl_extrastereo] Audio format not yet suported \n");
@ -87,7 +87,7 @@ static void reset(){
static int play(){ static int play(){
switch(pl_extrastereo.format){ switch(pl_extrastereo.format){
case(AFMT_S16_NE): { case(AF_FORMAT_S16_NE): {
int16_t* data=(int16_t*)ao_plugin_data.data; int16_t* data=(int16_t*)ao_plugin_data.data;
int len=ao_plugin_data.len / 2; // 16 bits samples int len=ao_plugin_data.len / 2; // 16 bits samples

View File

@ -16,7 +16,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = static ao_info_t info =
{ {
@ -75,29 +75,30 @@ static int control(int cmd,void *arg){
// open & setup audio device // open & setup audio device
// return: 1=success 0=fail // return: 1=success 0=fail
static int init(){ static int init(){
char buf1[128], buf2[128];
// Sheck input format // Sheck input format
switch(ao_plugin_data.format){ switch(ao_plugin_data.format){
case(AFMT_U8): case(AF_FORMAT_U8):
pl_format.in=LE|B08|US; break; pl_format.in=LE|B08|US; break;
case(AFMT_S8): case(AF_FORMAT_S8):
pl_format.in=LE|B08|SI; break; pl_format.in=LE|B08|SI; break;
case(AFMT_S16_LE): case(AF_FORMAT_S16_LE):
pl_format.in=LE|B16|SI; break; pl_format.in=LE|B16|SI; break;
case(AFMT_S16_BE): case(AF_FORMAT_S16_BE):
pl_format.in=BE|B16|SI; break; pl_format.in=BE|B16|SI; break;
case(AFMT_U16_LE): case(AF_FORMAT_U16_LE):
pl_format.in=LE|B16|US; break; pl_format.in=LE|B16|US; break;
case(AFMT_U16_BE): case(AF_FORMAT_U16_BE):
pl_format.in=BE|B16|US; break; pl_format.in=BE|B16|US; break;
case(AFMT_S32_LE): case(AF_FORMAT_S32_LE):
pl_format.in=LE|B32|SI; break; pl_format.in=LE|B32|SI; break;
case(AFMT_S32_BE): case(AF_FORMAT_S32_BE):
pl_format.in=BE|B32|SI; break; pl_format.in=BE|B32|SI; break;
case(AFMT_IMA_ADPCM): case(AF_FORMAT_IMA_ADPCM):
case(AFMT_MU_LAW): case(AF_FORMAT_MU_LAW):
case(AFMT_A_LAW): case(AF_FORMAT_A_LAW):
case(AFMT_MPEG): case(AF_FORMAT_MPEG2):
case(AFMT_AC3): case(AF_FORMAT_AC3):
printf("[pl_format] Input audio format not yet suported \n"); printf("[pl_format] Input audio format not yet suported \n");
return 0; return 0;
default: default:
@ -106,27 +107,27 @@ static int init(){
} }
// Sheck output format // Sheck output format
switch(ao_plugin_cfg.pl_format_type){ switch(ao_plugin_cfg.pl_format_type){
case(AFMT_U8): case(AF_FORMAT_U8):
pl_format.out=LE|B08|US; break; pl_format.out=LE|B08|US; break;
case(AFMT_S8): case(AF_FORMAT_S8):
pl_format.out=LE|B08|SI; break; pl_format.out=LE|B08|SI; break;
case(AFMT_S16_LE): case(AF_FORMAT_S16_LE):
pl_format.out=LE|B16|SI; break; pl_format.out=LE|B16|SI; break;
case(AFMT_S16_BE): case(AF_FORMAT_S16_BE):
pl_format.out=BE|B16|SI; break; pl_format.out=BE|B16|SI; break;
case(AFMT_U16_LE): case(AF_FORMAT_U16_LE):
pl_format.out=LE|B16|US; break; pl_format.out=LE|B16|US; break;
case(AFMT_U16_BE): case(AF_FORMAT_U16_BE):
pl_format.out=BE|B16|US; break; pl_format.out=BE|B16|US; break;
case(AFMT_S32_LE): case(AF_FORMAT_S32_LE):
pl_format.out=LE|B32|SI; break; pl_format.out=LE|B32|SI; break;
case(AFMT_S32_BE): case(AF_FORMAT_S32_BE):
pl_format.out=BE|B32|SI; break; pl_format.out=BE|B32|SI; break;
case(AFMT_IMA_ADPCM): case(AF_FORMAT_IMA_ADPCM):
case(AFMT_MU_LAW): case(AF_FORMAT_MU_LAW):
case(AFMT_A_LAW): case(AF_FORMAT_A_LAW):
case(AFMT_MPEG): case(AF_FORMAT_MPEG2):
case(AFMT_AC3): case(AF_FORMAT_AC3):
printf("[pl_format] Output audio format not yet suported \n"); printf("[pl_format] Output audio format not yet suported \n");
return 0; return 0;
default: default:
@ -136,8 +137,8 @@ static int init(){
// Tell the world what we are up to // Tell the world what we are up to
printf("[pl_format] Input format: %s, output format: %s \n", printf("[pl_format] Input format: %s, output format: %s \n",
audio_out_format_name(ao_plugin_data.format), af_fmt2str(ao_plugin_data.format, &buf1, 128),
audio_out_format_name(ao_plugin_cfg.pl_format_type)); af_fmt2str(ao_plugin_cfg.pl_format_type, &buf2, 128));
// We are changing the format // We are changing the format
ao_plugin_data.format=ao_plugin_cfg.pl_format_type; ao_plugin_data.format=ao_plugin_cfg.pl_format_type;

View File

@ -23,7 +23,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = static ao_info_t info =
{ {
@ -119,7 +119,7 @@ static int init(){
pl_resample.up=UP; pl_resample.up=UP;
// Sheck input format // Sheck input format
if(ao_plugin_data.format != AFMT_S16_NE){ if(ao_plugin_data.format != AF_FORMAT_S16_NE){
fprintf(stderr,"[pl_resample] Input audio format not yet suported. \n"); fprintf(stderr,"[pl_resample] Input audio format not yet suported. \n");
return 0; return 0;
} }

View File

@ -44,7 +44,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
#include "remez.h" #include "remez.h"
#include "firfilter.c" #include "firfilter.c"
@ -108,8 +108,8 @@ static int init(){
pl_surround.passthrough = 1; pl_surround.passthrough = 1;
return 1; return 1;
} }
if (ao_plugin_data.format != AFMT_S16_NE) { if (ao_plugin_data.format != AF_FORMAT_S16_NE) {
fprintf(stderr, "pl_surround: I'm dumb and can only handle AFMT_S16_NE audio format, using passthrough mode\n"); fprintf(stderr, "pl_surround: I'm dumb and can only handle AF_FORMAT_S16_NE audio format, using passthrough mode\n");
pl_surround.passthrough = 1; pl_surround.passthrough = 1;
return 1; return 1;
} }

View File

@ -30,7 +30,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = { static ao_info_t info = {
"Volume normalizer", "Volume normalizer",
@ -116,7 +116,7 @@ static int control(int cmd,void *arg){
// return: 1=success 0=fail // return: 1=success 0=fail
static int init(){ static int init(){
switch(ao_plugin_data.format){ switch(ao_plugin_data.format){
case(AFMT_S16_NE): case(AF_FORMAT_S16_NE):
break; break;
default: default:
fprintf(stderr,"[pl_volnorm] Audio format not yet supported.\n"); fprintf(stderr,"[pl_volnorm] Audio format not yet supported.\n");
@ -142,7 +142,7 @@ static void reset(){
int i; int i;
mul = MUL_INIT; mul = MUL_INIT;
switch(ao_plugin_data.format) { switch(ao_plugin_data.format) {
case(AFMT_S16_NE): case(AF_FORMAT_S16_NE):
#if AVG==1 #if AVG==1
lastavg = MID_S16; lastavg = MID_S16;
#elif AVG==2 #elif AVG==2
@ -165,7 +165,7 @@ static void reset(){
static int play(){ static int play(){
switch(pl_volnorm.format){ switch(pl_volnorm.format){
case(AFMT_S16_NE): { case(AF_FORMAT_S16_NE): {
#define CLAMP(x,m,M) do { if ((x)<(m)) (x) = (m); else if ((x)>(M)) (x) = (M); } while(0) #define CLAMP(x,m,M) do { if ((x)<(m)) (x) = (m); else if ((x)>(M)) (x) = (M); } while(0)
int16_t* data=(int16_t*)ao_plugin_data.data; int16_t* data=(int16_t*)ao_plugin_data.data;

View File

@ -20,7 +20,7 @@
#include "audio_out.h" #include "audio_out.h"
#include "audio_plugin.h" #include "audio_plugin.h"
#include "audio_plugin_internal.h" #include "audio_plugin_internal.h"
#include "afmt.h" #include "libaf/af_format.h"
static ao_info_t info = static ao_info_t info =
{ {
@ -80,8 +80,8 @@ static int control(int cmd,void *arg){
static int init(){ static int init(){
// Sanity sheck this plugin supports AFMT_U8 and AFMT_S16_LE // Sanity sheck this plugin supports AFMT_U8 and AFMT_S16_LE
switch(ao_plugin_data.format){ switch(ao_plugin_data.format){
case(AFMT_U8): case(AF_FORMAT_U8):
case(AFMT_S16_NE): case(AF_FORMAT_S16_NE):
break; break;
default: default:
fprintf(stderr,"[pl_volume] Audio format not yet suported \n"); fprintf(stderr,"[pl_volume] Audio format not yet suported \n");
@ -117,7 +117,7 @@ static int play(){
vol=(vol*vol*vol)>>12; vol=(vol*vol*vol)>>12;
// Change the volume. // Change the volume.
switch(pl_volume.format){ switch(pl_volume.format){
case(AFMT_U8):{ case(AF_FORMAT_U8):{
register uint8_t* data=(uint8_t*)ao_plugin_data.data; register uint8_t* data=(uint8_t*)ao_plugin_data.data;
register int x; register int x;
for(i=0;i<ao_plugin_data.len;i++){ for(i=0;i<ao_plugin_data.len;i++){
@ -135,7 +135,7 @@ static int play(){
} }
break; break;
} }
case(AFMT_S16_NE):{ case(AF_FORMAT_S16_NE):{
register int len=ao_plugin_data.len>>1; register int len=ao_plugin_data.len>>1;
register int16_t* data=(int16_t*)ao_plugin_data.data; register int16_t* data=(int16_t*)ao_plugin_data.data;
register int x; register int x;

View File

@ -6,7 +6,6 @@
#include "mp_msg.h" #include "mp_msg.h"
#include "help_mp.h" #include "help_mp.h"
#include "ad_internal.h" #include "ad_internal.h"
#include "../libaf/af_format.h"
static ad_info_t info = static ad_info_t info =
{ {
@ -35,26 +34,25 @@ static int init(sh_audio_t *sh)
} }
switch ((h >> 6) & 3) { switch ((h >> 6) & 3) {
case 0: case 0:
sh->sample_format = AFMT_S16_BE; sh->sample_format = AF_FORMAT_S16_BE;
sh->samplesize = 2; sh->samplesize = 2;
break; break;
case 1: case 1:
mp_msg(MSGT_DECAUDIO, MSGL_INFO, MSGTR_SamplesWanted); mp_msg(MSGT_DECAUDIO, MSGL_INFO, MSGTR_SamplesWanted);
sh->i_bps = sh->channels * sh->samplerate * 5 / 2; sh->i_bps = sh->channels * sh->samplerate * 5 / 2;
case 2: case 2:
sh->sample_format = AFMT_AF_FLAGS | AF_FORMAT_I | sh->sample_format = AF_FORMAT_S24_BE;
AF_FORMAT_BE | AF_FORMAT_SI;
sh->samplesize = 3; sh->samplesize = 3;
break; break;
default: default:
sh->sample_format = AFMT_S16_BE; sh->sample_format = AF_FORMAT_S16_BE;
sh->samplesize = 2; sh->samplesize = 2;
} }
} else { } else {
// use defaults: // use defaults:
sh->channels=2; sh->channels=2;
sh->samplerate=48000; sh->samplerate=48000;
sh->sample_format = AFMT_S16_BE; sh->sample_format = AF_FORMAT_S16_BE;
sh->samplesize = 2; sh->samplesize = 2;
} }
if (!sh->i_bps) if (!sh->i_bps)

View File

@ -105,7 +105,7 @@ static int preinit(sh_audio_t *sh)
sh->audio_in_minsize = 8192; sh->audio_in_minsize = 8192;
sh->channels = 2; sh->channels = 2;
sh->samplesize = 2; sh->samplesize = 2;
sh->sample_format = AFMT_AC3; sh->sample_format = AF_FORMAT_AC3;
return 1; return 1;
} }

View File

@ -1,6 +1,6 @@
#include "codec-cfg.h" #include "codec-cfg.h"
#include "../libao2/afmt.h" #include "../libaf/af_format.h"
#include "stream.h" #include "stream.h"
#include "demuxer.h" #include "demuxer.h"

View File

@ -24,31 +24,31 @@ static int init(sh_audio_t *sh_audio)
sh_audio->channels=h->nChannels; sh_audio->channels=h->nChannels;
sh_audio->samplerate=h->nSamplesPerSec; sh_audio->samplerate=h->nSamplesPerSec;
sh_audio->samplesize=(h->wBitsPerSample+7)/8; sh_audio->samplesize=(h->wBitsPerSample+7)/8;
sh_audio->sample_format=AFMT_S16_LE; // default sh_audio->sample_format=AF_FORMAT_S16_LE; // default
switch(sh_audio->format){ /* hardware formats: */ switch(sh_audio->format){ /* hardware formats: */
case 0x0: case 0x0:
case 0x1: // Microsoft PCM case 0x1: // Microsoft PCM
switch (sh_audio->samplesize) { switch (sh_audio->samplesize) {
case 1: sh_audio->sample_format=AFMT_U8; break; case 1: sh_audio->sample_format=AF_FORMAT_U8; break;
case 2: sh_audio->sample_format=AFMT_S16_LE; break; case 2: sh_audio->sample_format=AF_FORMAT_S16_LE; break;
case 3: sh_audio->sample_format=AFMT_S24_LE; break; case 3: sh_audio->sample_format=AF_FORMAT_S24_LE; break;
case 4: sh_audio->sample_format=AFMT_S32_LE; break; case 4: sh_audio->sample_format=AF_FORMAT_S32_LE; break;
} }
break; break;
case 0x6: sh_audio->sample_format=AFMT_A_LAW;break; case 0x6: sh_audio->sample_format=AF_FORMAT_A_LAW;break;
case 0x7: sh_audio->sample_format=AFMT_MU_LAW;break; case 0x7: sh_audio->sample_format=AF_FORMAT_MU_LAW;break;
case 0x11: sh_audio->sample_format=AFMT_IMA_ADPCM;break; case 0x11: sh_audio->sample_format=AF_FORMAT_IMA_ADPCM;break;
case 0x50: sh_audio->sample_format=AFMT_MPEG;break; case 0x50: sh_audio->sample_format=AF_FORMAT_MPEG2;break;
/* case 0x2000: sh_audio->sample_format=AFMT_AC3; */ /* case 0x2000: sh_audio->sample_format=AFMT_AC3; */
case 0x20776172: // 'raw ' case 0x20776172: // 'raw '
sh_audio->sample_format=AFMT_S16_BE; sh_audio->sample_format=AF_FORMAT_S16_BE;
if(sh_audio->samplesize==1) sh_audio->sample_format=AFMT_U8; if(sh_audio->samplesize==1) sh_audio->sample_format=AF_FORMAT_U8;
break; break;
case 0x736F7774: // 'twos' case 0x736F7774: // 'twos'
sh_audio->sample_format=AFMT_S16_BE; sh_audio->sample_format=AF_FORMAT_S16_BE;
// intended fall-through // intended fall-through
case 0x74776F73: // 'swot' case 0x74776F73: // 'swot'
if(sh_audio->samplesize==1) sh_audio->sample_format=AFMT_S8; if(sh_audio->samplesize==1) sh_audio->sample_format=AF_FORMAT_S8;
// Uncomment this if twos audio is broken for you // Uncomment this if twos audio is broken for you
// (typically with movies made on sgi machines) // (typically with movies made on sgi machines)
// This is just a workaround, the real bug is elsewhere // This is just a workaround, the real bug is elsewhere
@ -58,10 +58,10 @@ static int init(sh_audio_t *sh_audio)
#endif #endif
break; break;
case 0x32336c66: // 'fl32', bigendian float32 case 0x32336c66: // 'fl32', bigendian float32
sh_audio->sample_format=AFMT_AF_FLAGS | AF_FORMAT_BE | AF_FORMAT_F; sh_audio->sample_format=AF_FORMAT_FLOAT_BE;
sh_audio->samplesize=4; sh_audio->samplesize=4;
break; break;
default: if(sh_audio->samplesize!=2) sh_audio->sample_format=AFMT_U8; default: if(sh_audio->samplesize!=2) sh_audio->sample_format=AF_FORMAT_U8;
} }
return 1; return 1;
} }

View File

@ -25,7 +25,7 @@ static int preinit(sh_audio_t *sh) {
sh->samplerate=sh->wf->nSamplesPerSec; sh->samplerate=sh->wf->nSamplesPerSec;
sh->samplesize=sh->wf->wBitsPerSample/8; sh->samplesize=sh->wf->wBitsPerSample/8;
sh->channels=sh->wf->nChannels; sh->channels=sh->wf->nChannels;
sh->sample_format=AFMT_S16_LE; sh->sample_format=AF_FORMAT_S16_LE;
switch (sh->format) { switch (sh->format) {
case mmioFOURCC('1','4','_','4'): case mmioFOURCC('1','4','_','4'):

View File

@ -47,7 +47,7 @@ static int preinit(sh_audio_t *sh){
sh->samplesize=2; // bytes (not bits!) per sample per channel sh->samplesize=2; // bytes (not bits!) per sample per channel
sh->channels=2; // number of channels sh->channels=2; // number of channels
sh->samplerate=44100; // samplerate sh->samplerate=44100; // samplerate
sh->sample_format=AFMT_S16_LE; // sample format, see libao2/afmt.h sh->sample_format=AF_FORMAT_S16_LE; // sample format, see libao2/afmt.h
sh->i_bps=64000/8; // input data rate (compressed bytes per second) sh->i_bps=64000/8; // input data rate (compressed bytes per second)
// Note: if you have VBR or unknown input rate, set it to some common or // Note: if you have VBR or unknown input rate, set it to some common or

View File

@ -14,7 +14,7 @@
#include "dec_audio.h" #include "dec_audio.h"
#include "ad.h" #include "ad.h"
#include "../libao2/afmt.h" #include "../libaf/af_format.h"
#include "../libaf/af.h" #include "../libaf/af.h"
@ -267,13 +267,15 @@ int preinit_audio_filters(sh_audio_t *sh_audio,
// input format: same as codec's output format: // input format: same as codec's output format:
afs->input.rate = in_samplerate; afs->input.rate = in_samplerate;
afs->input.nch = in_channels; afs->input.nch = in_channels;
afs->input.format = af_format_decode(in_format); // afs->input.format = af_format_decode(in_format);
afs->input.format = in_format;
afs->input.bps = in_bps; afs->input.bps = in_bps;
// output format: same as ao driver's input format (if missing, fallback to input) // output format: same as ao driver's input format (if missing, fallback to input)
afs->output.rate = *out_samplerate ? *out_samplerate : afs->input.rate; afs->output.rate = *out_samplerate ? *out_samplerate : afs->input.rate;
afs->output.nch = *out_channels ? *out_channels : afs->input.nch; afs->output.nch = *out_channels ? *out_channels : afs->input.nch;
afs->output.format = *out_format ? af_format_decode(*out_format) : afs->input.format; // afs->output.format = *out_format ? af_format_decode(*out_format) : afs->input.format;
afs->output.format = *out_format ? *out_format : afs->input.format;
afs->output.bps = out_bps ? out_bps : afs->input.bps; afs->output.bps = out_bps ? out_bps : afs->input.bps;
// filter config: // filter config:
@ -291,11 +293,12 @@ int preinit_audio_filters(sh_audio_t *sh_audio,
*out_samplerate=afs->output.rate; *out_samplerate=afs->output.rate;
*out_channels=afs->output.nch; *out_channels=afs->output.nch;
*out_format=af_format_encode((void*)(&afs->output)); // *out_format=af_format_encode((void*)(&afs->output));
*out_format=afs->output.format;
mp_msg(MSGT_DECAUDIO, MSGL_INFO, "AF_pre: af format: %d bps, %d ch, %d hz, %s\n", mp_msg(MSGT_DECAUDIO, MSGL_INFO, "AF_pre: af format: %d bps, %d ch, %d hz, %s\n",
afs->output.bps, afs->output.nch, afs->output.rate, afs->output.bps, afs->output.nch, afs->output.rate,
fmt2str(afs->output.format,strbuf,200)); af_fmt2str(afs->output.format,strbuf,200));
sh_audio->afilter=(void*)afs; sh_audio->afilter=(void*)afs;
return 1; return 1;
@ -315,13 +318,15 @@ int init_audio_filters(sh_audio_t *sh_audio,
// input format: same as codec's output format: // input format: same as codec's output format:
afs->input.rate = in_samplerate; afs->input.rate = in_samplerate;
afs->input.nch = in_channels; afs->input.nch = in_channels;
afs->input.format = af_format_decode(in_format); // afs->input.format = af_format_decode(in_format);
afs->input.format = in_format;
afs->input.bps = in_bps; afs->input.bps = in_bps;
// output format: same as ao driver's input format (if missing, fallback to input) // output format: same as ao driver's input format (if missing, fallback to input)
afs->output.rate = out_samplerate ? out_samplerate : afs->input.rate; afs->output.rate = out_samplerate ? out_samplerate : afs->input.rate;
afs->output.nch = out_channels ? out_channels : afs->input.nch; afs->output.nch = out_channels ? out_channels : afs->input.nch;
afs->output.format = af_format_decode(out_format ? out_format : afs->input.format); // afs->output.format = af_format_decode(out_format ? out_format : afs->input.format);
afs->output.format = out_format ? out_format : afs->input.format;
afs->output.bps = out_bps ? out_bps : afs->input.bps; afs->output.bps = out_bps ? out_bps : afs->input.bps;
// filter config: // filter config:
@ -404,7 +409,8 @@ int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen)
afd.len=declen; afd.len=declen;
afd.rate=sh_audio->samplerate; afd.rate=sh_audio->samplerate;
afd.nch=sh_audio->channels; afd.nch=sh_audio->channels;
afd.format=af_format_decode(sh_audio->sample_format); // afd.format=af_format_decode(sh_audio->sample_format);
afd.format=sh_audio->sample_format;
afd.bps=sh_audio->samplesize; afd.bps=sh_audio->samplesize;
//pafd=&afd; //pafd=&afd;
// printf("\nAF: %d --> ",declen); // printf("\nAF: %d --> ",declen);

View File

@ -18,7 +18,7 @@
#include "stheader.h" #include "stheader.h"
#include "mf.h" #include "mf.h"
#include "../libao2/afmt.h" #include "../libaf/af_format.h"
#include "../libvo/fastmemcpy.h" #include "../libvo/fastmemcpy.h"
// Should be set to 1 by demux module if ids it passes to new_sh_audio and // Should be set to 1 by demux module if ids it passes to new_sh_audio and
@ -91,7 +91,7 @@ sh_audio_t* new_sh_audio(demuxer_t *demuxer,int id){
sh = demuxer->a_streams[id]; sh = demuxer->a_streams[id];
// set some defaults // set some defaults
sh->samplesize=2; sh->samplesize=2;
sh->sample_format=AFMT_S16_NE; sh->sample_format=AF_FORMAT_S16_NE;
sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/ sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/
if (identify && !demux_aid_vid_mismatch) if (identify && !demux_aid_vid_mismatch)
mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", id); mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", id);

View File

@ -29,8 +29,7 @@ int tv_param_on = 0;
#include "demuxer.h" #include "demuxer.h"
#include "stheader.h" #include "stheader.h"
#include "../libao2/afmt.h" #include "../libaf/af_format.h"
#include "../libao2/audio_out.h"
#include "../libvo/img_format.h" #include "../libvo/img_format.h"
#include "../libvo/fastmemcpy.h" #include "../libvo/fastmemcpy.h"
@ -516,6 +515,7 @@ int demux_open_tv(demuxer_t *demuxer)
{ {
int audio_format; int audio_format;
int sh_audio_format; int sh_audio_format;
char buf[128];
/* yeah, audio is present */ /* yeah, audio is present */
@ -527,24 +527,24 @@ int demux_open_tv(demuxer_t *demuxer)
switch(audio_format) switch(audio_format)
{ {
case AFMT_U8: case AF_FORMAT_U8:
case AFMT_S8: case AF_FORMAT_S8:
case AFMT_U16_LE: case AF_FORMAT_U16_LE:
case AFMT_U16_BE: case AF_FORMAT_U16_BE:
case AFMT_S16_LE: case AF_FORMAT_S16_LE:
case AFMT_S16_BE: case AF_FORMAT_S16_BE:
case AFMT_S32_LE: case AF_FORMAT_S32_LE:
case AFMT_S32_BE: case AF_FORMAT_S32_BE:
sh_audio_format = 0x1; /* PCM */ sh_audio_format = 0x1; /* PCM */
break; break;
case AFMT_IMA_ADPCM: case AF_FORMAT_IMA_ADPCM:
case AFMT_MU_LAW: case AF_FORMAT_MU_LAW:
case AFMT_A_LAW: case AF_FORMAT_A_LAW:
case AFMT_MPEG: case AF_FORMAT_MPEG2:
case AFMT_AC3: case AF_FORMAT_AC3:
default: default:
mp_msg(MSGT_TV, MSGL_ERR, "Audio type '%s (%x)' unsupported!\n", mp_msg(MSGT_TV, MSGL_ERR, "Audio type '%s (%x)' unsupported!\n",
audio_out_format_name(audio_format), audio_format); af_fmt2str(audio_format, &buf, 128), audio_format);
goto no_audio; goto no_audio;
} }

View File

@ -61,6 +61,7 @@
#endif #endif
#endif #endif
#include "../libaf/af_format.h"
#include "../libvo/img_format.h" #include "../libvo/img_format.h"
#include "tv.h" #include "tv.h"
@ -246,7 +247,7 @@ static int control(priv_t *priv, int cmd, void *arg)
case TVI_CONTROL_AUD_GET_FORMAT: case TVI_CONTROL_AUD_GET_FORMAT:
{ {
(int)*(void **)arg = AFMT_S16_LE; (int)*(void **)arg = AF_FORMAT_S16_LE;
return(TVI_CONTROL_TRUE); return(TVI_CONTROL_TRUE);
} }
case TVI_CONTROL_AUD_GET_CHANNELS: case TVI_CONTROL_AUD_GET_CHANNELS:

View File

@ -41,7 +41,7 @@
#endif #endif
#include "mp_msg.h" #include "mp_msg.h"
#include "../libao2/afmt.h" #include "../libaf/af_format.h"
#include "../libvo/img_format.h" #include "../libvo/img_format.h"
#include "../libvo/fastmemcpy.h" #include "../libvo/fastmemcpy.h"
#include "../libvo/videodev_mjpeg.h" #include "../libvo/videodev_mjpeg.h"
@ -1285,7 +1285,7 @@ static int control(priv_t *priv, int cmd, void *arg)
/* ========== AUDIO controls =========== */ /* ========== AUDIO controls =========== */
case TVI_CONTROL_AUD_GET_FORMAT: case TVI_CONTROL_AUD_GET_FORMAT:
{ {
*(int *)arg = AFMT_S16_LE; *(int *)arg = AF_FORMAT_S16_LE;
return(TVI_CONTROL_TRUE); return(TVI_CONTROL_TRUE);
} }
case TVI_CONTROL_AUD_GET_CHANNELS: case TVI_CONTROL_AUD_GET_CHANNELS:

View File

@ -43,7 +43,7 @@ known issues:
#include "videodev2.h" #include "videodev2.h"
#include "../mp_msg.h" #include "../mp_msg.h"
#include "../libvo/img_format.h" #include "../libvo/img_format.h"
#include "../libao2/afmt.h" #include "../libaf/af_format.h"
#include "tv.h" #include "tv.h"
#include "audio_in.h" #include "audio_in.h"
@ -731,7 +731,7 @@ static int control(priv_t *priv, int cmd, void *arg)
} }
return TVI_CONTROL_TRUE; return TVI_CONTROL_TRUE;
case TVI_CONTROL_AUD_GET_FORMAT: case TVI_CONTROL_AUD_GET_FORMAT:
*(int *)arg = AFMT_S16_LE; *(int *)arg = AF_FORMAT_S16_LE;
mp_msg(MSGT_TV, MSGL_V, "%s: get audio format: %d\n", mp_msg(MSGT_TV, MSGL_V, "%s: get audio format: %d\n",
info.short_name, *(int *)arg); info.short_name, *(int *)arg);
return TVI_CONTROL_TRUE; return TVI_CONTROL_TRUE;

View File

@ -54,7 +54,7 @@
#include "libvo/video_out.h" #include "libvo/video_out.h"
#include "libao2/afmt.h" #include "libaf/af_format.h"
#include "libmpcodecs/mp_image.h" #include "libmpcodecs/mp_image.h"
#include "libmpcodecs/dec_audio.h" #include "libmpcodecs/dec_audio.h"
@ -809,7 +809,7 @@ case ACODEC_PCM:
sh_audio->samplerate, sh_audio->samplerate,
sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize, sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize,
mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels, mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels,
(mux_a->wf->wBitsPerSample==8)? AFMT_U8:AFMT_S16_LE, (mux_a->wf->wBitsPerSample==8)? AF_FORMAT_U8:AF_FORMAT_S16_LE,
mux_a->wf->wBitsPerSample/8, mux_a->wf->wBitsPerSample/8,
16384, mux_a->wf->nAvgBytesPerSec)){ 16384, mux_a->wf->nAvgBytesPerSec)){
mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_NoMatchingFilter); mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_NoMatchingFilter);
@ -842,11 +842,7 @@ case ACODEC_VBRMP3:
sh_audio->samplerate, sh_audio->samplerate,
sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize, sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize,
mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels, mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels,
#ifdef WORDS_BIGENDIAN AF_FORMAT_S16_NE, 2,
AFMT_S16_BE, 2,
#else
AFMT_S16_LE, 2,
#endif
4608, mux_a->h.dwRate*mux_a->wf->nChannels*2)){ 4608, mux_a->h.dwRate*mux_a->wf->nChannels*2)){
mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_NoMatchingFilter); mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_NoMatchingFilter);
} }
@ -983,7 +979,7 @@ case ACODEC_LAVC:
sh_audio->samplerate, sh_audio->channels, sh_audio->samplerate, sh_audio->channels,
sh_audio->sample_format, sh_audio->samplesize, sh_audio->sample_format, sh_audio->samplesize,
mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels, mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels,
AFMT_S16_NE, 2, AF_FORMAT_S16_NE, 2,
mux_a->h.dwSuggestedBufferSize, mux_a->h.dwSuggestedBufferSize,
mux_a->h.dwSuggestedBufferSize*2)) { mux_a->h.dwSuggestedBufferSize*2)) {
mp_msg(MSGT_CPLAYER, MSGL_ERR, MSGTR_NoMatchingFilter); mp_msg(MSGT_CPLAYER, MSGL_ERR, MSGTR_NoMatchingFilter);
@ -1048,7 +1044,7 @@ case ACODEC_TOOLAME:
sh_audio->samplerate, sh_audio->channels, sh_audio->samplerate, sh_audio->channels,
sh_audio->sample_format, sh_audio->samplesize, sh_audio->sample_format, sh_audio->samplesize,
mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels, mux_a->wf->nSamplesPerSec, mux_a->wf->nChannels,
AFMT_S16_NE, 2, AF_FORMAT_S16_NE, 2,
mux_a->h.dwSuggestedBufferSize, mux_a->h.dwSuggestedBufferSize,
mux_a->h.dwSuggestedBufferSize*2)) { mux_a->h.dwSuggestedBufferSize*2)) {
mp_msg(MSGT_CPLAYER, MSGL_ERR, "Couldn't find matching filter / ao format!\n"); mp_msg(MSGT_CPLAYER, MSGL_ERR, "Couldn't find matching filter / ao format!\n");

View File

@ -942,7 +942,7 @@ static int build_afilter_chain(sh_audio_t *sh_audio, ao_data_t *ao_data)
result = init_audio_filters(sh_audio, new_srate, result = init_audio_filters(sh_audio, new_srate,
sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize, sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize,
ao_data->samplerate, ao_data->channels, ao_data->format, ao_data->samplerate, ao_data->channels, ao_data->format,
audio_out_format_bits(ao_data->format) / 8, /* ao_data.bps, */ af_fmt2bits(ao_data->format) / 8, /* ao_data.bps, */
ao_data->outburst * 4, ao_data->buffersize); ao_data->outburst * 4, ao_data->buffersize);
mixer.afilter = sh_audio->afilter; mixer.afilter = sh_audio->afilter;
return result; return result;
@ -2094,12 +2094,13 @@ if(sh_audio){
sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize, sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize,
// output: // output:
&ao_data.samplerate, &ao_data.channels, &ao_data.format, &ao_data.samplerate, &ao_data.channels, &ao_data.format,
audio_out_format_bits(ao_data.format)/8)){ af_fmt2bits(ao_data.format)/8)){
mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_AudioFilterChainPreinitError); mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_AudioFilterChainPreinitError);
} else { } else {
char buf[128];
mp_msg(MSGT_CPLAYER,MSGL_INFO,"AF_pre: %dHz %dch %s\n", mp_msg(MSGT_CPLAYER,MSGL_INFO,"AF_pre: %dHz %dch %s\n",
ao_data.samplerate, ao_data.channels, ao_data.samplerate, ao_data.channels,
audio_out_format_name(ao_data.format)); af_fmt2str(ao_data.format,&buf,128));
} }
#endif #endif
current_module="ao2_init"; current_module="ao2_init";
@ -2114,12 +2115,13 @@ if(sh_audio){
sh_audio=d_audio->sh=NULL; // -> nosound sh_audio=d_audio->sh=NULL; // -> nosound
} else { } else {
// SUCCESS: // SUCCESS:
char buf[128];
inited_flags|=INITED_AO; inited_flags|=INITED_AO;
mp_msg(MSGT_CPLAYER,MSGL_INFO,"AO: [%s] %dHz %dch %s (%d bps)\n", mp_msg(MSGT_CPLAYER,MSGL_INFO,"AO: [%s] %dHz %dch %s (%d bps)\n",
audio_out->info->short_name, audio_out->info->short_name,
ao_data.samplerate, ao_data.channels, ao_data.samplerate, ao_data.channels,
audio_out_format_name(ao_data.format), af_fmt2str(ao_data.format, &buf, 128),
audio_out_format_bits(ao_data.format)/8 ); af_fmt2bits(ao_data.format)/8 );
mp_msg(MSGT_CPLAYER,MSGL_V,"AO: Description: %s\nAO: Author: %s\n", mp_msg(MSGT_CPLAYER,MSGL_V,"AO: Description: %s\nAO: Author: %s\n",
audio_out->info->name, audio_out->info->author); audio_out->info->name, audio_out->info->author);
if(strlen(audio_out->info->comment) > 0) if(strlen(audio_out->info->comment) > 0)