~ubuntu-branches/ubuntu/edgy/gstreamer0.10-ffmpeg/edgy

« back to all changes in this revision

Viewing changes to gst-libs/ext/ffmpeg/vhook/imlib2.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2006-04-01 16:13:43 UTC
  • mto: This revision was merged to the branch mainline in revision 5.
  • Revision ID: james.westby@ubuntu.com-20060401161343-n621cgjlujio0otg
Tags: upstream-0.10.1
Import upstream version 0.10.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * imlib2 based hook 
 
2
 * imlib2 based hook
3
3
 * Copyright (c) 2002 Philip Gladstone
4
 
 * 
 
4
 *
5
5
 * This module implements a text overlay for a video image. Currently it
6
6
 * supports a fixed overlay or reading the text from a file. The string
7
7
 * is passed through strftime so that it is easy to imprint the date and
19
19
 * This module is very much intended as an example of what could be done.
20
20
 * For example, you could overlay an image (even semi-transparent) like
21
21
 * TV stations do. You can manipulate the image using imlib2 functions
22
 
 * in any way. 
 
22
 * in any way.
23
23
 *
24
24
 * One caution is that this is an expensive process -- in particular the
25
25
 * conversion of the image into RGB and back is time consuming. For some
26
26
 * special cases -- e.g. painting black text -- it would be faster to paint
27
27
 * the text into a bitmap and then combine it directly into the YUV
28
 
 * image. However, this code is fast enough to handle 10 fps of 320x240 on a 
 
28
 * image. However, this code is fast enough to handle 10 fps of 320x240 on a
29
29
 * 900MHz Duron in maybe 15% of the CPU.
30
30
 *
31
31
 * This library is free software; you can redistribute it and/or
40
40
 *
41
41
 * You should have received a copy of the GNU Lesser General Public
42
42
 * License along with this library; if not, write to the Free Software
43
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
43
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
44
44
 */
45
45
 
46
46
#include "framehook.h"
55
55
#include <sys/time.h>
56
56
#include <time.h>
57
57
#include <X11/Xlib.h>
58
 
#include <Imlib2.h>                                                             
 
58
#include <Imlib2.h>
59
59
 
60
60
typedef struct {
61
61
    int dummy;
138
138
        return -1;
139
139
    }
140
140
    imlib_context_set_font(ci->fn);
141
 
    imlib_context_set_direction(IMLIB_TEXT_TO_RIGHT);                           
 
141
    imlib_context_set_direction(IMLIB_TEXT_TO_RIGHT);
142
142
 
143
143
    if (color) {
144
144
        char buff[256];
215
215
 
216
216
        avpicture_fill(&picture1, (uint8_t *) data, PIX_FMT_RGBA32, width, height);
217
217
    if (pix_fmt != PIX_FMT_RGBA32) {
218
 
        if (img_convert(&picture1, PIX_FMT_RGBA32, 
 
218
        if (img_convert(&picture1, PIX_FMT_RGBA32,
219
219
                        picture, pix_fmt, width, height) < 0) {
220
220
            goto done;
221
221
        }
222
222
    } else {
223
 
        img_copy(&picture1, picture, PIX_FMT_RGBA32, width, height); 
 
223
        img_copy(&picture1, picture, PIX_FMT_RGBA32, width, height);
224
224
    }
225
225
 
226
226
    imlib_image_set_has_alpha(0);
227
227
 
228
228
    {
229
 
        int wid, hig, h_a, v_a;                                                   
 
229
        int wid, hig, h_a, v_a;
230
230
        char buff[1000];
231
231
        char tbuff[1000];
232
232
        char *tbp = ci->text;
268
268
    }
269
269
 
270
270
    if (pix_fmt != PIX_FMT_RGBA32) {
271
 
        if (img_convert(picture, pix_fmt, 
 
271
        if (img_convert(picture, pix_fmt,
272
272
                        &picture1, PIX_FMT_RGBA32, width, height) < 0) {
273
273
        }
274
274
    } else {
275
 
        img_copy(picture, &picture1, PIX_FMT_RGBA32, width, height); 
 
275
        img_copy(picture, &picture1, PIX_FMT_RGBA32, width, height);
276
276
    }
277
277
 
278
278
done: