Go to the documentation of this file.
44 #define vis_opc_base ((0x1 << 31) | (0x36 << 19))
45 #define vis_opf(X) ((X) << 5)
46 #define vis_sreg(X) (X)
47 #define vis_dreg(X) (((X)&0x1f)|((X)>>5))
48 #define vis_rs1_s(X) (vis_sreg(X) << 14)
49 #define vis_rs1_d(X) (vis_dreg(X) << 14)
50 #define vis_rs2_s(X) (vis_sreg(X) << 0)
51 #define vis_rs2_d(X) (vis_dreg(X) << 0)
52 #define vis_rd_s(X) (vis_sreg(X) << 25)
53 #define vis_rd_d(X) (vis_dreg(X) << 25)
55 #define vis_ss2s(opf,rs1,rs2,rd) \
56 __asm__ __volatile__ (".word %0" \
57 : : "i" (vis_opc_base | vis_opf(opf) | \
62 #define vis_dd2d(opf,rs1,rs2,rd) \
63 __asm__ __volatile__ (".word %0" \
64 : : "i" (vis_opc_base | vis_opf(opf) | \
69 #define vis_ss2d(opf,rs1,rs2,rd) \
70 __asm__ __volatile__ (".word %0" \
71 : : "i" (vis_opc_base | vis_opf(opf) | \
76 #define vis_sd2d(opf,rs1,rs2,rd) \
77 __asm__ __volatile__ (".word %0" \
78 : : "i" (vis_opc_base | vis_opf(opf) | \
83 #define vis_d2s(opf,rs2,rd) \
84 __asm__ __volatile__ (".word %0" \
85 : : "i" (vis_opc_base | vis_opf(opf) | \
89 #define vis_s2d(opf,rs2,rd) \
90 __asm__ __volatile__ (".word %0" \
91 : : "i" (vis_opc_base | vis_opf(opf) | \
95 #define vis_d12d(opf,rs1,rd) \
96 __asm__ __volatile__ (".word %0" \
97 : : "i" (vis_opc_base | vis_opf(opf) | \
101 #define vis_d22d(opf,rs2,rd) \
102 __asm__ __volatile__ (".word %0" \
103 : : "i" (vis_opc_base | vis_opf(opf) | \
107 #define vis_s12s(opf,rs1,rd) \
108 __asm__ __volatile__ (".word %0" \
109 : : "i" (vis_opc_base | vis_opf(opf) | \
113 #define vis_s22s(opf,rs2,rd) \
114 __asm__ __volatile__ (".word %0" \
115 : : "i" (vis_opc_base | vis_opf(opf) | \
119 #define vis_s(opf,rd) \
120 __asm__ __volatile__ (".word %0" \
121 : : "i" (vis_opc_base | vis_opf(opf) | \
124 #define vis_d(opf,rd) \
125 __asm__ __volatile__ (".word %0" \
126 : : "i" (vis_opc_base | vis_opf(opf) | \
129 #define vis_r2m(op,rd,mem) \
130 __asm__ __volatile__ (#op "\t%%f" #rd ", [%0]" : : "r" (&(mem)) )
132 #define vis_r2m_2(op,rd,mem1,mem2) \
133 __asm__ __volatile__ (#op "\t%%f" #rd ", [%0 + %1]" : : "r" (mem1), "r" (mem2) )
135 #define vis_m2r(op,mem,rd) \
136 __asm__ __volatile__ (#op "\t[%0], %%f" #rd : : "r" (&(mem)) )
138 #define vis_m2r_2(op,mem1,mem2,rd) \
139 __asm__ __volatile__ (#op "\t[%0 + %1], %%f" #rd : : "r" (mem1), "r" (mem2) )
143 register unsigned int val
asm(
"g1");
146 __asm__ __volatile__(
".word 0xa7804000"
150 #define VIS_GSR_ALIGNADDR_MASK 0x0000007
151 #define VIS_GSR_ALIGNADDR_SHIFT 0
152 #define VIS_GSR_SCALEFACT_MASK 0x0000078
153 #define VIS_GSR_SCALEFACT_SHIFT 3
155 #define vis_ld32(mem,rs1) vis_m2r(ld, mem, rs1)
156 #define vis_ld32_2(mem1,mem2,rs1) vis_m2r_2(ld, mem1, mem2, rs1)
157 #define vis_st32(rs1,mem) vis_r2m(st, rs1, mem)
158 #define vis_st32_2(rs1,mem1,mem2) vis_r2m_2(st, rs1, mem1, mem2)
159 #define vis_ld64(mem,rs1) vis_m2r(ldd, mem, rs1)
160 #define vis_ld64_2(mem1,mem2,rs1) vis_m2r_2(ldd, mem1, mem2, rs1)
161 #define vis_st64(rs1,mem) vis_r2m(std, rs1, mem)
162 #define vis_st64_2(rs1,mem1,mem2) vis_r2m_2(std, rs1, mem1, mem2)
164 #define vis_ldblk(mem, rd) \
165 do { register void *__mem asm("g1"); \
167 __asm__ __volatile__(".word 0xc1985e00 | %1" \
174 #define vis_stblk(rd, mem) \
175 do { register void *__mem asm("g1"); \
177 __asm__ __volatile__(".word 0xc1b85e00 | %1" \
184 #define vis_membar_storestore() \
185 __asm__ __volatile__(".word 0x8143e008" : : : "memory")
187 #define vis_membar_sync() \
188 __asm__ __volatile__(".word 0x8143e040" : : : "memory")
196 #define vis_padd16(rs1,rs2,rd) vis_dd2d(0x50, rs1, rs2, rd)
197 #define vis_padd16s(rs1,rs2,rd) vis_ss2s(0x51, rs1, rs2, rd)
198 #define vis_padd32(rs1,rs2,rd) vis_dd2d(0x52, rs1, rs2, rd)
199 #define vis_padd32s(rs1,rs2,rd) vis_ss2s(0x53, rs1, rs2, rd)
200 #define vis_psub16(rs1,rs2,rd) vis_dd2d(0x54, rs1, rs2, rd)
201 #define vis_psub16s(rs1,rs2,rd) vis_ss2s(0x55, rs1, rs2, rd)
202 #define vis_psub32(rs1,rs2,rd) vis_dd2d(0x56, rs1, rs2, rd)
203 #define vis_psub32s(rs1,rs2,rd) vis_ss2s(0x57, rs1, rs2, rd)
207 #define vis_pack16(rs2,rd) vis_d2s( 0x3b, rs2, rd)
208 #define vis_pack32(rs1,rs2,rd) vis_dd2d(0x3a, rs1, rs2, rd)
209 #define vis_packfix(rs2,rd) vis_d2s( 0x3d, rs2, rd)
210 #define vis_expand(rs2,rd) vis_s2d( 0x4d, rs2, rd)
211 #define vis_pmerge(rs1,rs2,rd) vis_ss2d(0x4b, rs1, rs2, rd)
215 #define vis_mul8x16(rs1,rs2,rd) vis_sd2d(0x31, rs1, rs2, rd)
216 #define vis_mul8x16au(rs1,rs2,rd) vis_ss2d(0x33, rs1, rs2, rd)
217 #define vis_mul8x16al(rs1,rs2,rd) vis_ss2d(0x35, rs1, rs2, rd)
218 #define vis_mul8sux16(rs1,rs2,rd) vis_dd2d(0x36, rs1, rs2, rd)
219 #define vis_mul8ulx16(rs1,rs2,rd) vis_dd2d(0x37, rs1, rs2, rd)
220 #define vis_muld8sux16(rs1,rs2,rd) vis_ss2d(0x38, rs1, rs2, rd)
221 #define vis_muld8ulx16(rs1,rs2,rd) vis_ss2d(0x39, rs1, rs2, rd)
227 register void *ptr
asm(
"g1");
231 __asm__ __volatile__(
".word %2"
244 register void *ptr
asm(
"g1");
248 __asm__ __volatile__(
".word %2"
259 register void *ptr
asm(
"g1");
263 __asm__ __volatile__(
".word %2"
276 register void *ptr
asm(
"g1");
280 __asm__ __volatile__(
".word %2"
289 #define vis_faligndata(rs1,rs2,rd) vis_dd2d(0x48, rs1, rs2, rd)
293 #define vis_fzero(rd) vis_d( 0x60, rd)
294 #define vis_fzeros(rd) vis_s( 0x61, rd)
295 #define vis_fone(rd) vis_d( 0x7e, rd)
296 #define vis_fones(rd) vis_s( 0x7f, rd)
297 #define vis_src1(rs1,rd) vis_d12d(0x74, rs1, rd)
298 #define vis_src1s(rs1,rd) vis_s12s(0x75, rs1, rd)
299 #define vis_src2(rs2,rd) vis_d22d(0x78, rs2, rd)
300 #define vis_src2s(rs2,rd) vis_s22s(0x79, rs2, rd)
301 #define vis_not1(rs1,rd) vis_d12d(0x6a, rs1, rd)
302 #define vis_not1s(rs1,rd) vis_s12s(0x6b, rs1, rd)
303 #define vis_not2(rs2,rd) vis_d22d(0x66, rs2, rd)
304 #define vis_not2s(rs2,rd) vis_s22s(0x67, rs2, rd)
305 #define vis_or(rs1,rs2,rd) vis_dd2d(0x7c, rs1, rs2, rd)
306 #define vis_ors(rs1,rs2,rd) vis_ss2s(0x7d, rs1, rs2, rd)
307 #define vis_nor(rs1,rs2,rd) vis_dd2d(0x62, rs1, rs2, rd)
308 #define vis_nors(rs1,rs2,rd) vis_ss2s(0x63, rs1, rs2, rd)
309 #define vis_and(rs1,rs2,rd) vis_dd2d(0x70, rs1, rs2, rd)
310 #define vis_ands(rs1,rs2,rd) vis_ss2s(0x71, rs1, rs2, rd)
311 #define vis_nand(rs1,rs2,rd) vis_dd2d(0x6e, rs1, rs2, rd)
312 #define vis_nands(rs1,rs2,rd) vis_ss2s(0x6f, rs1, rs2, rd)
313 #define vis_xor(rs1,rs2,rd) vis_dd2d(0x6c, rs1, rs2, rd)
314 #define vis_xors(rs1,rs2,rd) vis_ss2s(0x6d, rs1, rs2, rd)
315 #define vis_xnor(rs1,rs2,rd) vis_dd2d(0x72, rs1, rs2, rd)
316 #define vis_xnors(rs1,rs2,rd) vis_ss2s(0x73, rs1, rs2, rd)
317 #define vis_ornot1(rs1,rs2,rd) vis_dd2d(0x7a, rs1, rs2, rd)
318 #define vis_ornot1s(rs1,rs2,rd) vis_ss2s(0x7b, rs1, rs2, rd)
319 #define vis_ornot2(rs1,rs2,rd) vis_dd2d(0x76, rs1, rs2, rd)
320 #define vis_ornot2s(rs1,rs2,rd) vis_ss2s(0x77, rs1, rs2, rd)
321 #define vis_andnot1(rs1,rs2,rd) vis_dd2d(0x68, rs1, rs2, rd)
322 #define vis_andnot1s(rs1,rs2,rd) vis_ss2s(0x69, rs1, rs2, rd)
323 #define vis_andnot2(rs1,rs2,rd) vis_dd2d(0x64, rs1, rs2, rd)
324 #define vis_andnot2s(rs1,rs2,rd) vis_ss2s(0x65, rs1, rs2, rd)
328 #define vis_pdist(rs1,rs2,rd) vis_dd2d(0x3e, rs1, rs2, rd)
static void get_intra_block_B15(picture_t *picture)
Definition: slice.c:465
static void slice_xvmc_non_intra_DCT(picture_t *picture, uint8_t *dest, int stride)
Definition: slice_xvmc.c:1111
static void slice_xvmc_intra_DCT(picture_t *picture, int cc, uint8_t *dest, int stride)
Definition: slice_xvmc.c:1068
#define MOTION_FUNCTIONS(FORMAT, MOTION, MOTION_FIELD, MOTION_DMV, MOTION_ZERO)
Definition: slice.c:1283
static void get_xvmc_intra_block_B15(picture_t *picture)
Definition: slice_xvmc.c:531
uint16_t quantizer_prescale[4][32][64]
Definition: mpeg2_internal.h:112
int intra_vlc_format
Definition: mpeg2_internal.h:137
static int bound_motion_vector(int vec, int f_code)
Definition: slice.c:208
static void stats_sequence_display_extension(uint8_t *buffer)
Definition: stats.c:184
Definition: mpeg2_internal.h:53
#define DCT_TYPE_INTERLACED
Definition: mpeg2_internal.h:40
#define vis_rs1_s(X)
Definition: vis.h:48
static int get_motion_delta(picture_t *picture, int f_code)
Definition: slice.c:155
static int get_coded_block_pattern(picture_t *picture)
Definition: slice.c:243
static int get_xvmc_luma_dc_dct_diff(picture_t *picture)
Definition: slice_xvmc.c:322
static uint8_t mpeg2_scan_orig_ptable[64]
Definition: slice_xvmc.c:73
static const DCtab DC_chrom_5[]
Definition: vlc.h:229
static int get_quantizer_scale(picture_t *picture)
Definition: slice.c:135
static const MBAtab MBA_5[]
Definition: vlc.h:394
int pmv[2][2]
Definition: mpeg2_internal.h:56
static void stats_picture_display_extension(uint8_t *buffer)
Definition: stats.c:209
#define TOP_FIELD
Definition: mpeg2_internal.h:51
#define MOTION_420(table, ref, motion_x, motion_y, size, y)
Definition: slice.c:974
static void motion_mp1(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice_xvmc.c:1131
static void motion_fi_dmv(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice_xvmc.c:1397
static void stats_sequence_extension(uint8_t *buffer)
Definition: stats.c:165
#define I_TYPE
Definition: ff_mpeg_parser.c:43
static void motion_fi_dmv(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1369
static void motion_fr_field_444(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1507
int top_field_first
Definition: vdpau_vc1.c:112
static void motion_zero_444(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1507
motion_parser_t * motion_parser[5]
Definition: mpeg2_internal.h:91
static void motion_fr_frame(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1079
int concealment_motion_vectors
Definition: mpeg2_internal.h:135
static const MBtab MB_B[]
Definition: vlc.h:122
static void motion_fr_field(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1106
static int get_luma_dc_dct_diff(mpeg2_decoder_t *const decoder)
Definition: slice.c:262
void mpeg2_xxmc_vld_frame_complete(mpeg2dec_accel_t *accel, picture_t *picture, int code)
Definition: slice_xvmc_vld.c:198
static void motion_fr_conceal(picture_t *picture)
Definition: slice_xvmc.c:1282
#define XINE_MC_FIELD
Definition: accel_xvmc.h:137
#define DUMPBITS(bit_buf, bits, num)
Definition: vlc.h:48
#define NEXT_MACROBLOCK
Definition: slice.c:1562
static void get_quantizer_scale(mpeg2_decoder_t *const decoder)
Definition: slice.c:135
#define MOTION_FIELD(table, ref, motion_x, motion_y, dest_field, op, src_field)
Definition: slice.c:1016
unsigned int limit_y_8
Definition: mpeg2_internal.h:83
uint8_t size
Definition: vlc.h:81
static void * vis_alignaddr(void *_ptr)
Definition: vis.h:225
int f_code[2]
Definition: mpeg2_internal.h:57
static void motion_zero_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
static int get_mpeg1_non_intra_block(mpeg2_decoder_t *const decoder)
Definition: slice.c:803
int stride_frame
Definition: mpeg2_internal.h:80
int picture_coding_type
Definition: video_out.h:126
int result
Definition: accel_xvmc.h:92
static const DMVtab DMV_2[]
Definition: vlc.h:166
#define D_TYPE
Definition: ff_mpeg_parser.c:46
uint8_t * dest[3]
Definition: mpeg2_internal.h:73
uint8_t level
Definition: vlc.h:87
static int get_xvmc_chroma_dc_dct_diff(picture_t *picture)
Definition: slice_xvmc.c:359
#define XINE_MC_FRAME
Definition: accel_xvmc.h:138
mpeg2_mc_fct * put[8]
Definition: mpeg2_internal.h:285
int coding_type
Definition: mpeg2_internal.h:123
static void motion_fi_dmv_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
#define MOTION_FIELD_422(table, ref, motion_x, motion_y, dest_field, op, src_field)
Definition: slice.c:1102
#define vis_rd_s(X)
Definition: vis.h:52
static void stats_slice(int code, uint8_t *buffer)
Definition: stats.c:158
static const uint8_t zig_zag_scan[64]
Definition: slice_xvmc_vld.c:28
static const DCtab DC_long[]
Definition: vlc.h:236
Definition: accel_xvmc.h:77
uint8_t len
Definition: vlc.h:88
int xvmc_last_slice_code
Definition: libmpeg2_accel.h:33
#define MOTION_CALL(routine, direction)
Definition: slice.c:1429
static const DCTtab DCT_16[]
Definition: vlc.h:244
static int get_macroblock_modes(mpeg2_decoder_t *const decoder)
Definition: slice.c:42
static void slice_intra_DCT(picture_t *picture, int cc, uint8_t *dest, int stride)
Definition: slice.c:949
static void motion_fi_16x8_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
uint8_t len
Definition: vlc.h:72
void mpeg2_xvmc_slice(mpeg2dec_accel_t *accel, picture_t *picture, int code, uint8_t *buffer)
Definition: slice_xvmc.c:1663
#define vis_rs2_s(X)
Definition: vis.h:50
static void motion_fr_dmv_444(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1507
static void stats_sequence(uint8_t *buffer)
Definition: stats.c:83
Definition: mpeg2_internal.h:64
#define vis_opf(X)
Definition: vis.h:45
static void stats_picture(uint8_t *buffer)
Definition: stats.c:52
const uint8_t * bitstream_ptr
Definition: mpeg2_internal.h:71
static void get_xvmc_mpeg1_non_intra_block(picture_t *picture)
Definition: slice_xvmc.c:926
static uint8_t mpeg2_scan_norm_ptable[64]
Definition: slice_xvmc.c:72
static void get_mpeg1_intra_block(picture_t *picture)
Definition: slice.c:701
unsigned int limit_x
Definition: mpeg2_internal.h:81
static const DCTtab DCT_15[]
Definition: vlc.h:255
static int bound_motion_vector(int vec, int f_code)
Definition: slice_xvmc.c:259
void xvmc_setup_scan_ptable(void)
Definition: slice_xvmc.c:75
static int get_macroblock_modes(picture_t *picture)
Definition: slice.c:42
static void motion_fi_conceal(mpeg2_decoder_t *const decoder)
Definition: slice.c:1527
static void get_intra_block_B14(mpeg2_decoder_t *const decoder, const uint16_t *const quant_matrix)
Definition: slice.c:343
int top_field_first
Definition: video_out.h:120
int slices_per_row
Definition: libmpeg2_accel.h:34
static int field
Definition: spudec.c:733
#define SIGNED_INTRA
Definition: slice_xvmc.c:43
unsigned slice_data_size
Definition: accel_xvmc.h:90
uint8_t * slice_data
Definition: accel_xvmc.h:89
#define ATTR_ALIGN(align)
Definition: attributes.h:64
motion_t b_motion
Definition: mpeg2_internal.h:89
static const uint8_t mpeg2_scan_alt_orig[64]
Definition: slice_xvmc.c:62
#define lprintf(...)
Definition: xineutils.h:620
static const uint8_t alternate_scan[64]
Definition: slice_xvmc_vld.c:41
Definition: libmpeg2_accel.h:32
static const MBtab MB_P[]
Definition: vlc.h:107
static int debug_level
Definition: stats.c:32
#define MOTION_FIELD_420(table, ref, motion_x, motion_y, dest_field, op, src_field)
Definition: slice.c:1001
void(* mpeg2_cpu_state_restore)(cpu_state_t *state)
Definition: cpu_state.c:34
static int slice_init(mpeg2_decoder_t *const decoder, int code)
Definition: slice.c:1689
static void get_xvmc_intra_block_B14(picture_t *picture)
Definition: slice_xvmc.c:402
motion_t f_motion
Definition: mpeg2_internal.h:90
static void stats_user_data(uint8_t *buffer)
Definition: stats.c:77
uint16_t(*[2] chroma_quantizer)[64]
Definition: mpeg2_internal.h:111
int width
Definition: mpeg2_internal.h:115
Definition: vdpau_mpeg12.c:113
void mpeg2_stats(int code, uint8_t *buffer)
Definition: stats.c:270
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
static const int non_linear_quantizer_scale[]
Definition: slice_xvmc.c:86
#define FRAME_PICTURE
Definition: mpeg2_internal.h:53
static int get_luma_dc_dct_diff(picture_t *picture)
Definition: slice.c:271
static void vis_alignaddrl_g0(void *_ptr)
Definition: vis.h:274
#define vis_opc_base
Definition: vis.h:44
#define BOTTOM_FIELD
Definition: mpeg2_internal.h:52
static int slice_init(picture_t *picture, int code)
Definition: slice.c:1462
int decoded
Definition: accel_xvmc.h:93
void(* convert)(void *convert_id, uint8_t *const *src, unsigned int v_offset)
Definition: mpeg2_internal.h:100
static const DCTtab DCT_B15_10[]
Definition: vlc.h:322
unsigned xxmc_mb_pic_height
Definition: libmpeg2_accel.h:36
#define NEEDBITS(bit_buf, bits, bit_ptr)
Definition: vlc.h:39
static int get_xvmc_dmv(picture_t *picture)
Definition: slice_xvmc.c:278
#define MOTION_ZERO_420(table, ref)
Definition: slice.c:1066
int frame_pred_frame_dct
Definition: mpeg2_internal.h:132
static void motion_fr_dmv_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
uint8_t len
Definition: vlc.h:82
static void vis_set_gsr(unsigned int _val)
Definition: vis.h:141
#define B_TYPE
Definition: ff_mpeg_parser.c:45
int picture_structure
Definition: mpeg2_internal.h:130
static void motion_fr_frame(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice_xvmc.c:1162
void(* mpeg2_cpu_state_save)(cpu_state_t *state)
Definition: cpu_state.c:33
static void motion_reuse(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1234
uint8_t len
Definition: vlc.h:67
NULL
Definition: xine_plugin.c:78
#define MOTION_CALL(routine, direction)
Definition: slice_xvmc.c:1455
static void slice_non_intra_DCT(picture_t *picture, uint8_t *dest, int stride)
Definition: slice.c:977
void mpeg2_slice(picture_t *picture, int code, uint8_t *buffer)
Definition: slice.c:1623
void mpeg2_mc_fct(uint8_t *, const uint8_t *, int, int)
Definition: mpeg2_internal.h:51
Definition: mpeg2_internal.h:221
static const MBtab MB_I[]
Definition: vlc.h:100
void(* mpeg2_cpu_state_save)(cpu_state_t *state)
Definition: cpu_state.c:33
static void motion_fr_field_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
int bad_frame
Definition: video_out.h:111
#define MOTION_ZERO_422(table, ref)
Definition: slice.c:1162
Definition: mpeg2_internal.h:284
int dmv_offset
Definition: mpeg2_internal.h:104
static void motion_fi_field(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice_xvmc.c:1307
#define MACROBLOCK_QUANT
Definition: mpeg2_internal.h:39
#define MOTION_DMV_422(table, ref, motion_x, motion_y)
Definition: slice.c:1128
int progressive_frame
Definition: video_out.h:125
void mpeg2_init_fbuf(mpeg2_decoder_t *decoder, uint8_t *current_fbuf[3], uint8_t *forward_fbuf[3], uint8_t *backward_fbuf[3])
Definition: slice.c:1587
int repeat_first_field
Definition: video_out.h:121
static void motion_fi_field(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1290
#define MACROBLOCK_MOTION_FORWARD
Definition: mpeg2_internal.h:38
static const CBPtab CBP_9[]
Definition: vlc.h:202
static const uint8_t mpeg2_scan_norm_orig[64]
Definition: slice_xvmc.c:49
Definition: accel_xvmc.h:63
int16_t DCTblock[64]
Definition: mpeg2_internal.h:97
#define NEXT_MACROBLOCK
Definition: slice_xvmc.c:1465
int duration
Definition: video_out.h:112
void(* proc_macro_block)(int x, int y, int mb_type, int motion_type, int(*mv_field_sel)[2], int *dmvector, int cbp, int dct_type, vo_frame_t *current_frame, vo_frame_t *forward_ref_frame, vo_frame_t *backward_ref_frame, int picture_structure, int second_field, int(*f_mot_pmv)[2], int(*b_mot_pmv)[2])
Definition: accel_xvmc.h:66
#define bit_buf
Definition: slice.c:1253
static void motion_fr_field(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int), int dir)
Definition: slice_xvmc.c:1189
int offset
Definition: mpeg2_internal.h:75
#define MOTION_FIELD_444(table, ref, motion_x, motion_y, dest_field, op, src_field)
Definition: slice.c:1192
#define MOTION_444(table, ref, motion_x, motion_y, size, y)
Definition: slice.c:1172
static const DCTtab DCT_B15_8[]
Definition: vlc.h:327
static const DCTtab DCT_B14DC_5[]
Definition: vlc.h:312
static uint8_t mpeg2_scan_alt_ptable[64]
Definition: slice_xvmc.c:71
static int slice_xvmc_init(picture_t *picture, int code)
Definition: slice_xvmc.c:1490
static int get_chroma_dc_dct_diff(picture_t *picture)
Definition: slice.c:308
static int get_non_intra_block(mpeg2_decoder_t *const decoder, const uint16_t *const quant_matrix)
Definition: slice.c:564
Definition: accel_xvmc.h:40
static int get_motion_delta(mpeg2_decoder_t *const decoder, const int f_code)
Definition: slice.c:159
int vertical_position_extension
Definition: mpeg2_internal.h:117
#define MC_DMV
Definition: mpeg2_internal.h:48
int slice_stride
Definition: mpeg2_internal.h:78
#define MC_16X8
Definition: mpeg2_internal.h:47
static int debug_is_on(void)
Definition: stats.c:36
static void bitstream_init(picture_t *picture, uint8_t *start)
Definition: vlc.h:30
uint8_t len
Definition: vlc.h:77
int8_t dmv
Definition: vlc.h:71
static int get_xvmc_quantizer_scale(picture_t *picture)
Definition: slice_xvmc.c:186
static void motion_reuse_444(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1507
static void slice_non_intra_DCT(mpeg2_decoder_t *const decoder, const int cc, uint8_t *const dest, const int stride)
Definition: slice.c:960
static const DCtab DC_lum_5[]
Definition: vlc.h:222
static int get_coded_block_pattern(mpeg2_decoder_t *const decoder)
Definition: slice.c:234
static void motion_mp1(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1048
#define MACROBLOCK_INTRA
Definition: mpeg2_internal.h:35
int stride
Definition: mpeg2_internal.h:76
static const MVtab MV_10[]
Definition: vlc.h:156
static void get_xvmc_non_intra_block(picture_t *picture)
Definition: slice_xvmc.c:658
#define UBITS(bit_buf, num)
Definition: vlc.h:55
#define MACROBLOCK_MOTION_BACKWARD
Definition: mpeg2_internal.h:37
int intra_dc_precision
Definition: mpeg2_internal.h:128
#define MOTION_DMV_420(table, ref, motion_x, motion_y)
Definition: slice.c:1030
uint8_t len
Definition: vlc.h:93
char code
Definition: xmllexer.c:606
#define SBITS(bit_buf, num)
Definition: vlc.h:58
static void motion_fr_dmv(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice_xvmc.c:1239
static const DCTtab DCT_B14_10[]
Definition: vlc.h:285
int slice_uv_stride
Definition: mpeg2_internal.h:79
uint8_t run
Definition: vlc.h:86
static void get_non_intra_block(picture_t *picture)
Definition: slice.c:578
static void motion_reuse_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
int bitstream_bits
Definition: mpeg2_internal.h:70
unsigned slice_code
Definition: accel_xvmc.h:91
mpeg2_mc_fct * avg[8]
Definition: mpeg2_internal.h:286
void(* mpeg2_idct)(int16_t *block)
Definition: idct.c:61
mpeg2_mc_t mpeg2_mc
Definition: motion_comp.c:32
int16_t dc_dct_pred[3]
Definition: mpeg2_internal.h:94
void(* mpeg2_idct_copy)(int16_t *block, uint8_t *dest, int stride)
Definition: idct.c:59
unsigned int height
Definition: gfontrle.c:5
uint8_t cbp
Definition: vlc.h:76
static void motion_fi_field_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
static const MVtab MV_4[]
Definition: vlc.h:152
static void motion_fr_dmv(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1153
xine_vld_frame_t vld_frame
Definition: accel_xvmc.h:88
static void motion_mp1(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1257
static int get_dmv(picture_t *picture)
Definition: slice.c:227
int height
Definition: mpeg2_internal.h:116
uint8_t ** ref2[2]
Definition: mpeg2_internal.h:55
#define MOTION_ZERO_444(table, ref)
Definition: slice.c:1244
uint8_t delta
Definition: vlc.h:66
#define P_TYPE
Definition: ff_mpeg_parser.c:44
static void stats_copyright_extension(uint8_t *buffer)
Definition: stats.c:196
#define likely(x)
Definition: attributes.h:31
static void motion_fr_frame_420(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1504
static void motion_fr_conceal(mpeg2_decoder_t *const decoder)
Definition: slice.c:1508
uint8_t * picture_dest[3]
Definition: mpeg2_internal.h:99
#define GETWORD(bit_buf, shift, bit_ptr)
Definition: vlc.h:24
static int get_chroma_dc_dct_diff(mpeg2_decoder_t *const decoder)
Definition: slice.c:299
const uint8_t * scan
Definition: mpeg2_internal.h:144
uint8_t len
Definition: vlc.h:62
uint8_t modes
Definition: vlc.h:61
int chroma_format
Definition: mpeg2_internal.h:118
static int get_dmv(mpeg2_decoder_t *const decoder)
Definition: slice.c:218
#define IDCT_ACCEL
Definition: slice_xvmc.c:42
static const DCTtab DCT_B14_8[]
Definition: vlc.h:290
#define MC_FRAME
Definition: mpeg2_internal.h:46
static void get_xvmc_mpeg1_intra_block(picture_t *picture)
Definition: slice_xvmc.c:794
void(* proc_xxmc_begin)(vo_frame_t *vo_img)
Definition: accel_xvmc.h:98
unsigned int v_offset
Definition: mpeg2_internal.h:105
static const int non_linear_quantizer_scale[]
Definition: slice.c:35
static void slice_intra_DCT(mpeg2_decoder_t *const decoder, const int cc, uint8_t *const dest, const int stride)
Definition: slice.c:931
#define MOTION_TYPE_BASE
Definition: mpeg2_internal.h:44
#define SATURATE(val)
Definition: slice_xvmc.c:396
int row_slice_count
Definition: libmpeg2_accel.h:35
static int bound_motion_vector(const int vector, const int f_code)
Definition: slice.c:213
unsigned int limit_y_16
Definition: mpeg2_internal.h:82
static int get_xvmc_coded_block_pattern(picture_t *picture)
Definition: slice_xvmc.c:294
void(* proc_xxmc_slice)(vo_frame_t *vo_img)
Definition: accel_xvmc.h:99
#define bits
Definition: slice.c:1254
#define MOTION_CALL(routine, direction)
Definition: slice.c:1552
void * accel_data
Definition: video_out.h:147
#define NEXT_MACROBLOCK
Definition: slice.c:1439
static void motion_fi_16x8(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice_xvmc.c:1342
void(* mpeg2_cpu_state_restore)(cpu_state_t *state)
Definition: cpu_state.c:34
static int get_xvmc_motion_delta(picture_t *picture, int f_code)
Definition: slice_xvmc.c:206
uint32_t bitstream_buf
Definition: mpeg2_internal.h:69
Definition: video_out.h:59
#define MACROBLOCK_PATTERN
Definition: mpeg2_internal.h:36
void(* mpeg2_idct_add)(int last, int16_t *block, uint8_t *dest, int stride)
Definition: idct.c:60
uint16_t * quantizer_matrix[4]
Definition: mpeg2_internal.h:110
static void motion_fi_field_444(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1507
static const MBAtab MBA_11[]
Definition: vlc.h:401
#define SATURATE(val)
Definition: slice.c:345
static void * vis_alignaddrl(void *_ptr)
Definition: vis.h:257
#define MOTION(table, ref, motion_x, motion_y, size, y)
Definition: slice.c:987
void(* mpeg2_zero_block)(int16_t *block)
Definition: idct.c:62
static int get_xvmc_macroblock_modes(picture_t *picture)
Definition: slice_xvmc.c:93
uint8_t mba
Definition: vlc.h:92
#define bit_ptr
Definition: slice.c:1255
static const DCTtab DCT_13[]
Definition: vlc.h:270
static void motion_fi_16x8_444(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1507
static void motion_fi_conceal(picture_t *picture)
Definition: slice_xvmc.c:1428
static void stats_picture_coding_extension(uint8_t *buffer)
Definition: stats.c:215
static const CBPtab CBP_7[]
Definition: vlc.h:171
#define SATURATE(val)
Definition: slice.c:336
static void stats_quant_matrix_extension(uint8_t *buffer)
Definition: stats.c:190
static void get_intra_block_B15(mpeg2_decoder_t *const decoder, const uint16_t *const quant_matrix)
Definition: slice.c:454
static void motion_zero(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1246
int second_field
Definition: mpeg2_internal.h:146
uint8_t * base[3]
Definition: video_out.h:116
static void get_intra_block_B14(picture_t *picture)
Definition: slice.c:351
#define MOTION_422(table, ref, motion_x, motion_y, size, y)
Definition: slice.c:1077
static void motion_fr_conceal(picture_t *picture)
Definition: slice.c:1265
void motion_parser_t(mpeg2_decoder_t *decoder, motion_t *motion, mpeg2_mc_fct *const *table)
Definition: mpeg2_internal.h:60
#define ACCEL
Definition: slice_xvmc.c:44
unsigned int limit_y
Definition: mpeg2_internal.h:84
#define MOTION_ACCEL
Definition: slice_xvmc.c:41
uint8_t * ref[2][3]
Definition: mpeg2_internal.h:54
static void motion_fi_16x8(picture_t *picture, motion_t *motion, void(**table)(uint8_t *, uint8_t *, int, int))
Definition: slice.c:1321
#define MOTION_DMV_444(table, ref, motion_x, motion_y)
Definition: slice.c:1215
static void get_mpeg1_intra_block(mpeg2_decoder_t *const decoder)
Definition: slice.c:686
static void stats_sequence_end(uint8_t *buffer)
Definition: stats.c:145
mpeg2_mc_t mpeg2_mc
Definition: motion_comp.c:32
static void stats_group(uint8_t *buffer)
Definition: stats.c:151
void(* proc_xxmc_flush)(vo_frame_t *vo_img)
Definition: accel_xvmc.h:100
#define MC_FIELD
Definition: mpeg2_internal.h:45
static void stats_sequence_scalable_extension(uint8_t *buffer)
Definition: stats.c:203
static void vis_alignaddr_g0(void *_ptr)
Definition: vis.h:242
#define MOTION_TYPE_SHIFT
Definition: mpeg2_internal.h:34
static void get_mpeg1_non_intra_block(picture_t *picture)
Definition: slice.c:820
#define MOTION_TYPE_MASK
Definition: mpeg2_internal.h:43
static void motion_fi_dmv_444(mpeg2_decoder_t *const decoder, motion_t *const motion, mpeg2_mc_fct *const *const table)
Definition: slice.c:1507
static const DCTtab DCT_B14AC_5[]
Definition: vlc.h:302
float sleep
Definition: accel_xvmc.h:94
static void motion_fi_conceal(picture_t *picture)
Definition: slice.c:1402
int mpeg1
Definition: mpeg2_internal.h:148
int uv_stride
Definition: mpeg2_internal.h:77
static void stats_sequence_error(uint8_t *buffer)
Definition: stats.c:139