Mercurial > mplayer.hg
view libvo/vosub_vidix.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 | 9fc45fe0d444 |
children | 147f31870df6 |
line wrap: on
line source
/* * vosub_vidix.h * * Copyright (C) Nick Kurshev <nickols_k@mail.ru> - 2002 * * You can redistribute this file under terms and conditions * of GNU General Public licence v2. * * This file contains vosub_vidix interface to any mplayer's VO driver */ #ifndef __VOSUB_VIDIX_INCLUDED #define __VOSUB_VIDIX_INCLUDED /* drvname can be NULL */ int vidix_preinit(const char *drvname,void *server); int vidix_init(unsigned src_width,unsigned src_height, unsigned dest_x,unsigned dest_y,unsigned dst_width, unsigned dst_height,unsigned format,unsigned dest_bpp, unsigned vid_w,unsigned vid_h); int vidix_start(void); int vidix_stop(void); void vidix_term( void ); uint32_t vidix_control(uint32_t request, void *data, ...); uint32_t vidix_query_fourcc(unsigned fourcc); uint32_t vidix_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y); uint32_t vidix_draw_frame(uint8_t *src[]); void vidix_flip_page(void); void vidix_draw_osd(void); #include "../vidix/vidix.h" /* graphic keys */ int vidix_grkey_support(void); int vidix_grkey_get(vidix_grkey_t *gr_key); int vidix_grkey_set(const vidix_grkey_t *gr_key); #endif