view libmpcodecs/vd_internal.h @ 9177:01a713dcaf23

disable free() in string and string_list parsers. yes, it's a hack (and a little memleak), but i can explain :) [note it's just a few kB memleak, but it's the price of stability without full code review/audit - there are hunderds of possible double free()] the old config parser didn't free() strings/stringlists, but didn't even allocate them by default. the new one always free(), and it causes memcorruption/sig11 at cases like this: char* dvd_device="/dev/dvd"; {"dvd-device", &dvd_device, CONF_TYPE_STRING, 0, 0, 0, NULL}, since string constansts (allocated in .TEXT segment) cannot be free()'d
author arpi
date Thu, 30 Jan 2003 21:28:01 +0000
parents 1972c3475d93
children 4faee1254928
line wrap: on
line source


#include "codec-cfg.h"
#include "img_format.h"

#include "stream.h"
#include "demuxer.h"
#include "stheader.h"

#include "vd.h"

extern int divx_quality;

// prototypes:
//static vd_info_t info;
static int control(sh_video_t *sh,int cmd,void* arg,...);
static int init(sh_video_t *sh);
static void uninit(sh_video_t *sh);
static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags);

#define LIBVD_EXTERN(x) vd_functions_t mpcodecs_vd_##x = {\
	&info,\
	init,\
        uninit,\
	control,\
	decode\
};