[Mplayer-cvslog] CVS: main/libao2 ao_mpegpes.c,NONE,1.1 Makefile,1.7,1.8 audio_out.c,1.15,1.16 audio_out.h,1.5,1.6

Arpi of Ize arpi at mplayer.dev.hu
Mon Nov 5 04:01:13 CET 2001


Update of /cvsroot/mplayer/main/libao2
In directory mplayer:/var/tmp.root/cvs-serv25145

Modified Files:
	Makefile audio_out.c audio_out.h 
Added Files:
	ao_mpegpes.c 
Log Message:
ao_mpegpes

--- NEW FILE ---
#include <stdio.h>
#include <stdlib.h>

#include "audio_out.h"
#include "audio_out_internal.h"

#include "afmt.h"

static ao_info_t info = 
{
	"mpeg-pes audio output",
	"mpegpes",
	"A'rpi",
	""
};

LIBAO_EXTERN(mpegpes)

// there are some globals:
// ao_samplerate
// ao_channels
// ao_format
// ao_bps
// ao_outburst
// ao_buffersize

// to set/get/query special features/parameters
static int control(int cmd,int arg){
    return -1;
}

// open & setup audio device
// return: 1=success 0=fail
static int init(int rate,int channels,int format,int flags){

    ao_outburst=2000;
    ao_format=format;

    return 1;
}

// close audio device
static void uninit(){

}

// stop playing and empty buffers (for seeking/pause)
static void reset(){

}

// stop playing, keep buffers (for pause)
static void audio_pause()
{
    // for now, just call reset();
    reset();
}

// resume playing, after audio_pause()
static void audio_resume()
{
}

void send_pes_packet(unsigned char* data,int len,int id,int timestamp);
void send_lpcm_packet(unsigned char* data,int len,int id,int timestamp);
extern int vo_pts;

// return: how many bytes can be played without blocking
static int get_space(){
    float x=(float)(vo_pts-ao_pts)/90000.0-0.5;
    int y;
    if(x<=0) return 0;
    y=48000*4*x;y/=ao_outburst;y*=ao_outburst;
//    printf("diff: %5.3f -> %d  \n",x,y);
    return y;
}

// plays 'len' bytes of 'data'
// it should round it down to outburst*n
// return: number of bytes played
static int play(void* data,int len,int flags){
    if(ao_format==AFMT_MPEG)
	send_pes_packet(data,len,0x1C0,ao_pts);
    else {
	int i;
	unsigned short *s=data;
	for(i=0;i<len/2;i++) s[i]=(s[i]>>8)|(s[i]<<8); // le<->be
	send_lpcm_packet(data,len,0xA0,ao_pts);
    }
    return len;
}

// return: how many unplayed bytes are in the buffer
static int get_delay(){

    return 0;
}


Index: Makefile
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/Makefile,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile	26 Jun 2001 23:15:57 -0000	1.7
+++ Makefile	5 Nov 2001 03:01:11 -0000	1.8
@@ -4,7 +4,7 @@
 LIBNAME = libao2.a
 
 # TODO: moveout ao_sdl.c so it's only used when SDL is detected
-SRCS=audio_out.c ao_null.c ao_pcm.c $(OPTIONAL_SRCS)
+SRCS=audio_out.c ao_mpegpes.c ao_null.c ao_pcm.c $(OPTIONAL_SRCS)
 OBJS=$(SRCS:.c=.o)
 
 CFLAGS  = $(OPTFLAGS) -I. -I.. $(SDL_INC) $(EXTRA_INC)

Index: audio_out.c
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/audio_out.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- audio_out.c	3 Nov 2001 02:37:39 -0000	1.15
+++ audio_out.c	5 Nov 2001 03:01:11 -0000	1.16
@@ -12,6 +12,7 @@
 int ao_bps=0;
 int ao_outburst=OUTBURST; // config.h default
 int ao_buffersize=-1;
+int ao_pts=0;
 char *ao_subdevice = NULL;
 
 #ifdef USE_OSS_AUDIO
@@ -41,6 +42,7 @@
 extern ao_functions_t audio_out_dxr3;
 #endif
 extern ao_functions_t audio_out_pcm;
+extern ao_functions_t audio_out_mpegpes;
 extern ao_functions_t audio_out_pss;
 
 ao_functions_t* audio_out_drivers[] =
@@ -71,6 +73,7 @@
 	&audio_out_dxr3,
 #endif
 	&audio_out_pcm,
+	&audio_out_mpegpes,
 //	&audio_out_pss,
 	NULL
 };

Index: audio_out.h
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/audio_out.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- audio_out.h	21 Jun 2001 22:34:58 -0000	1.5
+++ audio_out.h	5 Nov 2001 03:01:11 -0000	1.6
@@ -36,6 +36,7 @@
 extern int ao_bps;
 extern int ao_outburst;
 extern int ao_buffersize;
+extern int ao_pts;
 extern char *ao_subdevice;
 
 #define CONTROL_OK 1




More information about the MPlayer-cvslog mailing list