summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-03-12 22:14:00 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-03-12 22:14:00 +0000
commit1a3ec4b7e6c02174160363879f1004aaeb3c0331 (patch)
treebf81f8d1971c7a0e406211dd381ad26e807f950a /libmpdemux
parent041fea5e84dd75c7924697291d21287cb77854c3 (diff)
downloadmpv-1a3ec4b7e6c02174160363879f1004aaeb3c0331.tar.bz2
mpv-1a3ec4b7e6c02174160363879f1004aaeb3c0331.tar.xz
unified failure case in muxer_new_muxer()
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17840 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/muxer.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/libmpdemux/muxer.c b/libmpdemux/muxer.c
index 3f956bed50..c59d3b1467 100644
--- a/libmpdemux/muxer.c
+++ b/libmpdemux/muxer.c
@@ -19,51 +19,39 @@
#include "stheader.h"
muxer_t *muxer_new_muxer(int type,FILE *f){
- muxer_t* muxer=malloc(sizeof(muxer_t));
- memset(muxer,0,sizeof(muxer_t));
+ muxer_t* muxer=calloc(1,sizeof(muxer_t));
if(!muxer)
return NULL;
muxer->file = f;
switch (type) {
case MUXER_TYPE_MPEG:
if(! muxer_init_muxer_mpeg(muxer))
- {
- free(muxer);
- return NULL;
- }
+ goto fail;
break;
case MUXER_TYPE_RAWVIDEO:
if(! muxer_init_muxer_rawvideo(muxer))
- {
- free(muxer);
- return NULL;
- }
+ goto fail;
break;
case MUXER_TYPE_RAWAUDIO:
if(! muxer_init_muxer_rawaudio(muxer))
- {
- free(muxer);
- return NULL;
- }
+ goto fail;
break;
#if defined(USE_LIBAVFORMAT) || defined(USE_LIBAVFORMAT_SO)
case MUXER_TYPE_LAVF:
if(! muxer_init_muxer_lavf(muxer))
- {
- free(muxer);
- return NULL;
- }
+ goto fail;
break;
#endif
case MUXER_TYPE_AVI:
default:
if(! muxer_init_muxer_avi(muxer))
- {
- free(muxer);
- return NULL;
- }
+ goto fail;
}
return muxer;
+
+fail:
+ free(muxer);
+ return NULL;
}
/* buffer frames until we either: