xine-lib 1.2.11
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "xine.h"
#include <xine/video_out.h>
#include <errno.h>
#include <xcb/shm.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/time.h>
#include <pthread.h>
#include <netinet/in.h>
#include <xine/xine_internal.h>
#include "yuv2rgb.h"
#include <xine/xineutils.h>
#include <xine/vo_scale.h>
#include "xcbosd.h"
#include "xine_mmx.h"
#include "color_matrix.c"
Data Structures | |
struct | xshm_frame_t |
struct | xshm_driver_t |
struct | xshm_class_t |
Macros | |
#define | LOG_MODULE "video_out_xcbshm" |
#define | LOG_VERBOSE |
#define | FS_DONE 1 |
#define | FS_LATE 2 |
#define | FS_FLAGS 4 |
#define | CM_LUT |
#define | CM_DRIVER_T xshm_driver_t |
Functions | |
static void | create_ximage (xshm_driver_t *this, xshm_frame_t *frame, int width, int height) |
static void | dispose_ximage (xshm_driver_t *this, xshm_frame_t *frame) |
static uint32_t | xshm_get_capabilities (vo_driver_t *this_gen) |
static void | xshm_compute_ideal_size (xshm_driver_t *this, xshm_frame_t *frame) |
static void | xshm_compute_rgb_size (xshm_driver_t *this, xshm_frame_t *frame) |
static void | xshm_frame_field (vo_frame_t *vo_img, int which_field) |
static void | xshm_frame_proc_setup (vo_frame_t *vo_img) |
static void | xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) |
static void | xshm_frame_dispose (vo_frame_t *vo_img) |
static vo_frame_t * | xshm_alloc_frame (vo_driver_t *this_gen) |
static void | xshm_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags) |
static void | xshm_overlay_clut_yuv2rgb (xshm_driver_t *this, vo_overlay_t *overlay, xshm_frame_t *frame) |
static void | xshm_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed) |
static void | xshm_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img) |
static void | xshm_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay) |
static void | clean_output_area (xshm_driver_t *this, xshm_frame_t *frame) |
static int | xshm_redraw_needed (vo_driver_t *this_gen) |
static void | xshm_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) |
static int | xshm_get_property (vo_driver_t *this_gen, int property) |
static int | xshm_set_property (vo_driver_t *this_gen, int property, int value) |
static void | xshm_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max) |
static int | xshm_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data) |
static void | xshm_dispose (vo_driver_t *this_gen) |
static int | ImlibPaletteLUTGet (xshm_driver_t *this) |
static const char * | visual_class_name (xcb_visualtype_t *visual) |
static vo_driver_t * | xshm_open_plugin (video_driver_class_t *class_gen, const void *visual_gen) |
static void * | xshm_init_class (xine_t *xine, const void *visual_gen) |
Variables | |
static const vo_info_t | vo_info_xshm |
const plugin_info_t xine_plugin_info[] | EXPORTED |
#define CM_DRIVER_T xshm_driver_t |
#define CM_LUT |
#define FS_DONE 1 |
#define FS_FLAGS 4 |
#define FS_LATE 2 |
#define LOG_MODULE "video_out_xcbshm" |
#define LOG_VERBOSE |
|
static |
References vo_scale_s::border, xshm_frame_t::sc, and xcbosd_resize().
Referenced by xshm_display_frame(), and xshm_redraw_needed().
|
static |
References _, xshm_frame_t::bytes_per_line, height, xshm_frame_t::image, LOG_MODULE, NULL, xshm_frame_t::shmseg, width, XINE_VERBOSITY_LOG, and xprintf.
Referenced by xshm_frame_proc_setup().
|
static |
References xshm_frame_t::image, NULL, and xshm_frame_t::shmseg.
Referenced by xshm_frame_dispose(), and xshm_frame_proc_setup().
|
static |
References NULL.
Referenced by xshm_open_plugin().
|
static |
Referenced by xshm_open_plugin().
|
static |
References vo_frame_s::dispose, vo_frame_s::driver, vo_frame_s::field, vo_frame_s::mutex, NULL, vo_frame_s::proc_frame, vo_frame_s::proc_slice, xshm_frame_t::sc, xshm_frame_t::vo_frame, xshm_frame_dispose(), xshm_frame_field(), xshm_frame_proc_slice(), and xshm_frame_t::yuv2rgb.
Referenced by xshm_open_plugin().
|
static |
References _x_vo_scale_compute_ideal_size(), and xshm_frame_t::sc.
Referenced by xshm_frame_proc_setup().
|
static |
|
static |
References _x_vo_scale_redraw_needed(), xshm_frame_t::bytes_per_line, clean_output_area(), vo_frame_s::crop_bottom, vo_scale_s::crop_bottom, vo_frame_s::crop_left, vo_scale_s::crop_left, vo_frame_s::crop_right, vo_scale_s::crop_right, vo_frame_s::crop_top, vo_scale_s::crop_top, vo_scale_s::delivered_height, vo_scale_s::delivered_width, vo_frame_s::format, FS_LATE, vo_frame_s::id, xshm_frame_t::image, lprintf, vo_scale_s::output_height, vo_scale_s::output_width, vo_scale_s::output_xoffset, vo_scale_s::output_yoffset, xshm_frame_t::sc, xshm_frame_t::shmseg, xshm_frame_t::state, vo_scale_s::video_pixel_aspect, xshm_frame_t::vo_frame, and XINE_IMGFMT_YV12.
Referenced by xshm_open_plugin().
|
static |
References _x_alphablend_free(), _x_vo_scale_cleanup(), and xcbosd_destroy().
Referenced by xshm_open_plugin().
|
static |
References vo_frame_s::base, yuv2rgb_s::dispose, dispose_ximage(), vo_frame_s::driver, xshm_frame_t::image, vo_frame_s::mutex, xshm_frame_t::vo_frame, xine_free_aligned(), and xshm_frame_t::yuv2rgb.
Referenced by xshm_alloc_frame().
|
static |
References xshm_frame_t::bytes_per_line, xshm_frame_t::image, yuv2rgb_s::next_slice, NULL, xshm_frame_t::rgb_dst, VO_BOTH_FIELDS, VO_BOTTOM_FIELD, VO_TOP_FIELD, and xshm_frame_t::yuv2rgb.
Referenced by xshm_alloc_frame(), and xshm_frame_proc_setup().
|
static |
References vo_frame_s::base, xshm_frame_t::bytes_per_line, cm_names, yuv2rgb_s::configure, contrast, create_ximage(), vo_frame_s::crop_bottom, vo_scale_s::crop_bottom, xshm_frame_t::crop_flush, vo_frame_s::crop_left, vo_scale_s::crop_left, vo_frame_s::crop_right, vo_scale_s::crop_right, xshm_frame_t::crop_start, xshm_frame_t::crop_stop, vo_frame_s::crop_top, vo_scale_s::crop_top, vo_scale_s::delivered_height, vo_scale_s::delivered_ratio, vo_scale_s::delivered_width, vo_scale_s::dest_size_cb, dispose_ximage(), vo_frame_s::driver, emms, vo_frame_s::flags, vo_frame_s::format, FS_DONE, FS_FLAGS, FS_LATE, vo_scale_s::gui_height, vo_scale_s::gui_pixel_aspect, vo_scale_s::gui_width, HAVE_MMX, height, xshm_frame_t::image, xshm_frame_t::offs0, xshm_frame_t::offs1, vo_scale_s::output_height, vo_scale_s::output_width, vo_frame_s::pitches, xshm_frame_t::sc, xshm_frame_t::state, vo_scale_s::user_data, vo_scale_s::user_ratio, vo_scale_s::video_pixel_aspect, VO_BOTH_FIELDS, VO_BOTTOM_FIELD, xshm_frame_t::vo_frame, VO_TOP_FIELD, width, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, xprintf, xshm_compute_ideal_size(), xshm_compute_rgb_size(), xshm_frame_field(), and xshm_frame_t::yuv2rgb.
Referenced by xshm_frame_proc_slice().
|
static |
References xshm_frame_t::crop_flush, xshm_frame_t::crop_stop, vo_frame_s::format, xshm_frame_t::format, lprintf, xshm_frame_t::offs0, xshm_frame_t::offs1, vo_frame_s::pitches, vo_frame_s::proc_called, xshm_frame_t::rgb_dst, XINE_IMGFMT_YV12, xshm_frame_proc_setup(), xshm_frame_t::yuv2rgb, yuv2rgb_s::yuv2rgb_fun, and yuv2rgb_s::yuy22rgb_fun.
Referenced by xshm_alloc_frame().
|
static |
References VO_CAP_BRIGHTNESS, VO_CAP_COLOR_MATRIX, VO_CAP_CONTRAST, VO_CAP_CROP, VO_CAP_FULLRANGE, VO_CAP_SATURATION, VO_CAP_UNSCALED_OVERLAY, VO_CAP_YUY2, and VO_CAP_YV12.
Referenced by xshm_open_plugin().
|
static |
References contrast, LOG_MODULE, VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_MAX_NUM_FRAMES, VO_PROP_OUTPUT_HEIGHT, VO_PROP_OUTPUT_WIDTH, VO_PROP_OUTPUT_XOFFSET, VO_PROP_OUTPUT_YOFFSET, VO_PROP_SATURATION, VO_PROP_WINDOW_HEIGHT, VO_PROP_WINDOW_WIDTH, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by xshm_open_plugin().
|
static |
References VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, and VO_PROP_SATURATION.
Referenced by xshm_open_plugin().
|
static |
References _x_vo_scale_translate_gui2video(), x11_rectangle_t::h, lprintf, x11_rectangle_t::w, x11_rectangle_t::x, xcbosd_drawable_changed(), xcbosd_expose(), XINE_GUI_SEND_COMPLETION_EVENT, XINE_GUI_SEND_DRAWABLE_CHANGED, XINE_GUI_SEND_EXPOSE_EVENT, XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO, and x11_rectangle_t::y.
Referenced by xshm_open_plugin().
|
static |
|
static |
References _, _x_alphablend_init(), _x_vo_scale_init(), xine_s::config, xcb_visual_t::connection, contrast, xcb_visual_t::dest_size_cb, xcb_visual_t::frame_output_cb, ImlibPaletteLUTGet(), LOG_MODULE, mode(), MODE_15_BGR, MODE_15_RGB, MODE_16_BGR, MODE_16_RGB, MODE_24_BGR, MODE_24_RGB, MODE_32_BGR, MODE_32_RGB, MODE_8_BGR, MODE_8_GRAY, MODE_8_RGB, MODE_PALETTE, NULL, xcb_visual_t::screen, xcb_visual_t::user_data, visual_class_name(), xcb_visual_t::window, xcbosd_create(), XCBOSD_SHAPED, config_values_s::xine, xshm_class_t::xine, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, XINE_VO_ASPECT_AUTO, xprintf, xshm_alloc_frame(), xshm_display_frame(), xshm_dispose(), xshm_get_capabilities(), xshm_get_property(), xshm_get_property_min_max(), xshm_gui_data_exchange(), xshm_overlay_begin(), xshm_overlay_blend(), xshm_overlay_end(), xshm_redraw_needed(), xshm_set_property(), xshm_update_frame_format(), and yuv2rgb_factory_init().
Referenced by xshm_init_class().
|
static |
References vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, and xcbosd_clear().
Referenced by xshm_open_plugin().
|
static |
References _x_blend_rgb16(), _x_blend_rgb24(), _x_blend_rgb32(), vo_scale_s::crop_bottom, vo_scale_s::crop_left, vo_scale_s::crop_right, vo_scale_s::crop_top, vo_scale_s::delivered_height, vo_scale_s::delivered_width, height, vo_overlay_s::hili_rgb_clut, xshm_frame_t::image, vo_scale_s::output_height, vo_scale_s::output_width, vo_overlay_s::rgb_clut, vo_overlay_s::rle, xshm_frame_t::sc, vo_overlay_s::unscaled, width, xcbosd_blend(), XINE_VERBOSITY_DEBUG, xprintf, and xshm_overlay_clut_yuv2rgb().
Referenced by xshm_open_plugin().
|
static |
|
static |
References xcbosd_expose().
Referenced by xshm_open_plugin().
|
static |
References _x_vo_scale_redraw_needed(), and clean_output_area().
Referenced by xshm_open_plugin().
|
static |
|
static |
References vo_frame_s::base, vo_scale_s::delivered_height, vo_scale_s::delivered_ratio, vo_scale_s::delivered_width, xshm_frame_t::flags, xshm_frame_t::format, FS_DONE, FS_LATE, height, vo_frame_s::pitches, xshm_frame_t::sc, xshm_frame_t::state, VO_BOTH_FIELDS, xshm_frame_t::vo_frame, vo_frame_s::width, width, xine_freep_aligned, XINE_IMGFMT_YV12, and xine_malloc_aligned().
Referenced by xshm_open_plugin().
const plugin_info_t xine_plugin_info [] EXPORTED |
|
static |