comparison mp_image.h @ 4877:9d97874d8691

new flags added for direct rendering (libmpcodecs core)
author arpi
date Thu, 28 Feb 2002 00:53:01 +0000
parents 82a4c1c80021
children 429994672d8c
comparison
equal deleted inserted replaced
4876:5320e2e683e8 4877:9d97874d8691
1 1
2 // set if it's internal buffer of the codec, and shouldn't be modified: 2 // set if buffer content shouldn't be modified:
3 #define MP_IMGFLAG_READONLY 0x01 3 #define MP_IMGFLAG_PRESERVE 0x01
4 // set if buffer content will be READED for next frame's MC: (I/P mpeg frames)
5 #define MP_IMGFLAG_READABLE 0x02
4 // set if buffer is allocated (used in destination images): 6 // set if buffer is allocated (used in destination images):
5 #define MP_IMGFLAG_ALLOCATED 0x02 7 #define MP_IMGFLAG_ALLOCATED 0x04
6 // set if it's in video buffer/memory: 8 // set if it's in video buffer/memory:
7 #define MP_IMGFLAG_DIRECT 0x04 9 #define MP_IMGFLAG_DIRECT 0x08
10 // codec accept any stride (>=width):
11 #define MP_IMGFLAG_ACCEPT_STRIDE 0x10
12 // stride should be aligned to 16-byte (MB) boundary:
13 #define MP_IMGFLAG_ALIGNED_STRIDE 0x20
14 // codec uses drawing/rendering callbacks (draw_slice()-like thing, DR method 2)
15 #define MP_IMGFLAG_DRAW_CALBACK 0x40
8 16
9 // set if number of planes > 1 17 // set if number of planes > 1
10 #define MP_IMGFLAG_PLANAR 0x10 18 #define MP_IMGFLAG_PLANAR 0x100
11 // set if it's YUV colorspace 19 // set if it's YUV colorspace
12 #define MP_IMGFLAG_YUV 0x20 20 #define MP_IMGFLAG_YUV 0x200
13 // set if it's swapped plane/byteorder 21 // set if it's swapped plane/byteorder
14 #define MP_IMGFLAG_SWAPPED 0x40 22 #define MP_IMGFLAG_SWAPPED 0x400
15 23
24 // codec doesn't support any form of direct rendering - it has own buffer
25 // allocation. so we just export its buffer pointers:
16 #define MP_IMGTYPE_EXPORT 0 26 #define MP_IMGTYPE_EXPORT 0
27 // codec requires a static WO buffer, but it does only partial updates later:
17 #define MP_IMGTYPE_STATIC 1 28 #define MP_IMGTYPE_STATIC 1
29 // codec just needs some WO memory, where it writes/copies the whole frame to:
18 #define MP_IMGTYPE_TEMP 2 30 #define MP_IMGTYPE_TEMP 2
31 // I+P type, requires 2+ independent static R/W buffers
32 #define MP_IMGTYPE_IP 3
33 // I+P+B type, requires 2+ independent static R/W and 1+ temp WO buffers
34 #define MP_IMGTYPE_IPB 4
19 35
20 typedef struct mp_image_s { 36 typedef struct mp_image_s {
21 unsigned short flags; 37 unsigned short flags;
22 unsigned char type; 38 unsigned char type;
23 unsigned char bpp; // bits/pixel. NOT depth! for RGB it will be n*8 39 unsigned char bpp; // bits/pixel. NOT depth! for RGB it will be n*8