Mercurial > mplayer.hg
view libmpdemux/muxer.c @ 15978:c8dc500e078e
memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap.
Committed with the kind blessing of Richard, patch by uau
author | gpoirier |
---|---|
date | Fri, 15 Jul 2005 22:09:30 +0000 |
parents | 59e8dcea6d9e |
children | 6ff3379a0862 |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <inttypes.h> #include <unistd.h> #include "config.h" #include "../version.h" #include "aviheader.h" #include "ms_hdr.h" #include "muxer.h" #include "stream.h" #include "demuxer.h" #include "mp_msg.h" #include "help_mp.h" #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->file = f; switch (type) { case MUXER_TYPE_MPEG: if(! muxer_init_muxer_mpeg(muxer)) return NULL; break; case MUXER_TYPE_RAWVIDEO: if(! muxer_init_muxer_rawvideo(muxer)) return NULL; break; case MUXER_TYPE_RAWAUDIO: if(! muxer_init_muxer_rawaudio(muxer)) return NULL; break; #ifdef USE_LIBAVFORMAT case MUXER_TYPE_LAVF: if(! muxer_init_muxer_lavf(muxer)) return NULL; break; #endif case MUXER_TYPE_AVI: default: if(! muxer_init_muxer_avi(muxer)) return NULL; } return muxer; }