/src/vlc/include/vlc_objects.h
Line | Count | Source (jump to first uncovered line) |
1 | | /***************************************************************************** |
2 | | * vlc_objects.h: vlc_object_t definition and manipulation methods |
3 | | ***************************************************************************** |
4 | | * Copyright (C) 2002-2008 VLC authors and VideoLAN |
5 | | * |
6 | | * Authors: Samuel Hocevar <sam@zoy.org> |
7 | | * |
8 | | * This program is free software; you can redistribute it and/or modify it |
9 | | * under the terms of the GNU Lesser General Public License as published by |
10 | | * the Free Software Foundation; either version 2.1 of the License, or |
11 | | * (at your option) any later version. |
12 | | * |
13 | | * This program is distributed in the hope that it will be useful, |
14 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | | * GNU Lesser General Public License for more details. |
17 | | * |
18 | | * You should have received a copy of the GNU Lesser General Public License |
19 | | * along with this program; if not, write to the Free Software Foundation, |
20 | | * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
21 | | *****************************************************************************/ |
22 | | |
23 | | #ifndef VLC_OBJECTS_H |
24 | | #define VLC_OBJECTS_H 1 |
25 | | |
26 | | #ifdef __cplusplus |
27 | | #include <new> |
28 | | extern "C" { |
29 | | #endif |
30 | | |
31 | | /** |
32 | | * \defgroup vlc_object VLC objects |
33 | | * \ingroup vlc |
34 | | * @{ |
35 | | * \file |
36 | | * Common VLC object definitions |
37 | | */ |
38 | | |
39 | | struct vlc_logger; |
40 | | struct vlc_tracer; |
41 | | struct vlc_object_internals; |
42 | | struct vlc_object_marker; |
43 | | |
44 | | /** |
45 | | * VLC object common members |
46 | | * |
47 | | * Common public properties for all VLC objects. |
48 | | * Object also have private properties maintained by the core, see |
49 | | * \ref vlc_object_internals_t |
50 | | */ |
51 | | struct vlc_object_t |
52 | | { |
53 | | struct vlc_logger *logger; |
54 | | union { |
55 | | struct vlc_object_internals *priv; |
56 | | struct vlc_object_marker *obj; |
57 | | }; |
58 | | |
59 | | bool no_interact; |
60 | | |
61 | | /** Module probe flag |
62 | | * |
63 | | * A boolean during module probing when the probe is "forced". |
64 | | * See \ref module_need(). |
65 | | */ |
66 | | bool force; |
67 | | }; |
68 | | |
69 | | #ifdef __cplusplus |
70 | | } |
71 | | #endif |
72 | | |
73 | | /** |
74 | | * Type-safe vlc_object_t cast |
75 | | * |
76 | | * This macro attempts to cast a pointer to a compound type to a |
77 | | * \ref vlc_object_t pointer in a type-safe manner. |
78 | | * It checks if the compound type actually starts with an embedded |
79 | | * \ref vlc_object_t structure. |
80 | | */ |
81 | | #if !defined(__cplusplus) |
82 | | # define VLC_OBJECT(x) \ |
83 | 1.62k | _Generic((x)->obj, \ |
84 | 1.62k | struct vlc_object_marker *: (x), \ |
85 | 1.62k | struct vlc_object_t: (&((x)->obj)) \ |
86 | 1.62k | ) |
87 | | #else |
88 | | static inline vlc_object_t *VLC_OBJECT(vlc_object_t *o) |
89 | 0 | { return o; } Unexecuted instantiation: mkv.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: util.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: virtual_segment.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: matroska_segment.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: matroska_segment_parse.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: demux.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: events.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: Ebml_parser.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: chapters.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: chapter_command.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: chapter_command_dvd.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: chapter_command_script.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: chapter_command_script_common.cpp:VLC_OBJECT(vlc_object_t*) Unexecuted instantiation: stream_io_callback.cpp:VLC_OBJECT(vlc_object_t*) |
90 | | |
91 | | template<typename T> |
92 | | static inline vlc_object_t *VLC_OBJECT(T *d) |
93 | 0 | { return &d->obj; } Unexecuted instantiation: mkv.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: util.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: demux.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: events.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_object_t* VLC_OBJECT<stream_t>(stream_t*) |
94 | | #endif |
95 | | |
96 | | #ifdef __cplusplus |
97 | | extern "C" { |
98 | | #endif |
99 | | |
100 | | /* The root object */ |
101 | | struct libvlc_int_t |
102 | | { |
103 | | struct vlc_object_t obj; |
104 | | }; |
105 | | |
106 | | /** |
107 | | * Allocates and initializes a vlc object. |
108 | | * |
109 | | * The object will need to be released with ::vlc_object_release() |
110 | | * before \p parent is released. |
111 | | * |
112 | | * @param parent A parent object to create the new object from |
113 | | * @param i_size object byte size |
114 | | * |
115 | | * @return the new object, or NULL on error. |
116 | | */ |
117 | | VLC_API void *vlc_object_create(vlc_object_t *parent, size_t i_size) VLC_MALLOC VLC_USED; |
118 | | |
119 | | /** |
120 | | * Drops the strong reference to an object. |
121 | | * |
122 | | * This removes the initial strong reference to a given object. This must be |
123 | | * called exactly once per allocated object after it is no longer needed, |
124 | | * matching vlc_object_create() or vlc_custom_create(). |
125 | | */ |
126 | | VLC_API void vlc_object_delete(vlc_object_t *obj); |
127 | 8 | #define vlc_object_delete(obj) vlc_object_delete(VLC_OBJECT(obj)) |
128 | | |
129 | | VLC_API size_t vlc_list_children(vlc_object_t *, vlc_object_t **, size_t) VLC_USED; |
130 | | |
131 | | /** |
132 | | * Returns the object type name. |
133 | | * |
134 | | * This returns a nul-terminated string identifying the object type. |
135 | | * The string is valid for at least as long as the object reference. |
136 | | * |
137 | | * \param obj object whose type name to get |
138 | | */ |
139 | | VLC_API const char *vlc_object_typename(const vlc_object_t *obj) VLC_USED; |
140 | | |
141 | | /** |
142 | | * Gets the parent of an object. |
143 | | * |
144 | | * \return the parent object (NULL if none) |
145 | | * |
146 | | * \note The returned parent object pointer is valid as long as the child is. |
147 | | */ |
148 | | VLC_API vlc_object_t *vlc_object_parent(vlc_object_t *obj) VLC_USED; |
149 | 486 | #define vlc_object_parent(o) vlc_object_parent(VLC_OBJECT(o)) |
150 | | |
151 | | static inline struct vlc_logger *vlc_object_logger(vlc_object_t *obj) |
152 | 5 | { |
153 | 5 | return obj->logger; |
154 | 5 | } Unexecuted instantiation: demux-run.c:vlc_object_logger Unexecuted instantiation: common.c:vlc_object_logger Unexecuted instantiation: var.c:vlc_object_logger Unexecuted instantiation: decoder.c:vlc_object_logger Unexecuted instantiation: core.c:vlc_object_logger Unexecuted instantiation: error.c:vlc_object_logger Unexecuted instantiation: console.c:vlc_object_logger Unexecuted instantiation: aiff.c:vlc_object_logger Unexecuted instantiation: asf.c:vlc_object_logger Unexecuted instantiation: libasf.c:vlc_object_logger Unexecuted instantiation: asfpacket.c:vlc_object_logger Unexecuted instantiation: au.c:vlc_object_logger Unexecuted instantiation: avi.c:vlc_object_logger Unexecuted instantiation: libavi.c:vlc_object_logger Unexecuted instantiation: caf.c:vlc_object_logger Unexecuted instantiation: cdg.c:vlc_object_logger Unexecuted instantiation: es.c:vlc_object_logger Unexecuted instantiation: dts_header.c:vlc_object_logger Unexecuted instantiation: flac.c:vlc_object_logger Unexecuted instantiation: xiph_metadata.c:vlc_object_logger Unexecuted instantiation: h26x.c:vlc_object_logger Unexecuted instantiation: mjpeg.c:vlc_object_logger Unexecuted instantiation: mp4.c:vlc_object_logger Unexecuted instantiation: fragments.c:vlc_object_logger Unexecuted instantiation: attachments.c:vlc_object_logger Unexecuted instantiation: heif.c:vlc_object_logger Unexecuted instantiation: essetup.c:vlc_object_logger Unexecuted instantiation: meta.c:vlc_object_logger Unexecuted instantiation: libmp4.c:vlc_object_logger Unexecuted instantiation: nsv.c:vlc_object_logger Unexecuted instantiation: ps.c:vlc_object_logger Unexecuted instantiation: pva.c:vlc_object_logger Unexecuted instantiation: sap.c:vlc_object_logger Unexecuted instantiation: sdp.c:vlc_object_logger Unexecuted instantiation: smf.c:vlc_object_logger Unexecuted instantiation: subtitle.c:vlc_object_logger Unexecuted instantiation: tta.c:vlc_object_logger Unexecuted instantiation: ttml.c:vlc_object_logger Unexecuted instantiation: encttml.c:vlc_object_logger Unexecuted instantiation: substtml.c:vlc_object_logger Unexecuted instantiation: genttml.c:vlc_object_logger Unexecuted instantiation: ty.c:vlc_object_logger Unexecuted instantiation: voc.c:vlc_object_logger Unexecuted instantiation: wav.c:vlc_object_logger Unexecuted instantiation: webvtt.c:vlc_object_logger Unexecuted instantiation: encvtt.c:vlc_object_logger Unexecuted instantiation: subsvtt.c:vlc_object_logger Unexecuted instantiation: css_parser.c:vlc_object_logger Unexecuted instantiation: css_style.c:vlc_object_logger Unexecuted instantiation: CSSGrammar.c:vlc_object_logger Unexecuted instantiation: libwebvtt_plugin_la-CSSLexer.c:vlc_object_logger Unexecuted instantiation: xa.c:vlc_object_logger Unexecuted instantiation: a52.c:vlc_object_logger Unexecuted instantiation: copy.c:vlc_object_logger Unexecuted instantiation: dts.c:vlc_object_logger Unexecuted instantiation: h264.c:vlc_object_logger Unexecuted instantiation: hxxx_sei.c:vlc_object_logger Unexecuted instantiation: hxxx_common.c:vlc_object_logger Unexecuted instantiation: h264_nal.c:vlc_object_logger Unexecuted instantiation: h264_slice.c:vlc_object_logger Unexecuted instantiation: hevc.c:vlc_object_logger Unexecuted instantiation: hevc_nal.c:vlc_object_logger Unexecuted instantiation: mlp.c:vlc_object_logger Unexecuted instantiation: mpeg4audio.c:vlc_object_logger Unexecuted instantiation: mpeg4video.c:vlc_object_logger Unexecuted instantiation: mpegaudio.c:vlc_object_logger Unexecuted instantiation: mpegvideo.c:vlc_object_logger Unexecuted instantiation: vc1.c:vlc_object_logger Unexecuted instantiation: rawaud.c:vlc_object_logger Unexecuted instantiation: rawvid.c:vlc_object_logger Unexecuted instantiation: fs.c:vlc_object_logger Unexecuted instantiation: file.c:vlc_object_logger Unexecuted instantiation: directory.c:vlc_object_logger Unexecuted instantiation: libxml.c:vlc_object_logger Unexecuted instantiation: ogg.c:vlc_object_logger Unexecuted instantiation: oggseek.c:vlc_object_logger Unexecuted instantiation: ogg_granule.c:vlc_object_logger Unexecuted instantiation: mkv.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: util.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: demux.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: events.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: chapters.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: chapter_command.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: stream_io_callback.cpp:vlc_object_logger(vlc_object_t*) Unexecuted instantiation: vlc_colors.c:vlc_object_logger Unexecuted instantiation: adpcm.c:vlc_object_logger Unexecuted instantiation: aes3.c:vlc_object_logger Unexecuted instantiation: araw.c:vlc_object_logger Unexecuted instantiation: g711.c:vlc_object_logger Unexecuted instantiation: lpcm.c:vlc_object_logger Unexecuted instantiation: uleaddvaudio.c:vlc_object_logger Unexecuted instantiation: rawvideo.c:vlc_object_logger Unexecuted instantiation: cc.c:vlc_object_logger Unexecuted instantiation: cea708.c:vlc_object_logger Unexecuted instantiation: cvdsub.c:vlc_object_logger Unexecuted instantiation: dvbsub.c:vlc_object_logger Unexecuted instantiation: scte18.c:vlc_object_logger Unexecuted instantiation: atsc_a65.c:vlc_object_logger Unexecuted instantiation: scte27.c:vlc_object_logger Unexecuted instantiation: spudec.c:vlc_object_logger Unexecuted instantiation: parse.c:vlc_object_logger Unexecuted instantiation: stl.c:vlc_object_logger Unexecuted instantiation: subsdec.c:vlc_object_logger Unexecuted instantiation: subsusf.c:vlc_object_logger Unexecuted instantiation: svcdsub.c:vlc_object_logger Unexecuted instantiation: textst.c:vlc_object_logger Unexecuted instantiation: substx3g.c:vlc_object_logger Unexecuted instantiation: libvlc.c:vlc_object_logger Unexecuted instantiation: version.c:vlc_object_logger Unexecuted instantiation: chain.c:vlc_object_logger Unexecuted instantiation: help.c:vlc_object_logger Unexecuted instantiation: cmdline.c:vlc_object_logger Unexecuted instantiation: getopt.c:vlc_object_logger Unexecuted instantiation: libc.c:vlc_object_logger Unexecuted instantiation: media_source.c:vlc_object_logger Unexecuted instantiation: media_tree.c:vlc_object_logger Unexecuted instantiation: modules.c:vlc_object_logger Unexecuted instantiation: bank.c:vlc_object_logger Unexecuted instantiation: entry.c:vlc_object_logger Unexecuted instantiation: textdomain.c:vlc_object_logger Unexecuted instantiation: dialog.c:vlc_object_logger Unexecuted instantiation: interface.c:vlc_object_logger Unexecuted instantiation: content.c:vlc_object_logger Unexecuted instantiation: control.c:vlc_object_logger Unexecuted instantiation: item.c:vlc_object_logger Unexecuted instantiation: notify.c:vlc_object_logger Unexecuted instantiation: player.c:vlc_object_logger Unexecuted instantiation: playlist.c:vlc_object_logger Unexecuted instantiation: preparse.c:vlc_object_logger Unexecuted instantiation: randomizer.c:vlc_object_logger Unexecuted instantiation: preparser.c:vlc_object_logger Unexecuted instantiation: access.c:vlc_object_logger Unexecuted instantiation: decoder_device.c:vlc_object_logger Unexecuted instantiation: decoder_helpers.c:vlc_object_logger demux.c:vlc_object_logger Line | Count | Source | 152 | 1 | { | 153 | 1 | return obj->logger; | 154 | 1 | } |
Unexecuted instantiation: input.c:vlc_object_logger Unexecuted instantiation: attachment.c:vlc_object_logger Unexecuted instantiation: replay_gain.c:vlc_object_logger Unexecuted instantiation: timer.c:vlc_object_logger Unexecuted instantiation: track.c:vlc_object_logger Unexecuted instantiation: title.c:vlc_object_logger Unexecuted instantiation: aout.c:vlc_object_logger Unexecuted instantiation: vout.c:vlc_object_logger Unexecuted instantiation: osd.c:vlc_object_logger Unexecuted instantiation: medialib.c:vlc_object_logger Unexecuted instantiation: resource.c:vlc_object_logger Unexecuted instantiation: services_discovery.c:vlc_object_logger Unexecuted instantiation: source.c:vlc_object_logger Unexecuted instantiation: stats.c:vlc_object_logger Unexecuted instantiation: stream.c:vlc_object_logger Unexecuted instantiation: stream_extractor.c:vlc_object_logger Unexecuted instantiation: stream_filter.c:vlc_object_logger Unexecuted instantiation: stream_memory.c:vlc_object_logger Unexecuted instantiation: subtitles.c:vlc_object_logger Unexecuted instantiation: dec.c:vlc_object_logger Unexecuted instantiation: filters.c:vlc_object_logger Unexecuted instantiation: meter.c:vlc_object_logger Unexecuted instantiation: output.c:vlc_object_logger Unexecuted instantiation: volume.c:vlc_object_logger Unexecuted instantiation: video_output.c:vlc_object_logger Unexecuted instantiation: video_text.c:vlc_object_logger Unexecuted instantiation: video_widgets.c:vlc_object_logger Unexecuted instantiation: vout_subpictures.c:vlc_object_logger Unexecuted instantiation: video_window.c:vlc_object_logger Unexecuted instantiation: window.c:vlc_object_logger Unexecuted instantiation: vout_intf.c:vlc_object_logger Unexecuted instantiation: vout_wrapper.c:vlc_object_logger Unexecuted instantiation: udp.c:vlc_object_logger Unexecuted instantiation: charset.c:vlc_object_logger Unexecuted instantiation: memstream.c:vlc_object_logger Unexecuted instantiation: strings.c:vlc_object_logger Unexecuted instantiation: unicode.c:vlc_object_logger Unexecuted instantiation: url.c:vlc_object_logger Unexecuted instantiation: filesystem.c:vlc_object_logger Unexecuted instantiation: actions.c:vlc_object_logger Unexecuted instantiation: ancillary.c:vlc_object_logger Unexecuted instantiation: executor.c:vlc_object_logger Unexecuted instantiation: md5.c:vlc_object_logger Unexecuted instantiation: probe.c:vlc_object_logger Unexecuted instantiation: mtime.c:vlc_object_logger Unexecuted instantiation: frame.c:vlc_object_logger Unexecuted instantiation: fifo.c:vlc_object_logger Unexecuted instantiation: fourcc.c:vlc_object_logger Unexecuted instantiation: es_format.c:vlc_object_logger Unexecuted instantiation: picture.c:vlc_object_logger Unexecuted instantiation: picture_fifo.c:vlc_object_logger Unexecuted instantiation: picture_pool.c:vlc_object_logger Unexecuted instantiation: interrupt.c:vlc_object_logger Unexecuted instantiation: keystore.c:vlc_object_logger Unexecuted instantiation: rcu.c:vlc_object_logger Unexecuted instantiation: renderer_discovery.c:vlc_object_logger Unexecuted instantiation: threads.c:vlc_object_logger Unexecuted instantiation: cpu.c:vlc_object_logger Unexecuted instantiation: epg.c:vlc_object_logger Unexecuted instantiation: exit.c:vlc_object_logger Unexecuted instantiation: image.c:vlc_object_logger messages.c:vlc_object_logger Line | Count | Source | 152 | 2 | { | 153 | 2 | return obj->logger; | 154 | 2 | } |
tracer.c:vlc_object_logger Line | Count | Source | 152 | 2 | { | 153 | 2 | return obj->logger; | 154 | 2 | } |
Unexecuted instantiation: objects.c:vlc_object_logger Unexecuted instantiation: objres.c:vlc_object_logger Unexecuted instantiation: queue.c:vlc_object_logger Unexecuted instantiation: variables.c:vlc_object_logger Unexecuted instantiation: xml.c:vlc_object_logger Unexecuted instantiation: filter.c:vlc_object_logger Unexecuted instantiation: filter_chain.c:vlc_object_logger Unexecuted instantiation: httpcookies.c:vlc_object_logger Unexecuted instantiation: text_style.c:vlc_object_logger Unexecuted instantiation: sort.c:vlc_object_logger Unexecuted instantiation: subpicture.c:vlc_object_logger Unexecuted instantiation: medialibrary.c:vlc_object_logger Unexecuted instantiation: viewpoint.c:vlc_object_logger Unexecuted instantiation: thread.c:vlc_object_logger Unexecuted instantiation: rand.c:vlc_object_logger Unexecuted instantiation: specific.c:vlc_object_logger Unexecuted instantiation: stream_output.c:vlc_object_logger Unexecuted instantiation: vlm.c:vlc_object_logger Unexecuted instantiation: vlm_event.c:vlc_object_logger Unexecuted instantiation: vlmshell.c:vlc_object_logger Unexecuted instantiation: libvlc-module.c:vlc_object_logger Unexecuted instantiation: dirs.c:vlc_object_logger Unexecuted instantiation: art.c:vlc_object_logger Unexecuted instantiation: fetcher.c:vlc_object_logger Unexecuted instantiation: clock.c:vlc_object_logger Unexecuted instantiation: es_out.c:vlc_object_logger Unexecuted instantiation: es_out_source.c:vlc_object_logger Unexecuted instantiation: es_out_timeshift.c:vlc_object_logger Unexecuted instantiation: display.c:vlc_object_logger Unexecuted instantiation: inhibit.c:vlc_object_logger Unexecuted instantiation: interlacing.c:vlc_object_logger Unexecuted instantiation: snapshot.c:vlc_object_logger Unexecuted instantiation: getaddrinfo.c:vlc_object_logger Unexecuted instantiation: io.c:vlc_object_logger Unexecuted instantiation: iso_lang.c:vlc_object_logger Unexecuted instantiation: chroma_probe.c:vlc_object_logger Unexecuted instantiation: clock_internal.c:vlc_object_logger Unexecuted instantiation: input_clock.c:vlc_object_logger |
155 | 5 | #define vlc_object_logger(o) vlc_object_logger(VLC_OBJECT(o)) |
156 | | |
157 | | /** |
158 | | * Get tracer of a vlc instance from an object. |
159 | | * |
160 | | * \return the tracer of a vlc instance from an object (NULL if none). |
161 | | */ |
162 | | VLC_API struct vlc_tracer *vlc_object_get_tracer(vlc_object_t *obj); |
163 | | |
164 | | /** |
165 | | * Tries to get the name of module bound to an object. |
166 | | * |
167 | | * \warning This function is intrinsically race-prone, as a module may be |
168 | | * bound or unbound asynchronously by another thread. |
169 | | * Do not trust the result for any purpose other than debugging/tracing. |
170 | | * |
171 | | * \return Normally, this returns a heap-allocated nul-terminated string |
172 | | * which is the name of the module. If no module are bound to the object, it |
173 | | * returns NULL. It also returns NULL on error. |
174 | | */ |
175 | | #define vlc_object_get_name(obj) var_GetString(obj, "module-name") |
176 | | |
177 | 0 | #define vlc_object_create(a,b) vlc_object_create( VLC_OBJECT(a), b ) |
178 | | |
179 | | #define vlc_object_find_name(a,b) \ |
180 | | vlc_object_find_name( VLC_OBJECT(a),b) |
181 | | |
182 | | VLC_USED |
183 | | static inline libvlc_int_t *vlc_object_instance(vlc_object_t *obj) |
184 | 0 | { |
185 | 0 | vlc_object_t *parent; |
186 | |
|
187 | 0 | do |
188 | 0 | parent = obj; |
189 | 0 | while ((obj = vlc_object_parent(obj)) != NULL); |
190 | |
|
191 | 0 | return (libvlc_int_t *)parent; |
192 | 0 | } Unexecuted instantiation: demux-run.c:vlc_object_instance Unexecuted instantiation: common.c:vlc_object_instance Unexecuted instantiation: var.c:vlc_object_instance Unexecuted instantiation: decoder.c:vlc_object_instance Unexecuted instantiation: core.c:vlc_object_instance Unexecuted instantiation: error.c:vlc_object_instance Unexecuted instantiation: console.c:vlc_object_instance Unexecuted instantiation: aiff.c:vlc_object_instance Unexecuted instantiation: asf.c:vlc_object_instance Unexecuted instantiation: libasf.c:vlc_object_instance Unexecuted instantiation: asfpacket.c:vlc_object_instance Unexecuted instantiation: au.c:vlc_object_instance Unexecuted instantiation: avi.c:vlc_object_instance Unexecuted instantiation: libavi.c:vlc_object_instance Unexecuted instantiation: caf.c:vlc_object_instance Unexecuted instantiation: cdg.c:vlc_object_instance Unexecuted instantiation: es.c:vlc_object_instance Unexecuted instantiation: dts_header.c:vlc_object_instance Unexecuted instantiation: flac.c:vlc_object_instance Unexecuted instantiation: xiph_metadata.c:vlc_object_instance Unexecuted instantiation: h26x.c:vlc_object_instance Unexecuted instantiation: mjpeg.c:vlc_object_instance Unexecuted instantiation: mp4.c:vlc_object_instance Unexecuted instantiation: fragments.c:vlc_object_instance Unexecuted instantiation: attachments.c:vlc_object_instance Unexecuted instantiation: heif.c:vlc_object_instance Unexecuted instantiation: essetup.c:vlc_object_instance Unexecuted instantiation: meta.c:vlc_object_instance Unexecuted instantiation: libmp4.c:vlc_object_instance Unexecuted instantiation: nsv.c:vlc_object_instance Unexecuted instantiation: ps.c:vlc_object_instance Unexecuted instantiation: pva.c:vlc_object_instance Unexecuted instantiation: sap.c:vlc_object_instance Unexecuted instantiation: sdp.c:vlc_object_instance Unexecuted instantiation: smf.c:vlc_object_instance Unexecuted instantiation: subtitle.c:vlc_object_instance Unexecuted instantiation: tta.c:vlc_object_instance Unexecuted instantiation: ttml.c:vlc_object_instance Unexecuted instantiation: encttml.c:vlc_object_instance Unexecuted instantiation: substtml.c:vlc_object_instance Unexecuted instantiation: genttml.c:vlc_object_instance Unexecuted instantiation: ty.c:vlc_object_instance Unexecuted instantiation: voc.c:vlc_object_instance Unexecuted instantiation: wav.c:vlc_object_instance Unexecuted instantiation: webvtt.c:vlc_object_instance Unexecuted instantiation: encvtt.c:vlc_object_instance Unexecuted instantiation: subsvtt.c:vlc_object_instance Unexecuted instantiation: css_parser.c:vlc_object_instance Unexecuted instantiation: css_style.c:vlc_object_instance Unexecuted instantiation: CSSGrammar.c:vlc_object_instance Unexecuted instantiation: libwebvtt_plugin_la-CSSLexer.c:vlc_object_instance Unexecuted instantiation: xa.c:vlc_object_instance Unexecuted instantiation: a52.c:vlc_object_instance Unexecuted instantiation: copy.c:vlc_object_instance Unexecuted instantiation: dts.c:vlc_object_instance Unexecuted instantiation: h264.c:vlc_object_instance Unexecuted instantiation: hxxx_sei.c:vlc_object_instance Unexecuted instantiation: hxxx_common.c:vlc_object_instance Unexecuted instantiation: h264_nal.c:vlc_object_instance Unexecuted instantiation: h264_slice.c:vlc_object_instance Unexecuted instantiation: hevc.c:vlc_object_instance Unexecuted instantiation: hevc_nal.c:vlc_object_instance Unexecuted instantiation: mlp.c:vlc_object_instance Unexecuted instantiation: mpeg4audio.c:vlc_object_instance Unexecuted instantiation: mpeg4video.c:vlc_object_instance Unexecuted instantiation: mpegaudio.c:vlc_object_instance Unexecuted instantiation: mpegvideo.c:vlc_object_instance Unexecuted instantiation: vc1.c:vlc_object_instance Unexecuted instantiation: rawaud.c:vlc_object_instance Unexecuted instantiation: rawvid.c:vlc_object_instance Unexecuted instantiation: fs.c:vlc_object_instance Unexecuted instantiation: file.c:vlc_object_instance Unexecuted instantiation: directory.c:vlc_object_instance Unexecuted instantiation: libxml.c:vlc_object_instance Unexecuted instantiation: ogg.c:vlc_object_instance Unexecuted instantiation: oggseek.c:vlc_object_instance Unexecuted instantiation: ogg_granule.c:vlc_object_instance Unexecuted instantiation: mkv.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: util.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: demux.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: events.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: chapters.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: chapter_command.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: stream_io_callback.cpp:vlc_object_instance(vlc_object_t*) Unexecuted instantiation: vlc_colors.c:vlc_object_instance Unexecuted instantiation: adpcm.c:vlc_object_instance Unexecuted instantiation: aes3.c:vlc_object_instance Unexecuted instantiation: araw.c:vlc_object_instance Unexecuted instantiation: g711.c:vlc_object_instance Unexecuted instantiation: lpcm.c:vlc_object_instance Unexecuted instantiation: uleaddvaudio.c:vlc_object_instance Unexecuted instantiation: rawvideo.c:vlc_object_instance Unexecuted instantiation: cc.c:vlc_object_instance Unexecuted instantiation: cea708.c:vlc_object_instance Unexecuted instantiation: cvdsub.c:vlc_object_instance Unexecuted instantiation: dvbsub.c:vlc_object_instance Unexecuted instantiation: scte18.c:vlc_object_instance Unexecuted instantiation: atsc_a65.c:vlc_object_instance Unexecuted instantiation: scte27.c:vlc_object_instance Unexecuted instantiation: spudec.c:vlc_object_instance Unexecuted instantiation: parse.c:vlc_object_instance Unexecuted instantiation: stl.c:vlc_object_instance Unexecuted instantiation: subsdec.c:vlc_object_instance Unexecuted instantiation: subsusf.c:vlc_object_instance Unexecuted instantiation: svcdsub.c:vlc_object_instance Unexecuted instantiation: textst.c:vlc_object_instance Unexecuted instantiation: substx3g.c:vlc_object_instance Unexecuted instantiation: libvlc.c:vlc_object_instance Unexecuted instantiation: version.c:vlc_object_instance Unexecuted instantiation: chain.c:vlc_object_instance Unexecuted instantiation: help.c:vlc_object_instance Unexecuted instantiation: cmdline.c:vlc_object_instance Unexecuted instantiation: getopt.c:vlc_object_instance Unexecuted instantiation: libc.c:vlc_object_instance Unexecuted instantiation: media_source.c:vlc_object_instance Unexecuted instantiation: media_tree.c:vlc_object_instance Unexecuted instantiation: modules.c:vlc_object_instance Unexecuted instantiation: bank.c:vlc_object_instance Unexecuted instantiation: entry.c:vlc_object_instance Unexecuted instantiation: textdomain.c:vlc_object_instance Unexecuted instantiation: dialog.c:vlc_object_instance Unexecuted instantiation: interface.c:vlc_object_instance Unexecuted instantiation: content.c:vlc_object_instance Unexecuted instantiation: control.c:vlc_object_instance Unexecuted instantiation: item.c:vlc_object_instance Unexecuted instantiation: notify.c:vlc_object_instance Unexecuted instantiation: player.c:vlc_object_instance Unexecuted instantiation: playlist.c:vlc_object_instance Unexecuted instantiation: preparse.c:vlc_object_instance Unexecuted instantiation: randomizer.c:vlc_object_instance Unexecuted instantiation: preparser.c:vlc_object_instance Unexecuted instantiation: access.c:vlc_object_instance Unexecuted instantiation: decoder_device.c:vlc_object_instance Unexecuted instantiation: decoder_helpers.c:vlc_object_instance Unexecuted instantiation: demux.c:vlc_object_instance Unexecuted instantiation: input.c:vlc_object_instance Unexecuted instantiation: attachment.c:vlc_object_instance Unexecuted instantiation: replay_gain.c:vlc_object_instance Unexecuted instantiation: timer.c:vlc_object_instance Unexecuted instantiation: track.c:vlc_object_instance Unexecuted instantiation: title.c:vlc_object_instance Unexecuted instantiation: aout.c:vlc_object_instance Unexecuted instantiation: vout.c:vlc_object_instance Unexecuted instantiation: osd.c:vlc_object_instance Unexecuted instantiation: medialib.c:vlc_object_instance Unexecuted instantiation: resource.c:vlc_object_instance Unexecuted instantiation: services_discovery.c:vlc_object_instance Unexecuted instantiation: source.c:vlc_object_instance Unexecuted instantiation: stats.c:vlc_object_instance Unexecuted instantiation: stream.c:vlc_object_instance Unexecuted instantiation: stream_extractor.c:vlc_object_instance Unexecuted instantiation: stream_filter.c:vlc_object_instance Unexecuted instantiation: stream_memory.c:vlc_object_instance Unexecuted instantiation: subtitles.c:vlc_object_instance Unexecuted instantiation: dec.c:vlc_object_instance Unexecuted instantiation: filters.c:vlc_object_instance Unexecuted instantiation: meter.c:vlc_object_instance Unexecuted instantiation: output.c:vlc_object_instance Unexecuted instantiation: volume.c:vlc_object_instance Unexecuted instantiation: video_output.c:vlc_object_instance Unexecuted instantiation: video_text.c:vlc_object_instance Unexecuted instantiation: video_widgets.c:vlc_object_instance Unexecuted instantiation: vout_subpictures.c:vlc_object_instance Unexecuted instantiation: video_window.c:vlc_object_instance Unexecuted instantiation: window.c:vlc_object_instance Unexecuted instantiation: vout_intf.c:vlc_object_instance Unexecuted instantiation: vout_wrapper.c:vlc_object_instance Unexecuted instantiation: udp.c:vlc_object_instance Unexecuted instantiation: charset.c:vlc_object_instance Unexecuted instantiation: memstream.c:vlc_object_instance Unexecuted instantiation: strings.c:vlc_object_instance Unexecuted instantiation: unicode.c:vlc_object_instance Unexecuted instantiation: url.c:vlc_object_instance Unexecuted instantiation: filesystem.c:vlc_object_instance Unexecuted instantiation: actions.c:vlc_object_instance Unexecuted instantiation: ancillary.c:vlc_object_instance Unexecuted instantiation: executor.c:vlc_object_instance Unexecuted instantiation: md5.c:vlc_object_instance Unexecuted instantiation: probe.c:vlc_object_instance Unexecuted instantiation: mtime.c:vlc_object_instance Unexecuted instantiation: frame.c:vlc_object_instance Unexecuted instantiation: fifo.c:vlc_object_instance Unexecuted instantiation: fourcc.c:vlc_object_instance Unexecuted instantiation: es_format.c:vlc_object_instance Unexecuted instantiation: picture.c:vlc_object_instance Unexecuted instantiation: picture_fifo.c:vlc_object_instance Unexecuted instantiation: picture_pool.c:vlc_object_instance Unexecuted instantiation: interrupt.c:vlc_object_instance Unexecuted instantiation: keystore.c:vlc_object_instance Unexecuted instantiation: rcu.c:vlc_object_instance Unexecuted instantiation: renderer_discovery.c:vlc_object_instance Unexecuted instantiation: threads.c:vlc_object_instance Unexecuted instantiation: cpu.c:vlc_object_instance Unexecuted instantiation: epg.c:vlc_object_instance Unexecuted instantiation: exit.c:vlc_object_instance Unexecuted instantiation: image.c:vlc_object_instance Unexecuted instantiation: messages.c:vlc_object_instance Unexecuted instantiation: tracer.c:vlc_object_instance Unexecuted instantiation: objects.c:vlc_object_instance Unexecuted instantiation: objres.c:vlc_object_instance Unexecuted instantiation: queue.c:vlc_object_instance Unexecuted instantiation: variables.c:vlc_object_instance Unexecuted instantiation: xml.c:vlc_object_instance Unexecuted instantiation: filter.c:vlc_object_instance Unexecuted instantiation: filter_chain.c:vlc_object_instance Unexecuted instantiation: httpcookies.c:vlc_object_instance Unexecuted instantiation: text_style.c:vlc_object_instance Unexecuted instantiation: sort.c:vlc_object_instance Unexecuted instantiation: subpicture.c:vlc_object_instance Unexecuted instantiation: medialibrary.c:vlc_object_instance Unexecuted instantiation: viewpoint.c:vlc_object_instance Unexecuted instantiation: thread.c:vlc_object_instance Unexecuted instantiation: rand.c:vlc_object_instance Unexecuted instantiation: specific.c:vlc_object_instance Unexecuted instantiation: stream_output.c:vlc_object_instance Unexecuted instantiation: vlm.c:vlc_object_instance Unexecuted instantiation: vlm_event.c:vlc_object_instance Unexecuted instantiation: vlmshell.c:vlc_object_instance Unexecuted instantiation: libvlc-module.c:vlc_object_instance Unexecuted instantiation: dirs.c:vlc_object_instance Unexecuted instantiation: art.c:vlc_object_instance Unexecuted instantiation: fetcher.c:vlc_object_instance Unexecuted instantiation: clock.c:vlc_object_instance Unexecuted instantiation: es_out.c:vlc_object_instance Unexecuted instantiation: es_out_source.c:vlc_object_instance Unexecuted instantiation: es_out_timeshift.c:vlc_object_instance Unexecuted instantiation: display.c:vlc_object_instance Unexecuted instantiation: inhibit.c:vlc_object_instance Unexecuted instantiation: interlacing.c:vlc_object_instance Unexecuted instantiation: snapshot.c:vlc_object_instance Unexecuted instantiation: getaddrinfo.c:vlc_object_instance Unexecuted instantiation: io.c:vlc_object_instance Unexecuted instantiation: iso_lang.c:vlc_object_instance Unexecuted instantiation: chroma_probe.c:vlc_object_instance Unexecuted instantiation: clock_internal.c:vlc_object_instance Unexecuted instantiation: input_clock.c:vlc_object_instance |
193 | 0 | #define vlc_object_instance(o) vlc_object_instance(VLC_OBJECT(o)) |
194 | | |
195 | | /* Here for backward compatibility. TODO: Move to <vlc_vout.h>! */ |
196 | | VLC_API vout_thread_t *vout_Hold(vout_thread_t *vout); |
197 | | VLC_API void vout_Release(vout_thread_t *vout); |
198 | | |
199 | | /* Here for backward compatibility. TODO: Move to <vlc_aout.h>! */ |
200 | | VLC_API audio_output_t *aout_Hold(audio_output_t *aout); |
201 | | VLC_API void aout_Release(audio_output_t *aout); |
202 | | |
203 | | /* TODO: remove vlc_object_hold/_release() for GUIs, remove this */ |
204 | | VLC_DEPRECATED static inline void *vlc_object_hold(vlc_object_t *o) |
205 | 0 | { |
206 | 0 | const char *tn = vlc_object_typename(o); |
207 | |
|
208 | 0 | if (!strcmp(tn, "audio output")) |
209 | 0 | aout_Hold((audio_output_t *)o); |
210 | 0 | if (!strcmp(tn, "video output")) |
211 | 0 | vout_Hold((vout_thread_t *)o); |
212 | 0 | return o; |
213 | 0 | } Unexecuted instantiation: demux-run.c:vlc_object_hold Unexecuted instantiation: common.c:vlc_object_hold Unexecuted instantiation: var.c:vlc_object_hold Unexecuted instantiation: decoder.c:vlc_object_hold Unexecuted instantiation: core.c:vlc_object_hold Unexecuted instantiation: error.c:vlc_object_hold Unexecuted instantiation: console.c:vlc_object_hold Unexecuted instantiation: aiff.c:vlc_object_hold Unexecuted instantiation: asf.c:vlc_object_hold Unexecuted instantiation: libasf.c:vlc_object_hold Unexecuted instantiation: asfpacket.c:vlc_object_hold Unexecuted instantiation: au.c:vlc_object_hold Unexecuted instantiation: avi.c:vlc_object_hold Unexecuted instantiation: libavi.c:vlc_object_hold Unexecuted instantiation: caf.c:vlc_object_hold Unexecuted instantiation: cdg.c:vlc_object_hold Unexecuted instantiation: es.c:vlc_object_hold Unexecuted instantiation: dts_header.c:vlc_object_hold Unexecuted instantiation: flac.c:vlc_object_hold Unexecuted instantiation: xiph_metadata.c:vlc_object_hold Unexecuted instantiation: h26x.c:vlc_object_hold Unexecuted instantiation: mjpeg.c:vlc_object_hold Unexecuted instantiation: mp4.c:vlc_object_hold Unexecuted instantiation: fragments.c:vlc_object_hold Unexecuted instantiation: attachments.c:vlc_object_hold Unexecuted instantiation: heif.c:vlc_object_hold Unexecuted instantiation: essetup.c:vlc_object_hold Unexecuted instantiation: meta.c:vlc_object_hold Unexecuted instantiation: libmp4.c:vlc_object_hold Unexecuted instantiation: nsv.c:vlc_object_hold Unexecuted instantiation: ps.c:vlc_object_hold Unexecuted instantiation: pva.c:vlc_object_hold Unexecuted instantiation: sap.c:vlc_object_hold Unexecuted instantiation: sdp.c:vlc_object_hold Unexecuted instantiation: smf.c:vlc_object_hold Unexecuted instantiation: subtitle.c:vlc_object_hold Unexecuted instantiation: tta.c:vlc_object_hold Unexecuted instantiation: ttml.c:vlc_object_hold Unexecuted instantiation: encttml.c:vlc_object_hold Unexecuted instantiation: substtml.c:vlc_object_hold Unexecuted instantiation: genttml.c:vlc_object_hold Unexecuted instantiation: ty.c:vlc_object_hold Unexecuted instantiation: voc.c:vlc_object_hold Unexecuted instantiation: wav.c:vlc_object_hold Unexecuted instantiation: webvtt.c:vlc_object_hold Unexecuted instantiation: encvtt.c:vlc_object_hold Unexecuted instantiation: subsvtt.c:vlc_object_hold Unexecuted instantiation: css_parser.c:vlc_object_hold Unexecuted instantiation: css_style.c:vlc_object_hold Unexecuted instantiation: CSSGrammar.c:vlc_object_hold Unexecuted instantiation: libwebvtt_plugin_la-CSSLexer.c:vlc_object_hold Unexecuted instantiation: xa.c:vlc_object_hold Unexecuted instantiation: a52.c:vlc_object_hold Unexecuted instantiation: copy.c:vlc_object_hold Unexecuted instantiation: dts.c:vlc_object_hold Unexecuted instantiation: h264.c:vlc_object_hold Unexecuted instantiation: hxxx_sei.c:vlc_object_hold Unexecuted instantiation: hxxx_common.c:vlc_object_hold Unexecuted instantiation: h264_nal.c:vlc_object_hold Unexecuted instantiation: h264_slice.c:vlc_object_hold Unexecuted instantiation: hevc.c:vlc_object_hold Unexecuted instantiation: hevc_nal.c:vlc_object_hold Unexecuted instantiation: mlp.c:vlc_object_hold Unexecuted instantiation: mpeg4audio.c:vlc_object_hold Unexecuted instantiation: mpeg4video.c:vlc_object_hold Unexecuted instantiation: mpegaudio.c:vlc_object_hold Unexecuted instantiation: mpegvideo.c:vlc_object_hold Unexecuted instantiation: vc1.c:vlc_object_hold Unexecuted instantiation: rawaud.c:vlc_object_hold Unexecuted instantiation: rawvid.c:vlc_object_hold Unexecuted instantiation: fs.c:vlc_object_hold Unexecuted instantiation: file.c:vlc_object_hold Unexecuted instantiation: directory.c:vlc_object_hold Unexecuted instantiation: libxml.c:vlc_object_hold Unexecuted instantiation: ogg.c:vlc_object_hold Unexecuted instantiation: oggseek.c:vlc_object_hold Unexecuted instantiation: ogg_granule.c:vlc_object_hold Unexecuted instantiation: mkv.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: util.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: demux.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: events.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: chapters.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: chapter_command.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: stream_io_callback.cpp:vlc_object_hold(vlc_object_t*) Unexecuted instantiation: vlc_colors.c:vlc_object_hold Unexecuted instantiation: adpcm.c:vlc_object_hold Unexecuted instantiation: aes3.c:vlc_object_hold Unexecuted instantiation: araw.c:vlc_object_hold Unexecuted instantiation: g711.c:vlc_object_hold Unexecuted instantiation: lpcm.c:vlc_object_hold Unexecuted instantiation: uleaddvaudio.c:vlc_object_hold Unexecuted instantiation: rawvideo.c:vlc_object_hold Unexecuted instantiation: cc.c:vlc_object_hold Unexecuted instantiation: cea708.c:vlc_object_hold Unexecuted instantiation: cvdsub.c:vlc_object_hold Unexecuted instantiation: dvbsub.c:vlc_object_hold Unexecuted instantiation: scte18.c:vlc_object_hold Unexecuted instantiation: atsc_a65.c:vlc_object_hold Unexecuted instantiation: scte27.c:vlc_object_hold Unexecuted instantiation: spudec.c:vlc_object_hold Unexecuted instantiation: parse.c:vlc_object_hold Unexecuted instantiation: stl.c:vlc_object_hold Unexecuted instantiation: subsdec.c:vlc_object_hold Unexecuted instantiation: subsusf.c:vlc_object_hold Unexecuted instantiation: svcdsub.c:vlc_object_hold Unexecuted instantiation: textst.c:vlc_object_hold Unexecuted instantiation: substx3g.c:vlc_object_hold Unexecuted instantiation: libvlc.c:vlc_object_hold Unexecuted instantiation: version.c:vlc_object_hold Unexecuted instantiation: chain.c:vlc_object_hold Unexecuted instantiation: help.c:vlc_object_hold Unexecuted instantiation: cmdline.c:vlc_object_hold Unexecuted instantiation: getopt.c:vlc_object_hold Unexecuted instantiation: libc.c:vlc_object_hold Unexecuted instantiation: media_source.c:vlc_object_hold Unexecuted instantiation: media_tree.c:vlc_object_hold Unexecuted instantiation: modules.c:vlc_object_hold Unexecuted instantiation: bank.c:vlc_object_hold Unexecuted instantiation: entry.c:vlc_object_hold Unexecuted instantiation: textdomain.c:vlc_object_hold Unexecuted instantiation: dialog.c:vlc_object_hold Unexecuted instantiation: interface.c:vlc_object_hold Unexecuted instantiation: content.c:vlc_object_hold Unexecuted instantiation: control.c:vlc_object_hold Unexecuted instantiation: item.c:vlc_object_hold Unexecuted instantiation: notify.c:vlc_object_hold Unexecuted instantiation: player.c:vlc_object_hold Unexecuted instantiation: playlist.c:vlc_object_hold Unexecuted instantiation: preparse.c:vlc_object_hold Unexecuted instantiation: randomizer.c:vlc_object_hold Unexecuted instantiation: preparser.c:vlc_object_hold Unexecuted instantiation: access.c:vlc_object_hold Unexecuted instantiation: decoder_device.c:vlc_object_hold Unexecuted instantiation: decoder_helpers.c:vlc_object_hold Unexecuted instantiation: demux.c:vlc_object_hold Unexecuted instantiation: input.c:vlc_object_hold Unexecuted instantiation: attachment.c:vlc_object_hold Unexecuted instantiation: replay_gain.c:vlc_object_hold Unexecuted instantiation: timer.c:vlc_object_hold Unexecuted instantiation: track.c:vlc_object_hold Unexecuted instantiation: title.c:vlc_object_hold Unexecuted instantiation: aout.c:vlc_object_hold Unexecuted instantiation: vout.c:vlc_object_hold Unexecuted instantiation: osd.c:vlc_object_hold Unexecuted instantiation: medialib.c:vlc_object_hold Unexecuted instantiation: resource.c:vlc_object_hold Unexecuted instantiation: services_discovery.c:vlc_object_hold Unexecuted instantiation: source.c:vlc_object_hold Unexecuted instantiation: stats.c:vlc_object_hold Unexecuted instantiation: stream.c:vlc_object_hold Unexecuted instantiation: stream_extractor.c:vlc_object_hold Unexecuted instantiation: stream_filter.c:vlc_object_hold Unexecuted instantiation: stream_memory.c:vlc_object_hold Unexecuted instantiation: subtitles.c:vlc_object_hold Unexecuted instantiation: dec.c:vlc_object_hold Unexecuted instantiation: filters.c:vlc_object_hold Unexecuted instantiation: meter.c:vlc_object_hold Unexecuted instantiation: output.c:vlc_object_hold Unexecuted instantiation: volume.c:vlc_object_hold Unexecuted instantiation: video_output.c:vlc_object_hold Unexecuted instantiation: video_text.c:vlc_object_hold Unexecuted instantiation: video_widgets.c:vlc_object_hold Unexecuted instantiation: vout_subpictures.c:vlc_object_hold Unexecuted instantiation: video_window.c:vlc_object_hold Unexecuted instantiation: window.c:vlc_object_hold Unexecuted instantiation: vout_intf.c:vlc_object_hold Unexecuted instantiation: vout_wrapper.c:vlc_object_hold Unexecuted instantiation: udp.c:vlc_object_hold Unexecuted instantiation: charset.c:vlc_object_hold Unexecuted instantiation: memstream.c:vlc_object_hold Unexecuted instantiation: strings.c:vlc_object_hold Unexecuted instantiation: unicode.c:vlc_object_hold Unexecuted instantiation: url.c:vlc_object_hold Unexecuted instantiation: filesystem.c:vlc_object_hold Unexecuted instantiation: actions.c:vlc_object_hold Unexecuted instantiation: ancillary.c:vlc_object_hold Unexecuted instantiation: executor.c:vlc_object_hold Unexecuted instantiation: md5.c:vlc_object_hold Unexecuted instantiation: probe.c:vlc_object_hold Unexecuted instantiation: mtime.c:vlc_object_hold Unexecuted instantiation: frame.c:vlc_object_hold Unexecuted instantiation: fifo.c:vlc_object_hold Unexecuted instantiation: fourcc.c:vlc_object_hold Unexecuted instantiation: es_format.c:vlc_object_hold Unexecuted instantiation: picture.c:vlc_object_hold Unexecuted instantiation: picture_fifo.c:vlc_object_hold Unexecuted instantiation: picture_pool.c:vlc_object_hold Unexecuted instantiation: interrupt.c:vlc_object_hold Unexecuted instantiation: keystore.c:vlc_object_hold Unexecuted instantiation: rcu.c:vlc_object_hold Unexecuted instantiation: renderer_discovery.c:vlc_object_hold Unexecuted instantiation: threads.c:vlc_object_hold Unexecuted instantiation: cpu.c:vlc_object_hold Unexecuted instantiation: epg.c:vlc_object_hold Unexecuted instantiation: exit.c:vlc_object_hold Unexecuted instantiation: image.c:vlc_object_hold Unexecuted instantiation: messages.c:vlc_object_hold Unexecuted instantiation: tracer.c:vlc_object_hold Unexecuted instantiation: objects.c:vlc_object_hold Unexecuted instantiation: objres.c:vlc_object_hold Unexecuted instantiation: queue.c:vlc_object_hold Unexecuted instantiation: variables.c:vlc_object_hold Unexecuted instantiation: xml.c:vlc_object_hold Unexecuted instantiation: filter.c:vlc_object_hold Unexecuted instantiation: filter_chain.c:vlc_object_hold Unexecuted instantiation: httpcookies.c:vlc_object_hold Unexecuted instantiation: text_style.c:vlc_object_hold Unexecuted instantiation: sort.c:vlc_object_hold Unexecuted instantiation: subpicture.c:vlc_object_hold Unexecuted instantiation: medialibrary.c:vlc_object_hold Unexecuted instantiation: viewpoint.c:vlc_object_hold Unexecuted instantiation: thread.c:vlc_object_hold Unexecuted instantiation: rand.c:vlc_object_hold Unexecuted instantiation: specific.c:vlc_object_hold Unexecuted instantiation: stream_output.c:vlc_object_hold Unexecuted instantiation: vlm.c:vlc_object_hold Unexecuted instantiation: vlm_event.c:vlc_object_hold Unexecuted instantiation: vlmshell.c:vlc_object_hold Unexecuted instantiation: libvlc-module.c:vlc_object_hold Unexecuted instantiation: dirs.c:vlc_object_hold Unexecuted instantiation: art.c:vlc_object_hold Unexecuted instantiation: fetcher.c:vlc_object_hold Unexecuted instantiation: clock.c:vlc_object_hold Unexecuted instantiation: es_out.c:vlc_object_hold Unexecuted instantiation: es_out_source.c:vlc_object_hold Unexecuted instantiation: es_out_timeshift.c:vlc_object_hold Unexecuted instantiation: display.c:vlc_object_hold Unexecuted instantiation: inhibit.c:vlc_object_hold Unexecuted instantiation: interlacing.c:vlc_object_hold Unexecuted instantiation: snapshot.c:vlc_object_hold Unexecuted instantiation: getaddrinfo.c:vlc_object_hold Unexecuted instantiation: io.c:vlc_object_hold Unexecuted instantiation: iso_lang.c:vlc_object_hold Unexecuted instantiation: chroma_probe.c:vlc_object_hold Unexecuted instantiation: clock_internal.c:vlc_object_hold Unexecuted instantiation: input_clock.c:vlc_object_hold |
214 | | |
215 | | static inline void vlc_object_release(vlc_object_t *o) |
216 | 0 | { |
217 | 0 | const char *tn = vlc_object_typename(o); |
218 | 0 |
|
219 | 0 | if (!strcmp(tn, "audio output")) |
220 | 0 | aout_Release((audio_output_t *)o); |
221 | 0 | if (!strcmp(tn, "video output")) |
222 | 0 | vout_Release((vout_thread_t *)o); |
223 | 0 | } Unexecuted instantiation: demux-run.c:vlc_object_release Unexecuted instantiation: common.c:vlc_object_release Unexecuted instantiation: var.c:vlc_object_release Unexecuted instantiation: decoder.c:vlc_object_release Unexecuted instantiation: core.c:vlc_object_release Unexecuted instantiation: error.c:vlc_object_release Unexecuted instantiation: console.c:vlc_object_release Unexecuted instantiation: aiff.c:vlc_object_release Unexecuted instantiation: asf.c:vlc_object_release Unexecuted instantiation: libasf.c:vlc_object_release Unexecuted instantiation: asfpacket.c:vlc_object_release Unexecuted instantiation: au.c:vlc_object_release Unexecuted instantiation: avi.c:vlc_object_release Unexecuted instantiation: libavi.c:vlc_object_release Unexecuted instantiation: caf.c:vlc_object_release Unexecuted instantiation: cdg.c:vlc_object_release Unexecuted instantiation: es.c:vlc_object_release Unexecuted instantiation: dts_header.c:vlc_object_release Unexecuted instantiation: flac.c:vlc_object_release Unexecuted instantiation: xiph_metadata.c:vlc_object_release Unexecuted instantiation: h26x.c:vlc_object_release Unexecuted instantiation: mjpeg.c:vlc_object_release Unexecuted instantiation: mp4.c:vlc_object_release Unexecuted instantiation: fragments.c:vlc_object_release Unexecuted instantiation: attachments.c:vlc_object_release Unexecuted instantiation: heif.c:vlc_object_release Unexecuted instantiation: essetup.c:vlc_object_release Unexecuted instantiation: meta.c:vlc_object_release Unexecuted instantiation: libmp4.c:vlc_object_release Unexecuted instantiation: nsv.c:vlc_object_release Unexecuted instantiation: ps.c:vlc_object_release Unexecuted instantiation: pva.c:vlc_object_release Unexecuted instantiation: sap.c:vlc_object_release Unexecuted instantiation: sdp.c:vlc_object_release Unexecuted instantiation: smf.c:vlc_object_release Unexecuted instantiation: subtitle.c:vlc_object_release Unexecuted instantiation: tta.c:vlc_object_release Unexecuted instantiation: ttml.c:vlc_object_release Unexecuted instantiation: encttml.c:vlc_object_release Unexecuted instantiation: substtml.c:vlc_object_release Unexecuted instantiation: genttml.c:vlc_object_release Unexecuted instantiation: ty.c:vlc_object_release Unexecuted instantiation: voc.c:vlc_object_release Unexecuted instantiation: wav.c:vlc_object_release Unexecuted instantiation: webvtt.c:vlc_object_release Unexecuted instantiation: encvtt.c:vlc_object_release Unexecuted instantiation: subsvtt.c:vlc_object_release Unexecuted instantiation: css_parser.c:vlc_object_release Unexecuted instantiation: css_style.c:vlc_object_release Unexecuted instantiation: CSSGrammar.c:vlc_object_release Unexecuted instantiation: libwebvtt_plugin_la-CSSLexer.c:vlc_object_release Unexecuted instantiation: xa.c:vlc_object_release Unexecuted instantiation: a52.c:vlc_object_release Unexecuted instantiation: copy.c:vlc_object_release Unexecuted instantiation: dts.c:vlc_object_release Unexecuted instantiation: h264.c:vlc_object_release Unexecuted instantiation: hxxx_sei.c:vlc_object_release Unexecuted instantiation: hxxx_common.c:vlc_object_release Unexecuted instantiation: h264_nal.c:vlc_object_release Unexecuted instantiation: h264_slice.c:vlc_object_release Unexecuted instantiation: hevc.c:vlc_object_release Unexecuted instantiation: hevc_nal.c:vlc_object_release Unexecuted instantiation: mlp.c:vlc_object_release Unexecuted instantiation: mpeg4audio.c:vlc_object_release Unexecuted instantiation: mpeg4video.c:vlc_object_release Unexecuted instantiation: mpegaudio.c:vlc_object_release Unexecuted instantiation: mpegvideo.c:vlc_object_release Unexecuted instantiation: vc1.c:vlc_object_release Unexecuted instantiation: rawaud.c:vlc_object_release Unexecuted instantiation: rawvid.c:vlc_object_release Unexecuted instantiation: fs.c:vlc_object_release Unexecuted instantiation: file.c:vlc_object_release Unexecuted instantiation: directory.c:vlc_object_release Unexecuted instantiation: libxml.c:vlc_object_release Unexecuted instantiation: ogg.c:vlc_object_release Unexecuted instantiation: oggseek.c:vlc_object_release Unexecuted instantiation: ogg_granule.c:vlc_object_release Unexecuted instantiation: mkv.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: util.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: virtual_segment.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: matroska_segment.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: matroska_segment_parse.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: matroska_segment_seeker.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: demux.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: events.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: Ebml_parser.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: chapters.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: chapter_command.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: chapter_command_dvd.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: chapter_command_script.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: chapter_command_script_common.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: stream_io_callback.cpp:vlc_object_release(vlc_object_t*) Unexecuted instantiation: vlc_colors.c:vlc_object_release Unexecuted instantiation: adpcm.c:vlc_object_release Unexecuted instantiation: aes3.c:vlc_object_release Unexecuted instantiation: araw.c:vlc_object_release Unexecuted instantiation: g711.c:vlc_object_release Unexecuted instantiation: lpcm.c:vlc_object_release Unexecuted instantiation: uleaddvaudio.c:vlc_object_release Unexecuted instantiation: rawvideo.c:vlc_object_release Unexecuted instantiation: cc.c:vlc_object_release Unexecuted instantiation: cea708.c:vlc_object_release Unexecuted instantiation: cvdsub.c:vlc_object_release Unexecuted instantiation: dvbsub.c:vlc_object_release Unexecuted instantiation: scte18.c:vlc_object_release Unexecuted instantiation: atsc_a65.c:vlc_object_release Unexecuted instantiation: scte27.c:vlc_object_release Unexecuted instantiation: spudec.c:vlc_object_release Unexecuted instantiation: parse.c:vlc_object_release Unexecuted instantiation: stl.c:vlc_object_release Unexecuted instantiation: subsdec.c:vlc_object_release Unexecuted instantiation: subsusf.c:vlc_object_release Unexecuted instantiation: svcdsub.c:vlc_object_release Unexecuted instantiation: textst.c:vlc_object_release Unexecuted instantiation: substx3g.c:vlc_object_release Unexecuted instantiation: libvlc.c:vlc_object_release Unexecuted instantiation: version.c:vlc_object_release Unexecuted instantiation: chain.c:vlc_object_release Unexecuted instantiation: help.c:vlc_object_release Unexecuted instantiation: cmdline.c:vlc_object_release Unexecuted instantiation: getopt.c:vlc_object_release Unexecuted instantiation: libc.c:vlc_object_release Unexecuted instantiation: media_source.c:vlc_object_release Unexecuted instantiation: media_tree.c:vlc_object_release Unexecuted instantiation: modules.c:vlc_object_release Unexecuted instantiation: bank.c:vlc_object_release Unexecuted instantiation: entry.c:vlc_object_release Unexecuted instantiation: textdomain.c:vlc_object_release Unexecuted instantiation: dialog.c:vlc_object_release Unexecuted instantiation: interface.c:vlc_object_release Unexecuted instantiation: content.c:vlc_object_release Unexecuted instantiation: control.c:vlc_object_release Unexecuted instantiation: item.c:vlc_object_release Unexecuted instantiation: notify.c:vlc_object_release Unexecuted instantiation: player.c:vlc_object_release Unexecuted instantiation: playlist.c:vlc_object_release Unexecuted instantiation: preparse.c:vlc_object_release Unexecuted instantiation: randomizer.c:vlc_object_release Unexecuted instantiation: preparser.c:vlc_object_release Unexecuted instantiation: access.c:vlc_object_release Unexecuted instantiation: decoder_device.c:vlc_object_release Unexecuted instantiation: decoder_helpers.c:vlc_object_release Unexecuted instantiation: demux.c:vlc_object_release Unexecuted instantiation: input.c:vlc_object_release Unexecuted instantiation: attachment.c:vlc_object_release Unexecuted instantiation: replay_gain.c:vlc_object_release Unexecuted instantiation: timer.c:vlc_object_release Unexecuted instantiation: track.c:vlc_object_release Unexecuted instantiation: title.c:vlc_object_release Unexecuted instantiation: aout.c:vlc_object_release Unexecuted instantiation: vout.c:vlc_object_release Unexecuted instantiation: osd.c:vlc_object_release Unexecuted instantiation: medialib.c:vlc_object_release Unexecuted instantiation: resource.c:vlc_object_release Unexecuted instantiation: services_discovery.c:vlc_object_release Unexecuted instantiation: source.c:vlc_object_release Unexecuted instantiation: stats.c:vlc_object_release Unexecuted instantiation: stream.c:vlc_object_release Unexecuted instantiation: stream_extractor.c:vlc_object_release Unexecuted instantiation: stream_filter.c:vlc_object_release Unexecuted instantiation: stream_memory.c:vlc_object_release Unexecuted instantiation: subtitles.c:vlc_object_release Unexecuted instantiation: dec.c:vlc_object_release Unexecuted instantiation: filters.c:vlc_object_release Unexecuted instantiation: meter.c:vlc_object_release Unexecuted instantiation: output.c:vlc_object_release Unexecuted instantiation: volume.c:vlc_object_release Unexecuted instantiation: video_output.c:vlc_object_release Unexecuted instantiation: video_text.c:vlc_object_release Unexecuted instantiation: video_widgets.c:vlc_object_release Unexecuted instantiation: vout_subpictures.c:vlc_object_release Unexecuted instantiation: video_window.c:vlc_object_release Unexecuted instantiation: window.c:vlc_object_release Unexecuted instantiation: vout_intf.c:vlc_object_release Unexecuted instantiation: vout_wrapper.c:vlc_object_release Unexecuted instantiation: udp.c:vlc_object_release Unexecuted instantiation: charset.c:vlc_object_release Unexecuted instantiation: memstream.c:vlc_object_release Unexecuted instantiation: strings.c:vlc_object_release Unexecuted instantiation: unicode.c:vlc_object_release Unexecuted instantiation: url.c:vlc_object_release Unexecuted instantiation: filesystem.c:vlc_object_release Unexecuted instantiation: actions.c:vlc_object_release Unexecuted instantiation: ancillary.c:vlc_object_release Unexecuted instantiation: executor.c:vlc_object_release Unexecuted instantiation: md5.c:vlc_object_release Unexecuted instantiation: probe.c:vlc_object_release Unexecuted instantiation: mtime.c:vlc_object_release Unexecuted instantiation: frame.c:vlc_object_release Unexecuted instantiation: fifo.c:vlc_object_release Unexecuted instantiation: fourcc.c:vlc_object_release Unexecuted instantiation: es_format.c:vlc_object_release Unexecuted instantiation: picture.c:vlc_object_release Unexecuted instantiation: picture_fifo.c:vlc_object_release Unexecuted instantiation: picture_pool.c:vlc_object_release Unexecuted instantiation: interrupt.c:vlc_object_release Unexecuted instantiation: keystore.c:vlc_object_release Unexecuted instantiation: rcu.c:vlc_object_release Unexecuted instantiation: renderer_discovery.c:vlc_object_release Unexecuted instantiation: threads.c:vlc_object_release Unexecuted instantiation: cpu.c:vlc_object_release Unexecuted instantiation: epg.c:vlc_object_release Unexecuted instantiation: exit.c:vlc_object_release Unexecuted instantiation: image.c:vlc_object_release Unexecuted instantiation: messages.c:vlc_object_release Unexecuted instantiation: tracer.c:vlc_object_release Unexecuted instantiation: objects.c:vlc_object_release Unexecuted instantiation: objres.c:vlc_object_release Unexecuted instantiation: queue.c:vlc_object_release Unexecuted instantiation: variables.c:vlc_object_release Unexecuted instantiation: xml.c:vlc_object_release Unexecuted instantiation: filter.c:vlc_object_release Unexecuted instantiation: filter_chain.c:vlc_object_release Unexecuted instantiation: httpcookies.c:vlc_object_release Unexecuted instantiation: text_style.c:vlc_object_release Unexecuted instantiation: sort.c:vlc_object_release Unexecuted instantiation: subpicture.c:vlc_object_release Unexecuted instantiation: medialibrary.c:vlc_object_release Unexecuted instantiation: viewpoint.c:vlc_object_release Unexecuted instantiation: thread.c:vlc_object_release Unexecuted instantiation: rand.c:vlc_object_release Unexecuted instantiation: specific.c:vlc_object_release Unexecuted instantiation: stream_output.c:vlc_object_release Unexecuted instantiation: vlm.c:vlc_object_release Unexecuted instantiation: vlm_event.c:vlc_object_release Unexecuted instantiation: vlmshell.c:vlc_object_release Unexecuted instantiation: libvlc-module.c:vlc_object_release Unexecuted instantiation: dirs.c:vlc_object_release Unexecuted instantiation: art.c:vlc_object_release Unexecuted instantiation: fetcher.c:vlc_object_release Unexecuted instantiation: clock.c:vlc_object_release Unexecuted instantiation: es_out.c:vlc_object_release Unexecuted instantiation: es_out_source.c:vlc_object_release Unexecuted instantiation: es_out_timeshift.c:vlc_object_release Unexecuted instantiation: display.c:vlc_object_release Unexecuted instantiation: inhibit.c:vlc_object_release Unexecuted instantiation: interlacing.c:vlc_object_release Unexecuted instantiation: snapshot.c:vlc_object_release Unexecuted instantiation: getaddrinfo.c:vlc_object_release Unexecuted instantiation: io.c:vlc_object_release Unexecuted instantiation: iso_lang.c:vlc_object_release Unexecuted instantiation: chroma_probe.c:vlc_object_release Unexecuted instantiation: clock_internal.c:vlc_object_release Unexecuted instantiation: input_clock.c:vlc_object_release |
224 | | #define vlc_object_release(o) vlc_object_release(VLC_OBJECT(o)) |
225 | | |
226 | | /** |
227 | | * @defgroup objres Object resources |
228 | | * |
229 | | * The object resource functions tie resource allocation to an instance of |
230 | | * a module through a VLC object. |
231 | | * Such resource will be automatically freed, in first in last out order, |
232 | | * when the module instance associated with the VLC object is terminated. |
233 | | * |
234 | | * Specifically, if the module instance activation/probe function fails, the |
235 | | * resource will be freed immediately after the failure. If the activation |
236 | | * succeeds, the resource will be freed when the module instance is terminated. |
237 | | * |
238 | | * This is a convenience mechanism to save explicit clean-up function calls |
239 | | * in modules. |
240 | | * |
241 | | * @{ |
242 | | */ |
243 | | |
244 | | /** |
245 | | * Allocates memory for a module. |
246 | | * |
247 | | * This function allocates memory from the heap for a module instance. |
248 | | * The memory is uninitialized. |
249 | | * |
250 | | * @param obj VLC object to tie the memory allocation to |
251 | | * @param size byte size of the memory allocation |
252 | | * |
253 | | * @return a pointer to the allocated memory, or NULL on error (errno is set). |
254 | | */ |
255 | | VLC_API VLC_MALLOC void *vlc_obj_malloc(vlc_object_t *obj, size_t size); |
256 | 0 | #define vlc_obj_malloc(o, s) vlc_obj_malloc(VLC_OBJECT(o), s) |
257 | | |
258 | | /** |
259 | | * Allocates a zero-initialized table for a module. |
260 | | * |
261 | | * This function allocates a table from the heap for a module instance. |
262 | | * The memory is initialized to all zeroes. |
263 | | * |
264 | | * @param obj VLC object to tie the memory allocation to |
265 | | * @param nmemb number of table entries |
266 | | * @param size byte size of a table entry |
267 | | * |
268 | | * @return a pointer to the allocated memory, or NULL on error (errno is set). |
269 | | */ |
270 | | VLC_API VLC_MALLOC void *vlc_obj_calloc(vlc_object_t *obj, size_t nmemb, |
271 | | size_t size); |
272 | 0 | #define vlc_obj_calloc(o, n, s) vlc_obj_calloc(VLC_OBJECT(o), n, s) |
273 | | |
274 | | /** |
275 | | * Duplicates a string for a module. |
276 | | * |
277 | | * This function allocates a copy of a nul-terminated string for a module |
278 | | * instance. |
279 | | * |
280 | | * @param obj VLC object to tie the memory allocation to |
281 | | * @param str string to copy |
282 | | * |
283 | | * @return a pointer to the copy, or NULL on error (errno is set). |
284 | | */ |
285 | | VLC_API VLC_MALLOC char *vlc_obj_strdup(vlc_object_t *obj, const char *str); |
286 | 0 | #define vlc_obj_strdup(o, s) vlc_obj_strdup(VLC_OBJECT(o), s) |
287 | | |
288 | | /** |
289 | | * Manually frees module memory. |
290 | | * |
291 | | * This function manually frees a resource allocated with vlc_obj_malloc(), |
292 | | * vlc_obj_calloc() or vlc_obj_strdup() before the module instance is |
293 | | * terminated. This is seldom necessary. |
294 | | * |
295 | | * @param obj VLC object that the allocation was tied to |
296 | | * @param ptr pointer to the allocated resource |
297 | | */ |
298 | | VLC_API void vlc_obj_free(vlc_object_t *obj, void *ptr); |
299 | 0 | #define vlc_obj_free(o, p) vlc_obj_free(VLC_OBJECT(o), p) |
300 | | |
301 | | #ifdef __cplusplus |
302 | | } /* extern "C" */ |
303 | | |
304 | | # include <type_traits> |
305 | | |
306 | | #undef vlc_object_create |
307 | | |
308 | | template <typename O> VLC_MALLOC VLC_USED |
309 | | static inline void* vlc_object_create(O *obj, size_t size) |
310 | | { |
311 | | return vlc_object_create(VLC_OBJECT(obj), size); |
312 | | } |
313 | | |
314 | | template<typename T, typename O> VLC_MALLOC VLC_USED |
315 | | static inline T* vlc_object_create(O *obj) |
316 | | { |
317 | | static_assert(std::is_pointer<T>::value == false, "vlc_object_create can only create objects"); |
318 | | void *object = vlc_object_create(VLC_OBJECT(obj), sizeof(T)); |
319 | | if (object == nullptr) |
320 | | return nullptr; |
321 | | |
322 | | return new(object) T; |
323 | | } |
324 | | |
325 | | #undef vlc_object_delete |
326 | | template<typename O> |
327 | | static inline void vlc_object_delete(O *obj) |
328 | | { |
329 | | if (!std::is_trivially_destructible<O>::value) |
330 | | obj->~O(); |
331 | | vlc_object_delete(VLC_OBJECT(obj)); |
332 | | } |
333 | | |
334 | | #endif |
335 | | |
336 | | /** @} */ |
337 | | /** @} */ |
338 | | |
339 | | #endif |