annotate sub/eosd.h @ 35412:2de8e26093c4

Don't unconditionally reset AudioChannels after playback. Only do so if no media opened. This will continue displaying the correct audio channel information for the file still being opened after playback.
author ib
date Thu, 29 Nov 2012 11:35:22 +0000
parents d80bbc5868de
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32460
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
1 /*
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
2 * Extended On Screen Display
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
3 * Copyright (C) 2010 Nicolas George
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
4 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
5 * This file is part of MPlayer.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
6 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
7 * MPlayer is free software; you can redistribute it and/or modify
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
10 * (at your option) any later version.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
11 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
12 * MPlayer is distributed in the hope that it will be useful,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
15 * GNU General Public License for more details.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
16 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License along
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
18 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
20 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
21
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
22 #ifndef MPLAYER_EOSD_H
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
23 #define MPLAYER_EOSD_H
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
24
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
25 #include <stdint.h>
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
26 #include "libmpcodecs/vf.h"
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
27
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
28 enum {
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
29 EOSD_CHANGED_LAYOUT = 0x1,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
30 EOSD_CHANGED_BITMAP = 0x2,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
31 };
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
32
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
33 struct mp_eosd_settings {
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
34 int w, h; ///< screen dimensions, including black borders
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
35 int srcw, srch; ///< unscaled source dimensions
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
36 int mt, mb, ml, mr; ///< borders (top, bottom, left, right)
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
37 int unscaled; ///< EOSD objects are rendered at native resolution
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
38 int changed; ///< settings have changed since last update
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
39 };
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
40
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
41 struct mp_eosd_image {
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
42 struct mp_eosd_image *next; ///< Next image, or NULL
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
43 uint8_t *bitmap; ///< 1bpp stride*h alpha buffer
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
44 void *opaque; ///< Arbitrary value for the client's use
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
45 int w, h; ///< Bitmap width, height
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
46 int stride; ///< Bitmap stride
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
47 uint32_t color; ///< Bitmap color and transparency, RGBT
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
48 /// T is the complement of A (alpha=opacity).
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
49 int dst_x, dst_y; ///< Bitmap placement inside the video frame
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
50 };
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
51
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
52 struct mp_eosd_source {
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
53
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
54 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
55 * Linked list of images element.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
56 * The client is responsible for initializing and maintaining this list.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
57 * It can alter it at any time in the main MPlayer thread.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
58 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
59 struct mp_eosd_image *images;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
60
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
61 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
62 * Pointer to the next field of the last image, or to images if the list
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
63 * is empty.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
64 * The client is not required to handle this field, but list
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
65 * manipulation functions (see below) use it.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
66 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
67 struct mp_eosd_image **images_tail;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
68
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
69 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
70 * Callback to update the images. Can be NULL.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
71 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
72 void (*update)(struct mp_eosd_source *, const struct mp_eosd_settings *,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
73 double);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
74
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
75 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
76 * Callback to uninit the source. Can be NULL.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
77 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
78 void (*uninit)(struct mp_eosd_source *);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
79
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
80 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
81 * Changed flags of the images.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
82 * The client must set it to a combination of EOSD_CHANGED_* whenever
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
83 * the images are altered.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
84 * The core EOSD system resets it.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
85 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
86 int changed;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
87
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
88 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
89 * Z-index of the images.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
90 * Images with a higher Z-index are rendered on top.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
91 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
92 int z_index;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
93
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
94 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
95 * Initialized flag of the source.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
96 * Set by the source, automatically cleared when a source is added,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
97 * removed or reinitialized.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
98 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
99 int initialized;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
100
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
101 struct mp_eosd_source *priv_next;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
102 };
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
103
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
104 struct mp_eosd_image_list {
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
105 struct mp_eosd_source *first_source;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
106 struct mp_eosd_source *source;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
107 struct mp_eosd_image *image;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
108 int changed;
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
109 };
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
110
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
111 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
112 * Initialize the EOSD subsystem.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
113 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
114 * @param vf the video filter chain where the rendering will take place.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
115 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
116 void eosd_init(vf_instance_t *vf);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
117
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
118 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
119 * Configure the resolution for EOSD rendering.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
120 * Should be called by the rendering engine whenever the resolution or
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
121 * settings change.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
122 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
123 * @param res resolution and margins of the rendering area.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
124 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
125 void eosd_configure(struct mp_eosd_settings *res);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
126
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
127 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
128 * Renders the EOSD elements for the current frame.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
129 * Should be called by the rendering engine when it is about to do or
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
130 * prepare the rendering.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
131 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
132 * @param[in] ts presentation timestamp of the frame.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
133 * @param[out] images list of images to render.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
134 * The list and list elements are only valid until any
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
135 * client alter them.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
136 * The renderer should therefore not call anything that
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
137 * may alter the EOSD elements.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
138 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
139 void eosd_render_frame(double ts, struct mp_eosd_image_list *images);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
140
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
141 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
142 * Shut down the EOSD subsystem and free the associated resources.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
143 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
144 void eosd_uninit(void);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
145
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
146 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
147 * Register a source of EOSD images.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
148 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
149 void eosd_register(struct mp_eosd_source *source);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
150
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
151 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
152 * Test whether a source has already been registered.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
153 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
154 int eosd_registered(struct mp_eosd_source *source);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
155
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
156 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
157 * Allocate a structure for an EOSD image.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
158 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
159 struct mp_eosd_image *eosd_image_alloc(void);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
160
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
161 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
162 * Free a previously allocated structure.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
163 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
164 void eosd_image_free(struct mp_eosd_image *image);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
165
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
166 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
167 * Append an image to the list of images associated to a source.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
168 * This function requires that the images_tail pointer is correctly set.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
169 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
170 void eosd_image_append(struct mp_eosd_source *source,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
171 struct mp_eosd_image *image);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
172
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
173 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
174 * Remove an image from the list of images associated to a source.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
175 * The image structure is freed using eosd_image_free.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
176 *
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
177 * @param source source where the image is.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
178 * @param image image to remove.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
179 * @param prev pointeur to the prev field of the previous image,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
180 * or to source->images if this is the first image.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
181 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
182 void eosd_image_remove(struct mp_eosd_source *source,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
183 struct mp_eosd_image *image,
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
184 struct mp_eosd_image **prev);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
185
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
186 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
187 * Remove all images associated to a source and free the corresponding
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
188 * structures.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
189 * This function also resets the images_tail pointer.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
190 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
191 void eosd_image_remove_all(struct mp_eosd_source *source);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
192
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
193 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
194 * Reset the cursor of an image list and get the first image.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
195 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
196 struct mp_eosd_image *eosd_image_first(struct mp_eosd_image_list *images);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
197
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
198 /**
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
199 * Get the next image in an image list.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
200 * The renderer must NOT use the next field in the image structure.
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
201 */
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
202 struct mp_eosd_image *eosd_image_next(struct mp_eosd_image_list *images);
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
203
d80bbc5868de Move eosd.[ch] to the sub directory.
cigaes
parents:
diff changeset
204 #endif /* MPLAYER_EOSD_H */