1 
2 #ifndef __SCHRO_VIRT_FRAME_H__
3 #define __SCHRO_VIRT_FRAME_H__
4 
5 #include <schroedinger/schroutils.h>
6 #include <schroedinger/schroframe.h>
7 
8 SCHRO_BEGIN_DECLS
9 
10 #ifdef SCHRO_ENABLE_UNSTABLE_API
11 
12 SchroFrame *schro_frame_new_virtual (SchroMemoryDomain *domain,
13     SchroFrameFormat format, int width, int height);
14 
15 void *schro_virt_frame_get_line (SchroFrame *frame, int component, int i);
16 void *schro_virt_frame_get_line_unrendered (SchroFrame *frame, int component, int i);
17 void schro_virt_frame_set_line_rendered (SchroFrame *frame, int component, int i);
18 void schro_virt_frame_render_line (SchroFrame *frame, void *dest,
19     int component, int i);
20 
21 void schro_virt_frame_render (SchroFrame *frame, SchroFrame *dest);
22 
23 SchroFrame *schro_virt_frame_new_horiz_downsample (SchroFrame *vf, int cosite);
24 SchroFrame *schro_virt_frame_new_vert_downsample (SchroFrame *vf, int cosite);
25 SchroFrame *schro_virt_frame_new_vert_resample (SchroFrame *vf, int height);
26 SchroFrame *schro_virt_frame_new_horiz_resample (SchroFrame *vf, int width);
27 SchroFrame *schro_virt_frame_new_unpack (SchroFrame *vf);
28 SchroFrame *schro_virt_frame_new_pack_YUY2 (SchroFrame *vf);
29 SchroFrame *schro_virt_frame_new_pack_UYVY (SchroFrame *vf);
30 SchroFrame *schro_virt_frame_new_pack_AYUV (SchroFrame *vf);
31 SchroFrame *schro_virt_frame_new_pack_v216 (SchroFrame *vf);
32 SchroFrame *schro_virt_frame_new_pack_v210 (SchroFrame *vf);
33 SchroFrame *schro_virt_frame_new_pack_RGB (SchroFrame *vf);
34 SchroFrame *schro_virt_frame_new_pack_AY64 (SchroFrame * vf);
35 SchroFrame *schro_virt_frame_new_color_matrix (SchroFrame *vf);
36 SchroFrame *schro_virt_frame_new_subsample (SchroFrame *vf, SchroFrameFormat format);
37 
38 SchroFrame * schro_virt_frame_new_convert_u8 (SchroFrame *vf);
39 SchroFrame * schro_virt_frame_new_convert_u8_s32 (SchroFrame *vf);
40 SchroFrame * schro_virt_frame_new_convert_s16 (SchroFrame *vf);
41 SchroFrame * schro_virt_frame_new_convert_s32 (SchroFrame * vf);
42 SchroFrame * schro_virt_frame_new_crop (SchroFrame *vf, int width, int height);
43 SchroFrame * schro_virt_frame_new_edgeextend (SchroFrame *vf, int width, int height);
44 SchroFrame * schro_virt_frame_new_interlace (SchroFrame *vf_top, SchroFrame *vf_bottom);
45 
46 #endif
47 
48 SCHRO_END_DECLS
49 
50 #endif
51 
52