[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