unified failure case in muxer_new_muxer()

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17840 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
nicodvb 2006-03-12 22:14:00 +00:00
parent 041fea5e84
commit 1a3ec4b7e6
1 changed files with 10 additions and 22 deletions

View File

@ -19,51 +19,39 @@
#include "stheader.h" #include "stheader.h"
muxer_t *muxer_new_muxer(int type,FILE *f){ muxer_t *muxer_new_muxer(int type,FILE *f){
muxer_t* muxer=malloc(sizeof(muxer_t)); muxer_t* muxer=calloc(1,sizeof(muxer_t));
memset(muxer,0,sizeof(muxer_t));
if(!muxer) if(!muxer)
return NULL; return NULL;
muxer->file = f; muxer->file = f;
switch (type) { switch (type) {
case MUXER_TYPE_MPEG: case MUXER_TYPE_MPEG:
if(! muxer_init_muxer_mpeg(muxer)) if(! muxer_init_muxer_mpeg(muxer))
{ goto fail;
free(muxer);
return NULL;
}
break; break;
case MUXER_TYPE_RAWVIDEO: case MUXER_TYPE_RAWVIDEO:
if(! muxer_init_muxer_rawvideo(muxer)) if(! muxer_init_muxer_rawvideo(muxer))
{ goto fail;
free(muxer);
return NULL;
}
break; break;
case MUXER_TYPE_RAWAUDIO: case MUXER_TYPE_RAWAUDIO:
if(! muxer_init_muxer_rawaudio(muxer)) if(! muxer_init_muxer_rawaudio(muxer))
{ goto fail;
free(muxer);
return NULL;
}
break; break;
#if defined(USE_LIBAVFORMAT) || defined(USE_LIBAVFORMAT_SO) #if defined(USE_LIBAVFORMAT) || defined(USE_LIBAVFORMAT_SO)
case MUXER_TYPE_LAVF: case MUXER_TYPE_LAVF:
if(! muxer_init_muxer_lavf(muxer)) if(! muxer_init_muxer_lavf(muxer))
{ goto fail;
free(muxer);
return NULL;
}
break; break;
#endif #endif
case MUXER_TYPE_AVI: case MUXER_TYPE_AVI:
default: default:
if(! muxer_init_muxer_avi(muxer)) if(! muxer_init_muxer_avi(muxer))
{ goto fail;
free(muxer);
return NULL;
}
} }
return muxer; return muxer;
fail:
free(muxer);
return NULL;
} }
/* buffer frames until we either: /* buffer frames until we either: