xine-lib  1.2.10
libmpeg2_accel.h
Go to the documentation of this file.
1 /*
2  * libmpeg2_accel.h
3  * Copyright (C) 2004 The Unichrome Project.
4  * Copyright (C) 2005 Thomas Hellstrom.
5  *
6  * This file is part of xine, a free video player.
7  *
8  * xine is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * xine is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  */
22 
23 #ifndef LIBMPEG2_ACCEL_H
24 #define LIBMPEG2_ACCEL_H
25 
26 #include "mpeg2_internal.h"
27 
28 /*
29  * Internal context data type.
30  */
31 
32 typedef struct {
38 
39 extern int libmpeg2_accel_discontinuity(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture);
40 extern int libmpeg2_accel_new_sequence(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture);
41 extern int libmpeg2_accel_new_frame(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture, double ratio, uint32_t flags);
42 extern void libmpeg2_accel_frame_completion(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture, int code);
43 
44 extern int libmpeg2_accel_slice(mpeg2dec_accel_t *accel, picture_t *picture, int code,
45  char * buffer, uint32_t chunk_size, uint8_t *chunk_buffer);
46 extern void libmpeg2_accel_scan( mpeg2dec_accel_t *accel, uint8_t *scan_norm, uint8_t *scan_alt);
47 
48 #endif
XINE_IMGFMT_YV12
#define XINE_IMGFMT_YV12
Definition: xine.h:494
punpcklbw_r2r
#define punpcklbw_r2r(regs, regd)
Definition: mmx.h:695
mpeg2_idct_mmx_init
void mpeg2_idct_mmx_init(void)
libmpeg2_accel_new_sequence
int libmpeg2_accel_new_sequence(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture)
Definition: libmpeg2_accel.c:67
xineutils.h
mpeg2_zero_block_mmx
void mpeg2_zero_block_mmx(int16_t *block)
pmaddwd_r2r
#define pmaddwd_r2r(regs, regd)
Definition: mmx.h:529
picture_t::top_field_first
int top_field_first
Definition: vdpau_vc1.c:112
libmpeg2_accel_slice
int libmpeg2_accel_slice(mpeg2dec_accel_t *accel, picture_t *picture, int code, char *buffer, uint32_t chunk_size, uint8_t *chunk_buffer)
Definition: libmpeg2_accel.c:160
mpeg2_xxmc_vld_frame_complete
void mpeg2_xxmc_vld_frame_complete(mpeg2dec_accel_t *accel, picture_t *picture, int code)
Definition: slice_xvmc_vld.c:198
libmpeg2_accel_new_sequence
int libmpeg2_accel_new_sequence(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture)
Definition: libmpeg2_accel.c:67
libmpeg2_accel.h
libmpeg2_accel_discontinuity
int libmpeg2_accel_discontinuity(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture)
Definition: libmpeg2_accel.c:45
xine_mmx.h
xine_xxmc_s
Definition: accel_xvmc.h:77
paddd_r2r
#define paddd_r2r(regs, regd)
Definition: mmx.h:439
mpeg2dec_accel_t::xvmc_last_slice_code
int xvmc_last_slice_code
Definition: libmpeg2_accel.h:33
pslld_i2r
#define pslld_i2r(imm, reg)
Definition: mmx.h:620
mpeg2_xvmc_slice
void mpeg2_xvmc_slice(mpeg2dec_accel_t *accel, picture_t *picture, int code, uint8_t *buffer)
Definition: slice_xvmc.c:1663
mpeg2_idct_add_mmxext
void mpeg2_idct_add_mmxext(int16_t *block, uint8_t *dest, int stride)
psrad_i2r
#define psrad_i2r(imm, reg)
Definition: mmx.h:651
psubusb_r2r
#define psubusb_r2r(regs, regd)
Definition: mmx.h:506
libmpeg2_accel_scan
void libmpeg2_accel_scan(mpeg2dec_accel_t *accel, uint8_t *scan_norm, uint8_t *scan_alt)
Definition: libmpeg2_accel.c:35
xine_xvmc_s::macroblocks
xine_macroblocks_t * macroblocks
Definition: accel_xvmc.h:65
xine_xxmc_s::acceleration
unsigned acceleration
Definition: accel_xvmc.h:86
libmpeg2_accel_slice
int libmpeg2_accel_slice(mpeg2dec_accel_t *accel, picture_t *picture, int code, char *buffer, uint32_t chunk_size, uint8_t *chunk_buffer)
Definition: libmpeg2_accel.c:160
packssdw_r2r
#define packssdw_r2r(regs, regd)
Definition: mmx.h:666
psubsw_r2r
#define psubsw_r2r(regs, regd)
Definition: mmx.h:491
xvmc_setup_scan_ptable
void xvmc_setup_scan_ptable(void)
Definition: slice_xvmc.c:75
mpeg2dec_accel_t::slices_per_row
int slices_per_row
Definition: libmpeg2_accel.h:34
ATTR_ALIGN
#define ATTR_ALIGN(align)
Definition: attributes.h:64
mpeg2dec_accel_t
Definition: libmpeg2_accel.h:32
mpeg2_idct_mmxext
void mpeg2_idct_mmxext(int16_t *block)
XINE_PICT_B_TYPE
#define XINE_PICT_B_TYPE
Definition: accel_xvmc.h:145
libmpeg2_accel_new_frame
int libmpeg2_accel_new_frame(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture, double ratio, uint32_t flags)
Definition: libmpeg2_accel.c:85
XINE_XVMC_MPEG_1
#define XINE_XVMC_MPEG_1
Definition: accel_xvmc.h:118
libmpeg2_accel_discontinuity
int libmpeg2_accel_discontinuity(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture)
Definition: libmpeg2_accel.c:45
picture_t
Definition: vdpau_mpeg12.c:113
mpeg2_xxmc_slice
void mpeg2_xxmc_slice(mpeg2dec_accel_t *accel, picture_t *picture, int code, uint8_t *buffer, uint32_t chunk_size, uint8_t *chunk_buffer)
Definition: slice_xvmc_vld.c:50
xine_xxmc_s::proc_xxmc_unlock
void(* proc_xxmc_unlock)(vo_driver_t *this_gen)
Definition: accel_xvmc.h:108
xine_xxmc_s::decoded
int decoded
Definition: accel_xvmc.h:93
mpeg2dec_accel_t::xxmc_mb_pic_height
unsigned xxmc_mb_pic_height
Definition: libmpeg2_accel.h:36
por_r2r
#define por_r2r(regs, regd)
Definition: mmx.h:570
mpeg2_slice
void mpeg2_slice(picture_t *picture, int code, uint8_t *buffer)
Definition: slice.c:1623
psrld_i2r
#define psrld_i2r(imm, reg)
Definition: mmx.h:638
mpeg2_idct_copy_mmx
void mpeg2_idct_copy_mmx(int16_t *block, uint8_t *dest, int stride)
pxor_r2r
#define pxor_r2r(regs, regd)
Definition: mmx.h:577
movq_m2r
#define movq_m2r(var, reg)
Definition: mmx.h:411
punpckldq_r2r
#define punpckldq_r2r(regs, regd)
Definition: mmx.h:687
paddsw_m2r
#define paddsw_m2r(var, reg)
Definition: mmx.h:453
XINE_XVMC_ACCEL_IDCT
#define XINE_XVMC_ACCEL_IDCT
Definition: accel_xvmc.h:127
XINE_XVMC_ACCEL_MOCOMP
#define XINE_XVMC_ACCEL_MOCOMP
Definition: accel_xvmc.h:126
pshufw_r2r
#define pshufw_r2r(regs, regd, imm)
Definition: mmx.h:261
idct_col
static void idct_col(int16_t *block)
Definition: idct.c:146
pmulhw_m2r
#define pmulhw_m2r(var, reg)
Definition: mmx.h:519
paddusb_r2r
#define paddusb_r2r(regs, regd)
Definition: mmx.h:469
xine_xvmc_s
Definition: accel_xvmc.h:63
paddd_m2r
#define paddd_m2r(var, reg)
Definition: mmx.h:438
xine_xxmc_s::proc_xxmc_update_frame
void(* proc_xxmc_update_frame)(vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
Definition: accel_xvmc.h:95
pmulhw_r2r
#define pmulhw_r2r(regs, regd)
Definition: mmx.h:520
idct_row
static void idct_row(int16_t *block)
Definition: idct.c:77
mpeg2_idct_copy_mmxext
void mpeg2_idct_copy_mmxext(int16_t *block, uint8_t *dest, int stride)
psubd_r2r
#define psubd_r2r(regs, regd)
Definition: mmx.h:476
libmpeg2_accel_frame_completion
void libmpeg2_accel_frame_completion(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture, int code)
Definition: libmpeg2_accel.c:127
mpeg2_scan_alt
uint8_t mpeg2_scan_alt[64]
Definition: header.c:68
xine_xxmc_s::mpeg
unsigned mpeg
Definition: accel_xvmc.h:85
code
char code
Definition: xmllexer.c:606
pmaddwd_m2r
#define pmaddwd_m2r(var, reg)
Definition: mmx.h:528
XINE_IMGFMT_XVMC
#define XINE_IMGFMT_XVMC
Definition: xine.h:496
paddsw_r2r
#define paddsw_r2r(regs, regd)
Definition: mmx.h:454
movq_r2m
#define movq_r2m(reg, var)
Definition: mmx.h:412
mpeg2_idct_mmx
void mpeg2_idct_mmx(int16_t *block)
punpckhdq_r2r
#define punpckhdq_r2r(regs, regd)
Definition: mmx.h:704
mpeg2_internal.h
mpeg2_idct_add_mmx
void mpeg2_idct_add_mmx(int16_t *block, uint8_t *dest, int stride)
libmpeg2_accel_frame_completion
void libmpeg2_accel_frame_completion(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture, int code)
Definition: libmpeg2_accel.c:127
xine_internal.h
mpeg2dec_accel_t::row_slice_count
int row_slice_count
Definition: libmpeg2_accel.h:35
XINE_XVMC_ACCEL_VLD
#define XINE_XVMC_ACCEL_VLD
Definition: accel_xvmc.h:128
xine_xxmc_s::proc_xxmc_lock_valid
int(* proc_xxmc_lock_valid)(vo_frame_t *cur_frame, vo_frame_t *fw_frame, vo_frame_t *bw_frame, unsigned pc_type)
Definition: accel_xvmc.h:106
libmpeg2_accel_new_frame
int libmpeg2_accel_new_frame(mpeg2dec_accel_t *accel, uint32_t frame_format, picture_t *picture, double ratio, uint32_t flags)
Definition: libmpeg2_accel.c:85
config.h
movq_r2r
#define movq_r2r(regs, regd)
Definition: mmx.h:413
punpckhbw_r2r
#define punpckhbw_r2r(regs, regd)
Definition: mmx.h:712
movd_v2r
#define movd_v2r(var, reg)
Definition: mmx.h:66
mpeg2.h
xvmc_vld.h
XINE_PICT_P_TYPE
#define XINE_PICT_P_TYPE
Definition: accel_xvmc.h:144
psraw_i2r
#define psraw_i2r(imm, reg)
Definition: mmx.h:656
libmpeg2_accel_scan
void libmpeg2_accel_scan(mpeg2dec_accel_t *accel, uint8_t *scan_norm, uint8_t *scan_alt)
Definition: libmpeg2_accel.c:35
XINE_XVMC_MPEG_2
#define XINE_XVMC_MPEG_2
Definition: accel_xvmc.h:119
packuswb_r2r
#define packuswb_r2r(regs, regd)
Definition: mmx.h:678
mpeg2_scan_norm
uint8_t mpeg2_scan_norm[64]
Definition: header.c:55
XINE_IMGFMT_XXMC
#define XINE_IMGFMT_XXMC
Definition: xine.h:497
xine_xxmc_s::proc_xxmc_flush
void(* proc_xxmc_flush)(vo_frame_t *vo_img)
Definition: accel_xvmc.h:100
xine_xxmc_s::fallback_format
int fallback_format
Definition: accel_xvmc.h:87