[FFmpeg-devel] [FFMpeg-Devel] [PATCH 5/7] created x86 directory in libpostproc for standalone asm files
Tucker DiNapoli
t.dinapoli42 at gmail.com
Fri Mar 13 19:15:12 CET 2015
I also put one file into the directory, which just defines the layout of
the structs used in libpostproc using the struc and endstruc macros.
---
libpostproc/x86/PPContext.asm | 70 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
create mode 100644 libpostproc/x86/PPContext.asm
diff --git a/libpostproc/x86/PPContext.asm b/libpostproc/x86/PPContext.asm
new file mode 100644
index 0000000..022dddb
--- /dev/null
+++ b/libpostproc/x86/PPContext.asm
@@ -0,0 +1,70 @@
+;*
+;* Definition of the PPContext and PPMode structs in assembly
+;* Copyright (C) 2015 Tucker DiNapoli (T.Dinapoli at gmail.com)
+;*
+;* This file is part of FFmpeg.
+;*
+;* FFmpeg is free software; you can redistribute it and/or modify
+;* it under the terms of the GNU General Public License as published by
+;* the Free Software Foundation; either version 2 of the License, or
+;* (at your option) any later version.
+;*
+;* FFmpeg is distributed in the hope that it will be useful,
+;* but WITHOUT ANY WARRANTY; without even the implied warranty of
+;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;* GNU General Public License for more details.
+;*
+;* You should have received a copy of the GNU General Public License
+;* along with FFmpeg; if not, write to the Free Software
+;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;*
+%if ARCH_X86_64
+%define pointer resq
+%else
+%define pointer resd
+%endif
+struc PPMode
+ .lum_mode: resd 1
+ .chrom_mode: resd 1
+ .error: resd 1
+ .min_allowed_y: resd 1
+ .max_allowed_y: resd 1
+ .max_clipped_threshold: resd 1
+ .max_tmp_noise: resd 3
+ .base_dc_diff: resd 1
+ .flatness_threshold: resd 1
+ .forced_quant: resd 1
+endstruc
+
+struc PPContext
+ .av_class pointer 1
+ .temp_blocks pointer 1
+ .y_historgam pointer 1
+ alignb 8
+ .packed_yoffset resq 1
+ .packed_yscale resq 1; 8 byte aligned by default
+ .temp_blurred pointer 3
+ .temp_blurred_past pointer 3
+ .temp_dst pointer 1
+ .temp_src pointer 1
+ .deint_temp pointer 1
+ alignb 8
+ .pQPb resq 1
+ .pQPb2 resq 1
+;; These next fields & next alignment may need to be changed for 128/256 bit registers
+ alignb 8
+ .mmx_dc_offset resq 64
+ .mmx_dc_threshold resq 64
+ .std_QP_table pointer 1
+ .non_BQP_table pointer 1
+ .forced_QP_table pointer 1
+ .QP resd 1
+ .nonBQP resd 1
+ .frame_num resd 1
+ .cpu_caps resd 1
+ .qp_stride resd 1
+ .stride resd 1
+ .h_chroma_subsample resd 1
+ .v_chroma_subsample resd 1
+ .ppMode resd PPMode_size
+endstruc
--
2.2.1
More information about the ffmpeg-devel
mailing list