hvirtual/libmpeg3/video/output.c File Reference

#include "../libmpeg3.h"
#include "mpeg3video.h"
#include <string.h>

Include dependency graph for output.c:

Go to the source code of this file.

Defines

#define CLIP(x)   ((x) >= 0 ? ((x) < 255 ? (x) : 255) : 0)
#define DITHER_ROW_HEAD
#define DITHER_ROW_TAIL   }
#define DITHER_SCALE_HEAD
#define DITHER_SCALE_601_HEAD
#define DITHER_SCALE_TAIL   }
#define DITHER_HEAD
#define DITHER_601_HEAD
#define DITHER_TAIL
#define STORE_PIXEL_BGR888
#define STORE_PIXEL_BGRA8888
#define STORE_PIXEL_RGB565
#define STORE_PIXEL_RGB888
#define STORE_PIXEL_RGBA8888
#define STORE_PIXEL_RGBA16161616

Functions

int mpeg3video_ditherframe (mpeg3video_t *video, unsigned char **src, unsigned char **output_rows)
int mpeg3video_ditherframe444 (mpeg3video_t *video, unsigned char *src[])
int mpeg3video_dithertop (mpeg3video_t *video, unsigned char *src[])
int mpeg3video_dithertop444 (mpeg3video_t *video, unsigned char *src[])
int mpeg3video_ditherbot (mpeg3video_t *video, unsigned char *src[])
int mpeg3video_ditherbot444 (mpeg3video_t *video, unsigned char *src[])
void memcpy_fast (unsigned char *output, unsigned char *input, long len)
int mpeg3video_init_output ()
int mpeg3video_present_frame (mpeg3video_t *video)
int mpeg3video_display_second_field (mpeg3video_t *video)

Variables

static unsigned char mpeg3_601_to_rgb [256]


Define Documentation

#define CLIP (  )     ((x) >= 0 ? ((x) < 255 ? (x) : 255) : 0)

Definition at line 5 of file output.c.

#define DITHER_601_HEAD

Value:

