optimizations, remove dead code

This commit is contained in:
niels
2015-06-13 02:19:54 +02:00
parent 2776e8da15
commit a26ac5f608
9 changed files with 195 additions and 219 deletions

View File

@@ -3423,7 +3423,8 @@ void on_combobox_fonts_changed( GtkWidget *w, gpointer data )
return;
gint font = gtk_combo_box_get_active( GTK_COMBO_BOX( w ) );
gint size = get_nums( "spin_text_size" );
if( font < 0 || size < 0 )
return;
multi_vims( VIMS_FONT_SIZE_FONT, "%d %d", font , size );
}
void on_spin_text_size_value_changed( GtkWidget *w, gpointer data )

View File

@@ -78,7 +78,7 @@ static hash_t *SampleHash; /* hash of sample information structs */
static int avail_num[SAMPLE_MAX_SAMPLES]; /* an array of freed sample id's */
static void *sample_font_ = NULL;
static int sampleadm_state = SAMPLE_PEEK; /* default state */
static void *sample_cache[SAMPLE_MAX_SAMPLES];
extern void tagParseStreamFX(char *file, xmlDocPtr doc, xmlNodePtr cur, void *font, void *vp);
extern void tag_writeStream( char *file, int n, xmlNodePtr node, void *font, void *vp );
extern int vj_tag_size();
@@ -334,6 +334,9 @@ sample_info *sample_skeleton_new(long startFrame, long endFrame)
#ifdef HAVE_FREETYPE
si->dict = vpn( VEVO_ANONYMOUS_PORT );
#endif
sample_cache[ si->sample_id ] = (void*) si;
return si;
}
@@ -381,10 +384,17 @@ void sample_new_simple( void *el, long start, long end )
sample_info *sample_get(int sample_id)
{
hnode_t *sample_node = hash_lookup(SampleHash, (void *) sample_id);
if(!sample_node)
if( sample_id < 0 || sample_id > SAMPLE_MAX_SAMPLES)
return NULL;
return (sample_info*) hnode_get(sample_node);
if( sample_cache[sample_id] == NULL ) {
hnode_t *sample_node = hash_lookup(SampleHash, (void *) sample_id);
if(!sample_node)
return NULL;
sample_cache[sample_id] = hnode_get(sample_node);
}
return (sample_info*) sample_cache[sample_id];
}
/****************************************************************************************************
@@ -923,6 +933,8 @@ int sample_del(int sample_id)
next_avail_num++;
hash_delete_free(SampleHash, sample_node);
sample_cache[ sample_id ] = NULL;
return 1;
}

View File

@@ -72,6 +72,8 @@ static int video_driver_ = -1; // V4lUtils
//forward decl
static int no_v4l2_threads_ = 0;
static void *tag_cache[SAMPLE_MAX_SAMPLES];
int _vj_tag_new_net(vj_tag *tag, int stream_nr, int w, int h,int f, char *host, int port, int p, int ty );
int _vj_tag_new_yuv4mpeg(vj_tag * tag, int stream_nr, int w, int h, float fps);
@@ -173,13 +175,16 @@ static int int_tag_compare(const void *key1, const void *key2)
vj_tag *vj_tag_get(int id)
{
if (id <= 0 || id > this_tag_id) {
return NULL;
return NULL;
}
hnode_t *tag_node = hash_lookup(TagHash, (void *) id);
if (!tag_node) {
return NULL;
if( tag_cache[ id ] == NULL ) {
hnode_t *tag_node = hash_lookup(TagHash, (void *) id);
if (!tag_node) {
return NULL;
}
tag_cache[ id ] = hnode_get(tag_node);
}
return (vj_tag *) hnode_get(tag_node);
return (vj_tag*) tag_cache[id];
}
int vj_tag_put(vj_tag * tag)
@@ -296,14 +301,12 @@ int vj_tag_init(int width, int height, int pix_fmt, int video_driver)
_temp_buffer[1] = (uint8_t*) vj_malloc(sizeof(uint8_t)*width*height);
_temp_buffer[2] = (uint8_t*) vj_malloc(sizeof(uint8_t)*width*height);
memset( tag_cache,0,sizeof(tag_cache));
memset( avail_tag, 0, sizeof(avail_tag));
_tmp.uv_width = width;
_tmp.uv_height = height/2;
_tmp.uv_len = width * (height/2);
for(i=0; i < SAMPLE_MAX_SAMPLES; i++) {
avail_tag[i] = 0;
}
#ifdef HAVE_V4L
v4lvideo_templ_init();
#endif
@@ -1136,6 +1139,9 @@ int _vj_tag_new_unicap( vj_tag * tag, int stream_nr, int width, int height, int
#ifdef HAVE_FREETYPE
tag->dict = vpn(VEVO_ANONYMOUS_PORT );
#endif
tag_cache[ tag->id ] = (void*) tag;
return (int)(tag->id);
}
@@ -1320,6 +1326,8 @@ int vj_tag_del(int id)
avail_tag[ next_avail_tag] = id;
next_avail_tag++;
tag_cache[ id ] = NULL;
return 1;
}

View File

@@ -249,3 +249,55 @@ void *vj_calloc_( size_t size )
veejay_memset(ptr,0,size);
return ptr;
}
typedef struct
{
size_t len;
void *addr;
size_t cur;
} v_simple_pool_t;
void *vj_simple_pool_init( size_t s )
{
v_simple_pool_t *pool = (v_simple_pool_t*) vj_malloc( sizeof(v_simple_pool_t) );
if(!pool)
return NULL;
void *addr = vj_calloc_( RUP8(s) );
if(!addr) {
free(pool);
return NULL;
}
pool->addr = addr;
pool->cur = 0;
pool->len = s;
return (void*) pool;
}
void *vj_simple_pool_alloc( void *ptr, size_t s )
{
v_simple_pool_t *pool = (v_simple_pool_t*) ptr;
if( s > pool->len || (pool->cur + s) > pool->len ) {
return NULL;
}
uint8_t *addr = (uint8_t*) pool->addr + RUP8(pool->cur);
pool->cur += RUP8(s);
return (void*) ( addr + pool->cur );
}
void vj_simple_pool_reset( void *ptr )
{
v_simple_pool_t *pool = (v_simple_pool_t*) ptr;
pool->cur = 0;
}
void vj_simple_pool_free( void *ptr )
{
v_simple_pool_t *pool = (v_simple_pool_t*) ptr;
if( pool ) {
if( pool->addr )
free(pool->addr);
free(pool);
}
}

View File

@@ -57,4 +57,8 @@ extern void benchmark_veejay(int w, int h);
extern void *vj_hmalloc(size_t sze, const char *name);
extern char *vj_strdup(const char *s);
extern char *vj_strndup(const char *s, size_t n );
void vj_simple_pool_free( void *ptr );
void *vj_simple_pool_alloc( void *ptr, size_t s );
void *vj_simple_pool_init( size_t s );
void vj_simple_pool_reset( void *ptr );
#endif

View File

@@ -51,6 +51,7 @@ typedef struct {
vj_message *lin_queue;
int n_queued;
int n_retrieved;
void *pool;
} vj_link;
typedef struct
@@ -62,6 +63,7 @@ typedef struct
#define VJ_MAX_PENDING_MSG 768
#define RECV_SIZE (4096)
#define MSG_POOL_SIZE (VJ_MAX_PENDING_MSG * 1000)
static void printbuf( FILE *f, uint8_t *buf , int len )
{
int i;
@@ -586,6 +588,12 @@ int _vj_server_del_client(vj_server * vje, int link_id)
Link[link_id]->promote = 0;
Link[link_id]->n_queued = 0;
Link[link_id]->n_retrieved = 0;
if( Link[link_id]->pool ) {
vj_simple_pool_free( Link[link_id]->pool );
Link[link_id]->pool = NULL;
}
return 1;
}
@@ -656,11 +664,12 @@ int _vj_server_empty_queue(vj_server *vje, int link_id)
int i;
for( i = 0; i < VJ_MAX_PENDING_MSG; i ++ )
{
if( v[i]->msg )
free(v[i]->msg);
v[i]->msg = NULL;
v[i]->len = 0;
}
vj_simple_pool_reset( Link[link_id]->pool );
Link[link_id]->n_queued = 0;
Link[link_id]->n_retrieved = 0;
@@ -762,6 +771,14 @@ static int _vj_verify_msg(vj_server *vje,int link_id, char *buf, int buf_len )
return num_msg;
}
void vj_server_init_msg_pool(vj_server *vje, int link_id )
{
vj_link **Link = (vj_link**) vje->link;
if( Link[link_id]->pool == NULL ) {
Link[link_id]->pool = vj_simple_pool_init( MSG_POOL_SIZE * sizeof(char) );
}
}
static int _vj_parse_msg(vj_server *vje,int link_id, char *buf, int buf_len )
{
int i = 0;
@@ -789,9 +806,14 @@ static int _vj_parse_msg(vj_server *vje,int link_id, char *buf, int buf_len )
str_ptr += 4;
if(netid > 0 && netid <= 600) {
v[num_msg]->msg = strndup( str_ptr, slen ); //@ '600:;'
v[num_msg]->len = slen; //@ 5
num_msg++;
v[num_msg]->msg = vj_simple_pool_alloc( Link[link_id]->pool, slen + 1 );
if( v[num_msg]->msg ) {
//v[num_msg]->msg = strndup( str_ptr, slen ); //@ '600:;'
veejay_memcpy( v[num_msg]->msg, str_ptr, slen );
v[num_msg]->len = slen; //@ 5
v[num_msg]->msg[ slen ] = '\0';
num_msg++;
}
}
if(num_msg >= VJ_MAX_PENDING_MSG )
@@ -1006,12 +1028,12 @@ void vj_server_shutdown(vj_server *vje)
{
if(Link[i]->in_use)
close(Link[i]->handle);
for( j = 0; j < VJ_MAX_PENDING_MSG; j ++ )
{
if(Link[i]->m_queue[j]->msg )
free( Link[i]->m_queue[j]->msg );
// for( j = 0; j < VJ_MAX_PENDING_MSG; j ++ )
// {
// if(Link[i]->m_queue[j]->msg )
// free( Link[i]->m_queue[j]->msg );
//if(Link[i]->m_queue[j] ) free( Link[i]->m_queue[j] );
}
// }
if( Link[i]->lin_queue)
free( Link[i]->lin_queue );

View File

@@ -79,6 +79,8 @@ void vj_server_client_promote( vj_server *vje, int link_id);
int vj_server_link_used(vj_server *vje , int link_id);
void vj_server_init_msg_pool(vj_server *vje, int link_id );
int vj_server_link_can_write( vj_server *vje, int link_id );
int vj_server_link_can_read( vj_server *vje, int link_id);

View File

@@ -1116,7 +1116,7 @@ void vj_event_parse_bundle(veejay_t *v, char *msg )
char atomic_msg[256];
int found_end_of_msg = 0;
int total_msg_len = strlen(msg);
veejay_memset( atomic_msg,0,256 );
veejay_memset( atomic_msg,0,sizeof(atomic_msg) );
while( (offset+j) < total_msg_len)
{
if(msg[offset+j] == '}')
@@ -1396,7 +1396,7 @@ static char *inline_str_to_str(int flags, char *msg)
}
else
{
char str[255];
char str[256];
veejay_memset(str,0, sizeof(str) );
if(sscanf( msg, "%s", str ) <= 0 )
return res;
@@ -1456,7 +1456,7 @@ int vj_event_parse_msg( void *ptr, char *msg, int msg_len )
return 0;
}
/* verify format */
/* verify format
if( msg[3] != 0x3a || msg[msg_len] != ';' )
{
veejay_msg(VEEJAY_MSG_ERROR, "Syntax error in VIMS message");
@@ -1471,6 +1471,7 @@ int vj_event_parse_msg( void *ptr, char *msg, int msg_len )
return 0;
}
}
*/
if ( net_id >= VIMS_BUNDLE_START && net_id < VIMS_BUNDLE_END )
{
@@ -1519,7 +1520,7 @@ int vj_event_parse_msg( void *ptr, char *msg, int msg_len )
char *str = NULL;
int fmt_offset = 1;
char *arg_str = NULL;
memset( i_args, 0, sizeof(i_args) );
veejay_memset( i_args, 0, sizeof(i_args) );
int n = 4;
if( msg[msg_len-4] == ';' )
@@ -1612,7 +1613,6 @@ int vj_event_parse_msg( void *ptr, char *msg, int msg_len )
return 0;
}
void vj_event_update_remote(void *ptr)
{
veejay_t *v = (veejay_t*)ptr;
@@ -1643,7 +1643,6 @@ void vj_event_update_remote(void *ptr)
int len =0;
while( ( buf = vj_server_retrieve_msg( v->vjs[VEEJAY_PORT_MAT], 0, buf,&len )) != NULL )
{
vj_event_parse_msg( v, buf,len );
}
}
@@ -1655,6 +1654,8 @@ void vj_event_update_remote(void *ptr)
{
if( vj_server_link_can_read( v->vjs[VEEJAY_PORT_CMD], i ) )
{
vj_server_init_msg_pool( v->vjs[VEEJAY_PORT_CMD], i ); // ensure pool is ready
int res = vj_server_update( v->vjs[VEEJAY_PORT_CMD], i );
if(res>0)
{
@@ -1671,7 +1672,6 @@ void vj_event_update_remote(void *ptr)
{
_vj_server_del_client( v->vjs[VEEJAY_PORT_CMD], i );
_vj_server_del_client( v->vjs[VEEJAY_PORT_STA], i );
// _vj_server_del_client( v->vjs[VEEJAY_PORT_DAT], i );
}
}
}
@@ -1688,6 +1688,7 @@ void vj_event_update_remote(void *ptr)
int n = 0;
int len = 0;
char *buf = NULL;
vj_server_init_msg_pool( v->vjs[VEEJAY_PORT_DAT], i ); // ensure pool is ready
while( (buf= vj_server_retrieve_msg(v->vjs[VEEJAY_PORT_DAT],i,buf, &len))!= NULL )
{
vj_event_parse_msg( v, buf,len );
@@ -1696,15 +1697,12 @@ void vj_event_update_remote(void *ptr)
} else if( res <= 0 )
{
_vj_server_del_client( v->vjs[VEEJAY_PORT_DAT], i );
// _vj_server_del_client( v->vjs[VEEJAY_PORT_CMD], i );
// _vj_server_del_client( v->vjs[VEEJAY_PORT_STA], i );
}
}
}
v->settings->is_dat = 0;
//@ repeat macros
if(macro_status_ == 2 && macro_port_ != NULL)
{
@@ -1724,14 +1722,13 @@ void vj_event_update_remote(void *ptr)
void vj_event_commit_bundle( veejay_t *v, int key_num, int key_mod)
{
char bundle[4096];
veejay_memset(bundle,0,4096);
veejay_memset(bundle,0,sizeof(bundle));
vj_event_create_effect_bundle(v, bundle, key_num, key_mod );
}
#ifdef HAVE_SDL
int vj_event_single_fire(void *ptr , SDL_Event event, int pressed)
{
SDL_KeyboardEvent *key = &event.key;
SDLMod mod = key->keysym.mod;
veejay_t *v = (veejay_t*) ptr;
@@ -1792,124 +1789,8 @@ int vj_event_single_fire(void *ptr , SDL_Event event, int pressed)
}
return 1;
}
#endif
#ifdef HAVE_GL
void vj_event_single_gl_fire(void *ptr , int mod, int key)
{
int vims_mod = 0;
#ifndef HAVE_SDL
return;
#else
switch( key )
{
case 0xff0d: key = SDLK_RETURN; break;
case 0xff1b: key = SDLK_ESCAPE; break;
case 0xffbe: key = SDLK_F1; break;
case 0xffbf: key = SDLK_F2; break;
case 0xffc0: key = SDLK_F3; break;
case 0xffc1: key = SDLK_F4; break;
case 0xffc2: key = SDLK_F5; break;
case 0xffc3: key = SDLK_F6; break;
case 0xffc4: key = SDLK_F7; break;
case 0xffc5: key = SDLK_F8; break;
case 0xffc6: key = SDLK_F9; break;
case 0xffc7: key = SDLK_F10; break;
case 0xffc8: key = SDLK_F11; break;
case 0xffc9: key = SDLK_F12; break;
case 0xff63: key = SDLK_INSERT; break;
case 0xff50: key = SDLK_HOME; break;
case 0xff55: key = SDLK_PAGEUP; break;
case 0xff56: key = SDLK_PAGEDOWN; break;
case 0xff57: key = SDLK_END; break;
case 0xffff: key = SDLK_DELETE;break;
case 0xff08: key = SDLK_BACKSPACE;break;
case 0xff52: key = SDLK_UP; break;
case 0xff53: key = SDLK_RIGHT; break;
case 0xff54: key = SDLK_DOWN; break;
case 0xff51: key = SDLK_LEFT; break;
case 0xffaa: key = SDLK_KP_MULTIPLY; break;
case 0xffb0: key = SDLK_KP0; break;
case 0xffb1: case 0xff9c: key = SDLK_KP1; break;
case 0xffb2: case 0xff99: key = SDLK_KP2; break;
case 0xffb3: case 0xff9b: key = SDLK_KP3; break;
case 0xffb4: case 0xff96: key = SDLK_KP4; break;
case 0xffb5: case 0xff9d: key = SDLK_KP5; break;
case 0xffb6: case 0xff98: key = SDLK_KP6; break;
case 0xffb7: case 0xff95: key = SDLK_KP7; break;
case 0xffb8: case 0xff97: key = SDLK_KP8; break;
case 0xffb9: case 0xff9a: key = SDLK_KP9; break;
case 0xffab: key = SDLK_KP_PLUS; break;
case 0xffad: key = SDLK_KP_MINUS; break;
case 0xff8d: key = SDLK_KP_ENTER; break;
case 0xffaf: key = SDLK_KP_DIVIDE; break;
case 0xff9e: case 0xff9f: key = SDLK_KP_PERIOD; break;
case 65507: key = SDLK_s; mod = 2; break;
default:
if( key > (256+128))
veejay_msg(VEEJAY_MSG_DEBUG, "\tUnknown key pressed %x, mod = %d", key, mod );
break;
}
switch( mod )
{
case 1:
case 17:
vims_mod = VIMS_MOD_SHIFT; break;
case 4:
case 20:
vims_mod = VIMS_MOD_CTRL; break;
case 8:
case 24:
case 144:
vims_mod = VIMS_MOD_ALT; break;
default:
veejay_msg(VEEJAY_MSG_DEBUG, "\tUnknown modifier pressed %x, mod = %d", key , mod );
break;
}
int vims_key = key;
int index = vims_mod * SDLK_LAST + vims_key;
vj_keyboard_event *ev = get_keyboard_event( index );
if(!ev )
{
veejay_msg(VEEJAY_MSG_ERROR,"Keyboard event %d unknown", index );
return;
}
// event_id is here VIMS list entry!
int event_id = ev->vims->list_id;
if( event_id >= VIMS_BUNDLE_START && event_id < VIMS_BUNDLE_END )
{
vj_msg_bundle *bun = vj_event_bundle_get(event_id );
if(!bun)
{
veejay_msg(VEEJAY_MSG_DEBUG, "Requested BUNDLE %d does not exist", event_id);
return;
}
vj_event_parse_bundle( (veejay_t*) ptr, bun->bundle );
}
else
{
char msg[100];
if( ev->arg_len > 0 )
{
sprintf(msg,"%03d:%s;", event_id, ev->arguments );
}
else
sprintf(msg,"%03d:;", event_id );
vj_event_parse_msg( (veejay_t*) ptr, msg,strlen(msg) );
}
#endif
}
#endif
void vj_event_none(void *ptr, const char format[], va_list ap)
{
veejay_msg(VEEJAY_MSG_DEBUG, "No action implemented for requested event");
@@ -2105,7 +1986,7 @@ void vj_event_xml_parse_config( veejay_t *v, xmlDocPtr doc, xmlNodePtr cur )
int c = 0;
char sample_list[1024];
veejay_memset(sample_list,0,1024);
veejay_memset(sample_list,0,sizeof(sample_list));
// todo: editlist loading ; veejay restart
while( cur != NULL )
@@ -2157,7 +2038,7 @@ void vj_event_xml_new_keyb_event( void *ptr, xmlDocPtr doc, xmlNodePtr cur )
int event_id = 0;
char msg[4096];
veejay_memset(msg,0,4096);
veejay_memset(msg,0,sizeof(msg));
while( cur != NULL )
{
@@ -2283,7 +2164,7 @@ void vj_event_format_xml_event( xmlNodePtr node, int event_id )
int key_id=0;
int key_mod=-1;
veejay_memset( buffer,0, 4096 );
veejay_memset( buffer,0, sizeof(buffer) );
if( event_id >= VIMS_BUNDLE_START && event_id < VIMS_BUNDLE_END)
{ /* its a Bundle !*/
@@ -4538,9 +4419,6 @@ void vj_event_sample_rec_start( void *ptr, const char format[], va_list ap)
return;
}
veejay_memset(tmp,0,255);
veejay_memset(prefix,0,150);
if( !v->seq->active )
{
sample_get_description(v->uc->sample_id, prefix );
@@ -6784,7 +6662,6 @@ void vj_event_el_save_editlist(void *ptr, const char format[], va_list ap)
{
veejay_t *v = (veejay_t*)ptr;
char str[1024];
veejay_memset(str,0,1024);
int args[2] = {0,0};
P_A(args,str,format,ap);
if( STREAM_PLAYING(v) || PLAIN_PLAYING(v) )
@@ -7186,9 +7063,8 @@ void vj_event_vp_stack( void *ptr, const char format[], va_list ap )
void vj_event_vp_set_points( void *ptr, const char format[], va_list ap )
{
int args[4];
int args[4] = { 0,0,0,0 };
veejay_t *v = (veejay_t*)ptr;
veejay_memset(args,0,sizeof(args));
char *str = NULL;
P_A(args,str,format,ap);
@@ -7225,16 +7101,14 @@ void vj_event_v4l_get_info(void *ptr, const char format[] , va_list ap)
if(args[0]==0) args[0] = v->uc->sample_id;
if(args[0]==-1) args[0] = vj_tag_size()-1;
char send_msg[33];
char message[30];
veejay_memset(send_msg, 0,sizeof(send_msg));
char send_msg[64];
char message[64];
sprintf( send_msg, "000" );
if(vj_tag_exists(args[0]))
{
int values[6];
memset(values,0,6*sizeof(int));
int values[6] = { 0,0,0,0,0,0 };
if(vj_tag_get_v4l_properties( args[0], &values[0], &values[1], &values[2], &values[3], &values[4]))
{
sprintf(message, "%05d%05d%05d%05d%05d%05d",
@@ -7473,7 +7347,6 @@ void vj_event_tag_set_format(void *ptr, const char format[], va_list ap)
veejay_t *v = (veejay_t*) ptr;
int args[2];
char str[255];
veejay_memset(str,0,255);
P_A(args,str,format,ap);
if(v->settings->tag_record || v->settings->offline_record)
@@ -8025,15 +7898,12 @@ void vj_event_print_tag_info(veejay_t *v, int id)
void vj_event_create_effect_bundle(veejay_t * v, char *buf, int key_id, int key_mod )
{
char blob[50 * SAMPLE_MAX_EFFECTS];
char prefix[20];
int i ,y,j;
int num_cmd = 0;
int id = v->uc->sample_id;
int event_id = 0;
int bunlen=0;
veejay_memset(prefix,0,20);
veejay_memset(blob,0,50*SAMPLE_MAX_EFFECTS );
if(!SAMPLE_PLAYING(v) && !STREAM_PLAYING(v))
{
@@ -8041,6 +7911,11 @@ void vj_event_create_effect_bundle(veejay_t * v, char *buf, int key_id, int key_
return;
}
char *blob = get_print_buf( 50 * SAMPLE_MAX_EFFECTS );
if(!blob) {
return;
}
for (i = 0; i < SAMPLE_MAX_EFFECTS; i++)
{
y = (SAMPLE_PLAYING(v) ? sample_get_effect_any(id, i) : vj_tag_get_effect_any(id,i) );
@@ -8052,6 +7927,7 @@ void vj_event_create_effect_bundle(veejay_t * v, char *buf, int key_id, int key_
if(num_cmd < 0)
{
veejay_msg(VEEJAY_MSG_ERROR, "Effect Chain is empty." );
free(blob);
return;
}
@@ -8092,6 +7968,7 @@ void vj_event_create_effect_bundle(veejay_t * v, char *buf, int key_id, int key_
if(event_id <= 0 )
{
veejay_msg(VEEJAY_MSG_ERROR, "Cannot add more bundles");
free(blob);
return;
}
@@ -8099,10 +7976,13 @@ void vj_event_create_effect_bundle(veejay_t * v, char *buf, int key_id, int key_
if(!m)
{
veejay_msg(VEEJAY_MSG_ERROR, "Unable to create new Bundle");
free(blob);
return;
}
if(!vj_event_bundle_store(m))
veejay_msg(VEEJAY_MSG_ERROR, "Error storing Bundle %d", event_id);
free(blob);
}
@@ -8295,8 +8175,6 @@ void vj_event_send_tag_list ( void *ptr, const char format[], va_list ap )
vj_tag *tag = vj_tag_get(i);
char source_name[255];
char cmd[300];
veejay_memset(source_name,0,200);veejay_memset(cmd,0,255);
veejay_memset(line,0,300);
//vj_tag_get_description( i, source_name );
vj_tag_get_source_name( i, source_name );
sprintf(line,"%05d%02d%03d%03d%03d%03d%03zu%s",
@@ -8702,8 +8580,6 @@ void vj_event_send_sample_list ( void *ptr, const char format[], va_list ap )
char description[SAMPLE_MAX_DESCR_LEN];
int end_frame = sample_get_endFrame(i);
int start_frame = sample_get_startFrame(i);
veejay_memset(cmd,0, sizeof(cmd));
/* format of sample:
00000 : id
000000000 : start
@@ -8801,7 +8677,6 @@ void vj_event_send_chain_entry ( void *ptr, const char format[], va_list ap )
int error = 1;
veejay_t *v = (veejay_t*)ptr;
P_A(args,str,format,ap);
veejay_memset(fline,0,255);
sprintf(line, "%03d", 0);
char param[1024];
@@ -8914,8 +8789,6 @@ void vj_event_send_chain_entry_parameters ( void *ptr, const char format[], va_
int error = 1;
veejay_t *v = (veejay_t*)ptr;
veejay_memset(line,0,sizeof(line));
P_A(args,str,format,ap);
sprintf(line, "%03d", 0);
@@ -9251,7 +9124,6 @@ void vj_event_send_effect_list ( void *ptr, const char format[], va_list ap )
len += vj_effect_get_summary_len( i );
priv_msg = (char*) malloc(sizeof(char) * (6 + len + 4096));
memset(priv_msg, 0, (6+len+100));
sprintf(priv_msg, "%06d", len );
char line[4096];
char fline[4096];
@@ -9386,7 +9258,6 @@ void vj_event_bundled_msg_add(void *ptr, const char format[], va_list ap)
int args[2] = {0,0};
char s[1024];
veejay_memset(s,0, 1024);
P_A(args,s,format,ap);
if(args[0] == 0)
@@ -9471,13 +9342,10 @@ void vj_event_screenshot(void *ptr, const char format[], va_list ap)
{
int args[4];
char filename[1024];
veejay_memset(filename,0,1024);
P_A(args, filename, format, ap );
veejay_t *v = (veejay_t*) ptr;
char type[5];
veejay_memset(type,0,5);
char type[5] = { 0 };
veejay_get_file_ext( filename, type, sizeof(type));
@@ -9497,7 +9365,6 @@ void vj_event_screenshot(void *ptr, const char format[], va_list ap)
{
int args[4];
char filename[1024];
veejay_memset(filename,0,1024);
P_A(args, filename, format, ap );
veejay_t *v = (veejay_t*) ptr;
@@ -9595,9 +9462,6 @@ void vj_event_send_sample_options ( void *ptr, const char format[], va_list ap )
id = args[0];
char options[100];
char prefix[4];
veejay_memset(prefix,0, 4 );
veejay_memset(options, 0,100);
char *s_print_buf = get_print_buf(128);
@@ -9737,8 +9601,8 @@ void vj_event_set_shm_status( void *ptr, const char format[], va_list ap )
void vj_event_get_shm( void *ptr, const char format[], va_list ap )
{
veejay_t *v = (veejay_t*)ptr;
char tmp[64];
memset(tmp,0,sizeof(tmp));
char tmp[32];
veejay_memset(tmp,0,sizeof(tmp));
if(!v->shm) {
snprintf(tmp,sizeof(tmp)-1,"%016d",0);
SEND_MSG(v, tmp );
@@ -10098,7 +9962,6 @@ void vj_event_add_subtitle( void *ptr, const char format[], va_list ap )
return;
}
veejay_memset(text,0,2048);
P_A(args,text,format,ap);
void *dict = select_dict( v, v->uc->sample_id );

View File

@@ -522,19 +522,17 @@ static int vj_perform_increase_sample_frame(veejay_t * info, long num)
static long vj_perform_alloc_row(veejay_t *info, int c, int plane_len)
{
const long frame_len = RUP8( ((plane_len+helper_frame->width)/7)*8 );
uint8_t *buf;
if(fx_chain_buffer!=NULL) {
buf = fx_chain_buffer + (c * frame_len * 3 * 3);
}
else {
buf = vj_malloc(sizeof(uint8_t) * frame_len * 3 * 3);
mlock( buf, frame_len * 3 * sizeof(uint8_t));
}
if( fx_chain_buffer )
return;
size_t frame_len = RUP8( ((plane_len+helper_frame->width)/7)*8 );
uint8_t *buf = vj_malloc(sizeof(uint8_t) * frame_len * 3 * 3);
if(!buf)
return 0;
mlock( buf, frame_len * 3 * 3 * sizeof(uint8_t));
frame_buffer[c]->Y = buf;
frame_buffer[c]->Cb = frame_buffer[c]->Y + frame_len;
frame_buffer[c]->Cr = frame_buffer[c]->Cb + frame_len;
@@ -545,14 +543,15 @@ static long vj_perform_alloc_row(veejay_t *info, int c, int plane_len)
static void vj_perform_free_row(int c)
{
const long frame_len = RUP8( (((helper_frame->len)+helper_frame->width)/7)*8 );
if( fx_chain_buffer )
return;
size_t frame_len = RUP8( (((helper_frame->len)+helper_frame->width)/7)*8 );
if(frame_buffer[c]->Y)
{
if(fx_chain_buffer == NULL ) {
munlock( frame_buffer[c]->Y, frame_len * 3 * 3 );
free( frame_buffer[c]->Y );
}
munlock( frame_buffer[c]->Y, frame_len * 3 * 3 * sizeof(uint8_t));
free( frame_buffer[c]->Y );
}
frame_buffer[c]->Y = NULL;
frame_buffer[c]->Cb = NULL;
@@ -564,12 +563,14 @@ static void vj_perform_free_row(int c)
}
#define vj_perform_row_used(c) ( frame_buffer[c]->Y == NULL ? 0 : 1 )
static int vj_perform_verify_rows(veejay_t *info )
{
if( pvar_.fx_status == 0 )
return 0;
if( fx_chain_buffer )
return 1;
int c,v,has_rows = 0;
const int w = info->video_output_width;
const int h = info->video_output_height;
@@ -724,15 +725,6 @@ int vj_perform_init(veejay_t * info)
total_used += buf_len; //temp_buffer
total_used += buf_len; //feedback_buffer
/* allocate space for frame_buffer pointers */
for (c = 0; c < SAMPLE_MAX_EFFECTS; c++) {
frame_buffer[c] = (ycbcr_frame *)
vj_calloc(sizeof(ycbcr_frame));
if(!frame_buffer[c]) return 0;
}
vj_perform_clear_cache();
veejay_memset( frame_info[0],0,SAMPLE_MAX_EFFECTS);
helper_frame = (VJFrame*) vj_malloc(sizeof(VJFrame));
veejay_memcpy(helper_frame, info->effect_frame1, sizeof(VJFrame));
@@ -754,6 +746,25 @@ int vj_perform_init(veejay_t * info)
*/
}
/* allocate space for frame_buffer pointers */
for (c = 0; c < SAMPLE_MAX_EFFECTS; c++) {
frame_buffer[c] = (ycbcr_frame *)
vj_calloc(sizeof(ycbcr_frame));
if(!frame_buffer[c]) return 0;
if(fx_chain_buffer != NULL ) {
uint8_t *ptr = fx_chain_buffer + (c * frame_len * 3 * 3 );
frame_buffer[c]->Y = ptr;
frame_buffer[c]->Cb = frame_buffer[c]->Y + frame_len;
frame_buffer[c]->Cr = frame_buffer[c]->Cb + frame_len;
frame_buffer[c]->P0 = ptr + (frame_len * 3);
frame_buffer[c]->P1 = frame_buffer[c]->P0 + (frame_len*3);
}
}
vj_perform_clear_cache();
veejay_memset( frame_info[0],0,SAMPLE_MAX_EFFECTS);
veejay_msg(VEEJAY_MSG_INFO,
"Using %.2f MB RAM in performer (memory %s paged to the swap area, %.2f MB pre-allocated for fx-chain)",
((float)total_used/1048576.0f),
@@ -3421,7 +3432,7 @@ int vj_perform_queue_video_frame(veejay_t *info, const int skip_incr)
cached_sample_frames[0] = info->uc->sample_id;
if(vj_perform_verify_rows(info))
vj_perform_sample_complete_buffers(info, &is444);
vj_perform_sample_complete_buffers(info, &is444);
cur_out = vj_perform_render_magic( info, info->settings );
res = 1;
@@ -3450,6 +3461,7 @@ int vj_perform_queue_video_frame(veejay_t *info, const int skip_incr)
{
if(vj_perform_verify_rows(info))
vj_perform_tag_complete_buffers(info, &is444);
cur_out = vj_perform_render_magic( info, info->settings );
}
res = 1;