/*****************************************************************************
* objects.c: vlc_object_t handling
*****************************************************************************
- * Copyright (C) 2002 VideoLAN
- * $Id: objects.c,v 1.40 2003/09/19 15:33:58 fenrir Exp $
+ * Copyright (C) 2004 VideoLAN
+ * $Id$
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
* Preamble
*****************************************************************************/
#include <vlc/vlc.h>
+#include <vlc/input.h>
#ifdef HAVE_STDLIB_H
# include <stdlib.h> /* realloc() */
#endif
-#include "stream_control.h"
-#include "input_ext-intf.h"
-#include "input_ext-dec.h"
-
#include "vlc_video.h"
#include "video_output.h"
+#include "vlc_spu.h"
#include "audio_output.h"
#include "aout_internal.h"
#include "vlc_playlist.h"
#include "vlc_interface.h"
+#include "vlc_codec.h"
+#include "vlc_filter.h"
+
+#include "vlc_httpd.h"
+#include "vlc_vlm.h"
+#include "vlc_vod.h"
-#include "httpd.h"
/*****************************************************************************
* Local prototypes
*****************************************************************************/
* so on, vlc_object_create will use its value for the object size.
*****************************************************************************/
-/**
+/**
* Initialize a vlc object
*
* This function allocates memory for a vlc object and initializes it. If
i_size = sizeof(intf_thread_t);
psz_type = "interface";
break;
+ case VLC_OBJECT_DIALOGS:
+ i_size = sizeof(intf_thread_t);
+ psz_type = "dialogs provider";
+ break;
case VLC_OBJECT_PLAYLIST:
i_size = sizeof(playlist_t);
psz_type = "playlist";
i_size = sizeof(input_thread_t);
psz_type = "input";
break;
+ case VLC_OBJECT_DEMUX:
+ i_size = sizeof(demux_t);
+ psz_type = "demux";
+ break;
+ case VLC_OBJECT_STREAM:
+ i_size = sizeof(stream_t);
+ psz_type = "stream";
+ break;
+ case VLC_OBJECT_ACCESS:
+ i_size = sizeof(access_t);
+ psz_type = "access";
+ break;
case VLC_OBJECT_DECODER:
i_size = sizeof(decoder_t);
psz_type = "decoder";
break;
- case VLC_OBJECT_DECODER_FIFO: /* tmp for backward compat */
- i_size = sizeof(decoder_fifo_t);
- psz_type = "decoder";
+ case VLC_OBJECT_PACKETIZER:
+ i_size = sizeof(decoder_t);
+ psz_type = "packetizer";
+ break;
+ case VLC_OBJECT_ENCODER:
+ i_size = sizeof(encoder_t);
+ psz_type = "encoder";
+ break;
+ case VLC_OBJECT_FILTER:
+ i_size = sizeof(filter_t);
+ psz_type = "filter";
break;
case VLC_OBJECT_VOUT:
i_size = sizeof(vout_thread_t);
psz_type = "video output";
break;
+ case VLC_OBJECT_SPU:
+ i_size = sizeof(spu_t);
+ psz_type = "subpicture unit";
+ break;
case VLC_OBJECT_AOUT:
i_size = sizeof(aout_instance_t);
psz_type = "audio output";
i_size = sizeof( httpd_t );
psz_type = "http daemon";
break;
+ case VLC_OBJECT_VLM:
+ i_size = sizeof( vlm_t );
+ psz_type = "vlm dameon";
+ break;
+ case VLC_OBJECT_VOD:
+ i_size = sizeof( vod_t );
+ psz_type = "vod server";
+ break;
+ case VLC_OBJECT_OPENGL:
+ i_size = sizeof( vout_thread_t );
+ psz_type = "opengl provider";
+ break;
+ case VLC_OBJECT_ANNOUNCE:
+ i_size = sizeof( announce_handler_t );
+ psz_type = "announce handler";
+ break;
default:
i_size = i_type > 0
? i_type > (int)sizeof(vlc_object_t)
else
{
p_new = malloc( i_size );
-
- if( !p_new )
- {
- return NULL;
- }
-
+ if( !p_new ) return NULL;
memset( p_new, 0, i_size );
}
p_new->b_error = VLC_FALSE;
p_new->b_dead = VLC_FALSE;
p_new->b_attached = VLC_FALSE;
+ p_new->b_force = VLC_FALSE;
p_new->i_vars = 0;
p_new->p_vars = (variable_t *)malloc( 16 * sizeof( variable_t ) );
/**
****************************************************************************
* Destroy a vlc object
- *
+ *
* This function destroys an object that has been previously allocated with
* vlc_object_create. The object's refcount must be zero and it must not be
* attached to other objects in any way.
if( p_this->i_children )
{
- msg_Err( p_this, "cannot delete object with children" );
+ msg_Err( p_this, "cannot delete object (%i, %s) with children" ,
+ p_this->i_object_id, p_this->psz_object_name );
return;
}
if( p_this->p_parent )
{
- msg_Err( p_this, "cannot delete object with a parent" );
+ msg_Err( p_this, "cannot delete object (%i, %s) with a parent",
+ p_this->i_object_id, p_this->psz_object_name );
return;
}