for(w = 0; w < video->horizontal_size; w++) \
        { \
                y_l = mpeg3_601_to_rgb[*y_in++]; \
                y_l <<= 16; \
                r_l = (y_l + video->cr_to_r[*cr_in]) >> 16; \
                g_l = (y_l + video->cr_to_g[*cr_in] + video->cb_to_g[*cb_in]) >> 16; \
                b_l = (y_l + video->cb_to_b[*cb_in]) >> 16;

Definition at line 77 of file output.c.

Referenced by mpeg3video_ditherframe().

#define DITHER_HEAD

Value:

for(w = 0; w < video->horizontal_size; w++) \
        { \
                y_l = *y_in++; \
                y_l <<= 16; \
                r_l = (y_l + video->cr_to_r[*cr_in]) >> 16; \
                g_l = (y_l + video->cr_to_g[*cr_in] + video->cb_to_g[*cb_in]) >> 16; \
                b_l = (y_l + video->cb_to_b[*cb_in]) >> 16;

Definition at line 68 of file output.c.

Referenced by mpeg3video_ditherframe().

#define DITHER_ROW_HEAD

Value:

for(h = 0; h < video->out_h; h++) \
        { \
                y_in = &src[0][(video->y_table[h] + video->in_y) * \
                        video->coded_picture_width] + \
                        video->in_x; \
                if(video->chroma_format == CHROMA420) \
                { \
                        cb_in = &src[1][((video->y_table[h] + video->in_y) >> 1) * \
                                video->chrom_width] + \
                                (video->in_x >> 1); \
                        cr_in = &src[2][((video->y_table[h] + video->in_y) >> 1) * \
                                video->chrom_width] + \
                                (video->in_x >> 1); \
                } \
                else \
                { \
                        cb_in = &src[1][(video->y_table[h] + video->in_y) * \
                                video->chrom_width] + \
                                (video->in_x >> 1); \
                        cr_in = &src[2][(video->y_table[h] + video->in_y) * \
                                video->chrom_width] + \
                                (video->in_x >> 1); \
                } \
                data = output_rows[h];

Definition at line 16 of file output.c.

Referenced by mpeg3video_ditherframe().

#define DITHER_ROW_TAIL   }

Definition at line 42 of file output.c.

Referenced by mpeg3video_ditherframe().

#define DITHER_SCALE_601_HEAD

Value:

for(w = 0; w < video->out_w; w++) \
        { \
                uv_subscript = video->x_table[w] / 2; \
                y_l = mpeg3_601_to_rgb[y_in[video->x_table[w]]]; \
                y_l <<= 16; \
                r_l = (y_l + video->cr_to_r[cr_in[uv_subscript]]) >> 16; \
                g_l = (y_l + video->cr_to_g[cr_in[uv_subscript]] + video->cb_to_g[cb_in[uv_subscript]]) >> 16; \
                b_l = (y_l + video->cb_to_b[cb_in[uv_subscript]]) >> 16;

Definition at line 55 of file output.c.

Referenced by mpeg3video_ditherframe().

#define DITHER_SCALE_HEAD

Value:

for(w = 0; w < video->out_w; w++) \
        { \
                uv_subscript = video->x_table[w] / 2; \
                y_l = y_in[video->x_table[w]]; \
                y_l <<= 16; \
                r_l = (y_l + video->cr_to_r[cr_in[uv_subscript]]) >> 16; \
                g_l = (y_l + video->cr_to_g[cr_in[uv_subscript]] + video->cb_to_g[cb_in[uv_subscript]]) >> 16; \
                b_l = (y_l + video->cb_to_b[cb_in[uv_subscript]]) >> 16;

Definition at line 45 of file output.c.

Referenced by mpeg3video_ditherframe().

#define DITHER_SCALE_TAIL   }

Definition at line 65 of file output.c.

Referenced by mpeg3video_ditherframe().

#define DITHER_TAIL

Value:

if(w & 1) \
                { \
                cr_in++; \
                cb_in++; \
        } \
    }

Definition at line 86 of file output.c.

Referenced by mpeg3video_ditherframe().

#define STORE_PIXEL_BGR888

Value:

*data++ = CLIP(b_l); \
        *data++ = CLIP(g_l); \
        *data++ = CLIP(r_l);

Definition at line 95 of file output.c.

Referenced by mpeg3video_ditherframe().

#define STORE_PIXEL_BGRA8888

Value:

*data++ = CLIP(b_l); \
        *data++ = CLIP(g_l); \
        *data++ = CLIP(r_l); \
        *data++ = 0;

Definition at line 100 of file output.c.

Referenced by mpeg3video_ditherframe().

#define STORE_PIXEL_RGB565

Value:

*(*(unsigned short**)(&data))++ = \
                ((CLIP(r_l) & 0xf8) << 8) | \
                ((CLIP(g_l) & 0xfc) << 3) | \
                ((CLIP(b_l) & 0xf8) >> 3); \
        data += 2;

Definition at line 106 of file output.c.

Referenced by mpeg3video_ditherframe().

#define STORE_PIXEL_RGB888

Value:

*data++ = CLIP(r_l); \
        *data++ = CLIP(g_l); \
        *data++ = CLIP(b_l);

Definition at line 113 of file output.c.

Referenced by mpeg3video_ditherframe().

#define STORE_PIXEL_RGBA16161616

Value:

*data_s++ = CLIP(r_l); \
        *data_s++ = CLIP(g_l); \
        *data_s++ = CLIP(b_l); \
        *data_s++ = 0;

Definition at line 124 of file output.c.

Referenced by mpeg3video_ditherframe().

#define STORE_PIXEL_RGBA8888

Value:

*data++ = CLIP(r_l); \
        *data++ = CLIP(g_l); \
        *data++ = CLIP(b_l); \
        *data++ = 0;

Definition at line 118 of file output.c.

Referenced by mpeg3video_ditherframe().


Function Documentation

void memcpy_fast ( unsigned char *  output,
unsigned char *  input,
long  len 
)

Definition at line 306 of file output.c.

References memcpy.

int mpeg3video_display_second_field ( mpeg3video_t video  ) 

Definition at line 499 of file output.c.

Referenced by mpeg3video_getpicture().

int mpeg3video_ditherbot ( mpeg3video_t video,
unsigned char *  src[] 
)

Definition at line 296 of file output.c.

Referenced by mpeg3video_present_frame().

int mpeg3video_ditherbot444 ( mpeg3video_t video,
unsigned char *  src[] 
)

Definition at line 301 of file output.c.

Referenced by mpeg3video_present_frame().

int mpeg3video_ditherframe ( mpeg3video_t video,
unsigned char **  src,
unsigned char **  output_rows 
)

int mpeg3video_ditherframe444 ( mpeg3video_t video,
unsigned char *  src[] 
)

Definition at line 281 of file output.c.

Referenced by mpeg3video_present_frame().

int mpeg3video_dithertop ( mpeg3video_t video,
unsigned char *  src[] 
)

Definition at line 286 of file output.c.

References mpeg3video_ditherframe(), and mpeg3video_t::output_rows.

Referenced by mpeg3video_present_frame().

Here is the call graph for this function:

int mpeg3video_dithertop444 ( mpeg3video_t video,
unsigned char *  src[] 
)

Definition at line 291 of file output.c.

Referenced by mpeg3video_present_frame().

int mpeg3video_init_output (  ) 

Definition at line 332 of file output.c.

References mpeg3_601_to_rgb.

Referenced by mpeg3video_allocate_struct().

int mpeg3video_present_frame ( mpeg3video_t video  ) 


Variable Documentation

unsigned char mpeg3_601_to_rgb[256] [static]

Definition at line 8 of file output.c.

Referenced by mpeg3video_init_output().


Generated on Mon Apr 28 14:00:05 2008 for Cinelerra by  doxygen 1.5.5