2002-12-27 22:43:20 +00:00
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <inttypes.h>
|
2002-12-28 00:48:07 +00:00
|
|
|
#include <unistd.h>
|
2002-12-27 22:43:20 +00:00
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
#include "../version.h"
|
|
|
|
|
2004-04-28 10:18:33 +00:00
|
|
|
#include "aviheader.h"
|
|
|
|
#include "ms_hdr.h"
|
2002-12-27 22:43:20 +00:00
|
|
|
|
|
|
|
#include "muxer.h"
|
2005-02-21 21:45:49 +00:00
|
|
|
#include "stream.h"
|
|
|
|
#include "demuxer.h"
|
|
|
|
#include "mp_msg.h"
|
|
|
|
#include "help_mp.h"
|
|
|
|
#include "stheader.h"
|
2002-12-27 22:43:20 +00:00
|
|
|
|
2003-01-19 00:33:11 +00:00
|
|
|
muxer_t *muxer_new_muxer(int type,FILE *f){
|
2002-12-27 22:43:20 +00:00
|
|
|
muxer_t* muxer=malloc(sizeof(muxer_t));
|
|
|
|
memset(muxer,0,sizeof(muxer_t));
|
2003-01-19 00:33:11 +00:00
|
|
|
muxer->file = f;
|
2002-12-27 22:43:20 +00:00
|
|
|
switch (type) {
|
|
|
|
case MUXER_TYPE_MPEG:
|
2005-02-21 21:45:49 +00:00
|
|
|
if(! muxer_init_muxer_mpeg(muxer))
|
|
|
|
return NULL;
|
2002-12-27 22:43:20 +00:00
|
|
|
break;
|
2004-03-09 14:46:34 +00:00
|
|
|
case MUXER_TYPE_RAWVIDEO:
|
2005-02-21 21:45:49 +00:00
|
|
|
if(! muxer_init_muxer_rawvideo(muxer))
|
|
|
|
return NULL;
|
2004-03-09 14:46:34 +00:00
|
|
|
break;
|
2005-06-21 18:54:50 +00:00
|
|
|
case MUXER_TYPE_RAWAUDIO:
|
|
|
|
if(! muxer_init_muxer_rawaudio(muxer))
|
|
|
|
return NULL;
|
|
|
|
break;
|
2005-02-21 23:18:31 +00:00
|
|
|
#ifdef USE_LIBAVFORMAT
|
|
|
|
case MUXER_TYPE_LAVF:
|
|
|
|
if(! muxer_init_muxer_lavf(muxer))
|
|
|
|
return NULL;
|
|
|
|
break;
|
|
|
|
#endif
|
2002-12-27 22:43:20 +00:00
|
|
|
case MUXER_TYPE_AVI:
|
|
|
|
default:
|
2005-02-21 21:45:49 +00:00
|
|
|
if(! muxer_init_muxer_avi(muxer))
|
|
|
|
return NULL;
|
2002-12-27 22:43:20 +00:00
|
|
|
}
|
|
|
|
return muxer;
|
|
|
|
}
|