[MPlayer-cvslog] CVS: main/libaf af_karaoke.c, NONE, 1.1 Makefile, 1.30, 1.31 af.c, 1.54, 1.55
Reynaldo H. Verdejo CVS
syncmail at mplayerhq.hu
Sat May 13 10:46:33 CEST 2006
- Previous message: [MPlayer-cvslog] CVS: main ChangeLog, 1.309, 1.310 AUTHORS, 1.181, 1.182
- Next message: [MPlayer-cvslog] CVS: main/libaf af_karaoke.c, NONE, 1.1 Makefile, 1.30, 1.31 af.c, 1.54, 1.55
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
CVS change done by Reynaldo H. Verdejo CVS
Update of /cvsroot/mplayer/main/libaf
In directory mail:/var2/tmp/cvs-serv18775/libaf
Modified Files:
Makefile af.c
Added Files:
af_karaoke.c
Log Message:
New karaoke af
--- NEW FILE ---
/*
(c)2006 MPlayer / Reynaldo H. Verdejo Pinochet
Based on code by Alex Beregszaszi for his 'center' filter
License: GPL
Simple voice removal filter
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "af.h"
// Data for specific instances of this filter
// Initialization and runtime control
static int control(struct af_instance_s* af, int cmd, void* arg)
{
switch(cmd){
case AF_CONTROL_REINIT:
af->data->rate = ((af_data_t*)arg)->rate;
af->data->nch = ((af_data_t*)arg)->nch;
af->data->format= AF_FORMAT_FLOAT_NE;
af->data->bps = 4;
return af_test_output(af,(af_data_t*)arg);
}
return AF_UNKNOWN;
}
// Deallocate memory
static void uninit(struct af_instance_s* af)
{
if(af->data)
free(af->data);
}
// Filter data through filter
static af_data_t* play(struct af_instance_s* af, af_data_t* data)
{
af_data_t* c = data; // Current working data
float* a = c->audio; // Audio data
int len = c->len/4; // Number of samples in current audio block
int nch = c->nch; // Number of channels
register int i;
/*
FIXME1 add a low band pass filter to avoid supressing
centered bass/drums
FIXME2 better calculated* atenuation factor
*/
for(i=0;i<len;i+=nch)
{
a[i] = (a[i] - a[i+1]) * 0.7;
a[i+1]=a[i];
}
return c;
}
// Allocate memory and set function pointers
static int open(af_instance_t* af){
af->control = control;
af->uninit = uninit;
af->play = play;
af->mul.n = 1;
af->mul.d = 1;
af->data = calloc(1,sizeof(af_data_t));
if(af->data == NULL)
return AF_ERROR;
return AF_OK;
}
// Description of this filter
af_info_t af_info_karaoke = {
"Simple karaoke/voice-removal audio filter",
"karaoke",
"Reynaldo H. Verdejo Pinochet",
"",
AF_FLAGS_NOT_REENTRANT,
open
};
Index: Makefile
===================================================================
RCS file: /cvsroot/mplayer/main/libaf/Makefile,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- Makefile 13 Apr 2006 10:36:17 -0000 1.30
+++ Makefile 13 May 2006 08:46:31 -0000 1.31
@@ -14,6 +14,7 @@
af_format.c \
af_gate.c \
af_hrtf.c \
+ af_karaoke.c \
af_pan.c \
af_resample.c \
af_sinesupress.c \
Index: af.c
===================================================================
RCS file: /cvsroot/mplayer/main/libaf/af.c,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- af.c 24 Apr 2006 07:20:33 -0000 1.54
+++ af.c 13 May 2006 08:46:31 -0000 1.55
@@ -30,6 +30,7 @@
extern af_info_t af_info_ladspa;
extern af_info_t af_info_center;
extern af_info_t af_info_sinesupress;
+extern af_info_t af_info_karaoke;
static af_info_t* filter_list[]={
&af_info_dummy,
@@ -59,6 +60,7 @@
#endif
&af_info_center,
&af_info_sinesupress,
+ &af_info_karaoke,
NULL
};
- Previous message: [MPlayer-cvslog] CVS: main ChangeLog, 1.309, 1.310 AUTHORS, 1.181, 1.182
- Next message: [MPlayer-cvslog] CVS: main/libaf af_karaoke.c, NONE, 1.1 Makefile, 1.30, 1.31 af.c, 1.54, 1.55
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the MPlayer-cvslog
mailing list