FFmpeg
Data Structures | Macros | Functions
spvasm.h File Reference
#include <stdint.h>
#include <string.h>
#include "config.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"

Go to the source code of this file.

Data Structures

struct  SPICtx
 

Macros

#define COUNT_ARGS_IMPL(...)   (sizeof((int[]){__VA_ARGS__}) / sizeof(int))
 Copyright (C) 2026 Lynne. More...
 
#define COUNT_ARGS(...)   (COUNT_ARGS_IMPL(0, __VA_ARGS__) - 1)
 
#define SPI_ARGS(...)   ((int[]){0, __VA_ARGS__}) + 1, COUNT_ARGS(__VA_ARGS__)
 
#define OP_1SRC(name, code)
 
#define OP_UNTYPEDRES1SRC(name, code)
 
#define OP_RES1SRC(name, code)
 
#define OP_2SRC(name, code)
 
#define OP_UNTYPEDRES2SRC(name, code)
 
#define OP_RES2SRC(name, code)
 
#define spi_OpConstantComposite(spi, res_type, src, ...)
 
#define spi_OpAccessChain(spi, res_type, ptr_id, ...)
 
#define spi_OpCompositeConstruct(spi, res_type, src, ...)
 
#define spi_OpCompositeExtract(spi, res_type, src, ...)
 
#define spi_OpExtInst(spi, res_type, instr_id, set_id, ...)
 
#define spi_OpTypeStruct(spi, id, ...)
 
#define spi_OpDecorate(spi, target, deco, ...)
 
#define spi_OpMemberDecorate(spi, type, target, deco, ...)
 
#define spi_OpVectorShuffle(spi, res_type, src1, src2, ...)
 
#define spi_OpCompositeInsert(spi, res_type, src1, src2, ...)
 

Functions

static void spi_write_u32 (SPICtx *spi, uint32_t v)
 
static void spi_put_str (SPICtx *spi, const char *str)
 
static void spi_init (SPICtx *spi, uint8_t *spv_buf, int buf_len)
 
static int spi_end (SPICtx *spi)
 
static int spi_reserve (SPICtx *spi, int len)
 
static void spi_OpCapability (SPICtx *spi, SpvCapability capability)
 
static void spi_OpMemoryModel (SPICtx *spi, SpvAddressingModel addressing_model, SpvMemoryModel memory_model)
 
static int spi_get_id (SPICtx *spi)
 
static int spi_strl (const char *str)
 
static void spi_op_1src (SPICtx *spi, int code, int src1_id)
 
static int spi_op_untypedres_1src (SPICtx *spi, int code, int id, int src1_id)
 
static int spi_op_res_1src (SPICtx *spi, int code, int id, int type_id, int src1_id)
 
static void spi_op_2src (SPICtx *spi, int code, int src1_id, int src2_id)
 
static int spi_op_untypedres_2src (SPICtx *spi, int code, int id, int src1_id, int src2_id)
 
static int spi_op_res_2src (SPICtx *spi, int code, int id, int type_id, int src1_id, int src2_id)
 
static int spi_op_res_1src_list (SPICtx *spi, int code, int id, int type_id, int src1_id, const int *args, int nb_args)
 
static void spi_op_untypedres_list (SPICtx *spi, int code, int id, const int *args, int nb_args)
 
static void spi_op_2src_list (SPICtx *spi, int code, int src1_id, int src2_id, const int *args, int nb_args)
 
static int spi_op_res_2src_list (SPICtx *spi, int code, int id, int type_id, int src1_id, int src2_id, const int *args, int nb_args)
 
static void spi_op_3src_list (SPICtx *spi, int code, int src1_id, int src2_id, int src3_id, const int *args, int nb_args)
 
static int spi_OpEntryPoint (SPICtx *spi, SpvExecutionModel execution_model, const char *name, const int *args, int nb_args)
 
static void spi_OpName (SPICtx *spi, int target_id, const char *name)
 
static void spi_OpExtension (SPICtx *spi, const char *name)
 
static int spi_OpExtInstImport (SPICtx *spi, const char *name)
 
static void spi_OpExecutionMode (SPICtx *spi, int entry_point_id, SpvExecutionMode mode, int *s, int nb_s)
 
static int spi_OpUndef (SPICtx *spi, int type_id)
 
static int spi_OpTypeVoid (SPICtx *spi)
 
static int spi_OpTypeBool (SPICtx *spi)
 
static int spi_OpTypeFloatEnc (SPICtx *spi, int width, SpvFPEncoding floating_point_encoding)
 
static int spi_OpTypeImage (SPICtx *spi, int sampled_type_id, SpvDim dim, int depth, int arrayed, int ms, int sampled, SpvImageFormat image_format)
 
static int spi_OpTypeArray (SPICtx *spi, int element_type_id, int id, int length_id)
 
static int spi_OpTypeRuntimeArray (SPICtx *spi, int element_type_id)
 
static int spi_OpTypePointer (SPICtx *spi, SpvStorageClass storage_class, int type_id)
 
static int spi_OpTypeFunction (SPICtx *spi, int return_type_id, const int *args, int nb_args)
 
static void spi_OpFunction (SPICtx *spi, int fn_id, int result_type_id, SpvFunctionControlMask function_control, int function_type_id)
 
static int spi_OpLabel (SPICtx *spi, int label_id)
 
static void spi_OpReturn (SPICtx *spi)
 
static void spi_OpFunctionEnd (SPICtx *spi)
 
static int spi_OpVariable (SPICtx *spi, int var_id, int ptr_type_id, SpvStorageClass storage_class, int initializer_id)
 
static int spi_OpConstantTrue (SPICtx *spi)
 
static int spi_OpConstantFalse (SPICtx *spi)
 
static int spi_OpConstantUInt (SPICtx *spi, int type_id, uint32_t val)
 
static int spi_OpConstantUInt64 (SPICtx *spi, int type_id, uint64_t val)
 
static int spi_OpConstantInt (SPICtx *spi, int type_id, int val)
 
static int spi_OpConstantInt64 (SPICtx *spi, int type_id, int64_t val)
 
static int spi_OpConstantFloat (SPICtx *spi, int type_id, float val)
 
static int spi_OpConstantDouble (SPICtx *spi, int type_id, double val)
 
static int spi_OpLoad (SPICtx *spi, int result_type_id, int ptr_id, SpvMemoryAccessMask memory_access, int align)
 
static void spi_OpStore (SPICtx *spi, int ptr_id, int obj_id, SpvMemoryAccessMask memory_access, int align)
 
static void spi_OpSelectionMerge (SPICtx *spi, int merge_block, SpvSelectionControlMask selection_control)
 
static void spi_OpBranchConditional (SPICtx *spi, int cond_id, int true_label, int false_label, uint32_t branch_weights)
 
static int spi_OpImageRead (SPICtx *spi, int result_type_id, int img_id, int pos_id, SpvImageOperandsMask image_operands)
 
static void spi_OpImageWrite (SPICtx *spi, int img_id, int pos_id, int src_id, SpvImageOperandsMask image_operands)
 

Macro Definition Documentation

◆ COUNT_ARGS_IMPL

#define COUNT_ARGS_IMPL (   ...)    (sizeof((int[]){__VA_ARGS__}) / sizeof(int))

Copyright (C) 2026 Lynne.

This file is part of FFmpeg.

FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser 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

Definition at line 44 of file spvasm.h.

◆ COUNT_ARGS

#define COUNT_ARGS (   ...)    (COUNT_ARGS_IMPL(0, __VA_ARGS__) - 1)

Definition at line 45 of file spvasm.h.

◆ SPI_ARGS

#define SPI_ARGS (   ...)    ((int[]){0, __VA_ARGS__}) + 1, COUNT_ARGS(__VA_ARGS__)

Definition at line 50 of file spvasm.h.

◆ OP_1SRC

#define OP_1SRC (   name,
  code 
)
Value:
static inline void spi_ ## name(SPICtx *spi, int src1_id) \
{ \
spi_op_1src(spi, code, src1_id); \
}

Definition at line 149 of file spvasm.h.

◆ OP_UNTYPEDRES1SRC

#define OP_UNTYPEDRES1SRC (   name,
  code 
)
Value:
static inline int spi_ ## name(SPICtx *spi, int src1_id) \
{ \
return spi_op_untypedres_1src(spi, code, spi_get_id(spi), src1_id); \
}

Definition at line 164 of file spvasm.h.

◆ OP_RES1SRC

#define OP_RES1SRC (   name,
  code 
)
Value:
static inline int spi_ ## name(SPICtx *spi, int type_id, int src1_id) \
{ \
return spi_op_res_1src(spi, code, spi_get_id(spi), type_id, src1_id); \
}

Definition at line 180 of file spvasm.h.

◆ OP_2SRC

#define OP_2SRC (   name,
  code 
)
Value:
static inline void spi_ ## name(SPICtx *spi, int src1_id, int src2_id) \
{ \
spi_op_2src(spi, code, src1_id, src2_id); \
}

Definition at line 193 of file spvasm.h.

◆ OP_UNTYPEDRES2SRC

#define OP_UNTYPEDRES2SRC (   name,
  code 
)
Value:
static inline int spi_ ## name(SPICtx *spi, int src1_id, int src2_id) \
{ \
return spi_op_untypedres_2src(spi, code, spi_get_id(spi), \
src1_id, src2_id); \
}

Definition at line 209 of file spvasm.h.

◆ OP_RES2SRC

#define OP_RES2SRC (   name,
  code 
)
Value:
static inline int spi_ ## name(SPICtx *spi, int type_id, int src1_id, int src2_id) \
{ \
return spi_op_res_2src(spi, code, spi_get_id(spi), type_id, \
src1_id, src2_id); \
}

Definition at line 227 of file spvasm.h.

◆ spi_OpConstantComposite

#define spi_OpConstantComposite (   spi,
  res_type,
  src,
  ... 
)
Value:
spi_op_res_1src_list(spi, 44, spi_get_id(spi), res_type, src, \
SPI_ARGS(__VA_ARGS__))

Definition at line 307 of file spvasm.h.

◆ spi_OpAccessChain

#define spi_OpAccessChain (   spi,
  res_type,
  ptr_id,
  ... 
)
Value:
spi_op_res_1src_list(spi, 65, spi_get_id(spi), res_type, ptr_id, \
SPI_ARGS(__VA_ARGS__))

Definition at line 311 of file spvasm.h.

◆ spi_OpCompositeConstruct

#define spi_OpCompositeConstruct (   spi,
  res_type,
  src,
  ... 
)
Value:
spi_op_res_1src_list(spi, 80, spi_get_id(spi), res_type, src, \
SPI_ARGS(__VA_ARGS__))

Definition at line 315 of file spvasm.h.

◆ spi_OpCompositeExtract

#define spi_OpCompositeExtract (   spi,
  res_type,
  src,
  ... 
)
Value:
spi_op_res_1src_list(spi, 81, spi_get_id(spi), res_type, src, \
SPI_ARGS(__VA_ARGS__))

Definition at line 319 of file spvasm.h.

◆ spi_OpExtInst

#define spi_OpExtInst (   spi,
  res_type,
  instr_id,
  set_id,
  ... 
)
Value:
spi_op_res_2src_list(spi, 12, spi_get_id(spi), res_type, instr_id, set_id, \
SPI_ARGS(__VA_ARGS__))

Definition at line 347 of file spvasm.h.

◆ spi_OpTypeStruct

#define spi_OpTypeStruct (   spi,
  id,
  ... 
)
Value:
spi_op_untypedres_list(spi, 30, id, \
SPI_ARGS(__VA_ARGS__))

Definition at line 351 of file spvasm.h.

◆ spi_OpDecorate

#define spi_OpDecorate (   spi,
  target,
  deco,
  ... 
)
Value:
spi_op_2src_list(spi, 71, target, deco, \
SPI_ARGS(__VA_ARGS__))

Definition at line 355 of file spvasm.h.

◆ spi_OpMemberDecorate

#define spi_OpMemberDecorate (   spi,
  type,
  target,
  deco,
  ... 
)
Value:
spi_op_3src_list(spi, 72, type, target, deco, \
SPI_ARGS(__VA_ARGS__))

Definition at line 359 of file spvasm.h.

◆ spi_OpVectorShuffle

#define spi_OpVectorShuffle (   spi,
  res_type,
  src1,
  src2,
  ... 
)
Value:
spi_op_res_2src_list(spi, 79, spi_get_id(spi), res_type, src1, src2, \
SPI_ARGS(__VA_ARGS__))

Definition at line 363 of file spvasm.h.

◆ spi_OpCompositeInsert

#define spi_OpCompositeInsert (   spi,
  res_type,
  src1,
  src2,
  ... 
)
Value:
spi_op_res_2src_list(spi, 82, spi_get_id(spi), res_type, src1, src2, \
SPI_ARGS(__VA_ARGS__))

Definition at line 367 of file spvasm.h.

Function Documentation

◆ spi_write_u32()

static void spi_write_u32 ( SPICtx spi,
uint32_t  v 
)
inlinestatic

◆ spi_put_str()

static void spi_put_str ( SPICtx spi,
const char *  str 
)
static

Definition at line 72 of file spvasm.h.

Referenced by spi_OpEntryPoint(), spi_OpExtension(), spi_OpExtInstImport(), and spi_OpName().

◆ spi_init()

static void spi_init ( SPICtx spi,
uint8_t *  spv_buf,
int  buf_len 
)
inlinestatic

Definition at line 86 of file spvasm.h.

◆ spi_end()

static int spi_end ( SPICtx spi)
inlinestatic

Definition at line 100 of file spvasm.h.

◆ spi_reserve()

static int spi_reserve ( SPICtx spi,
int  len 
)
inlinestatic

Definition at line 108 of file spvasm.h.

◆ spi_OpCapability()

static void spi_OpCapability ( SPICtx spi,
SpvCapability  capability 
)
inlinestatic

Definition at line 119 of file spvasm.h.

◆ spi_OpMemoryModel()

static void spi_OpMemoryModel ( SPICtx spi,
SpvAddressingModel  addressing_model,
SpvMemoryModel  memory_model 
)
inlinestatic

Definition at line 125 of file spvasm.h.

◆ spi_get_id()

static int spi_get_id ( SPICtx spi)
static

◆ spi_strl()

static int spi_strl ( const char *  str)
static

Definition at line 138 of file spvasm.h.

Referenced by spi_OpEntryPoint(), spi_OpExtension(), spi_OpExtInstImport(), and spi_OpName().

◆ spi_op_1src()

static void spi_op_1src ( SPICtx spi,
int  code,
int  src1_id 
)
inlinestatic

Definition at line 144 of file spvasm.h.

◆ spi_op_untypedres_1src()

static int spi_op_untypedres_1src ( SPICtx spi,
int  code,
int  id,
int  src1_id 
)
inlinestatic

Definition at line 156 of file spvasm.h.

◆ spi_op_res_1src()

static int spi_op_res_1src ( SPICtx spi,
int  code,
int  id,
int  type_id,
int  src1_id 
)
inlinestatic

Definition at line 171 of file spvasm.h.

◆ spi_op_2src()

static void spi_op_2src ( SPICtx spi,
int  code,
int  src1_id,
int  src2_id 
)
inlinestatic

Definition at line 187 of file spvasm.h.

◆ spi_op_untypedres_2src()

static int spi_op_untypedres_2src ( SPICtx spi,
int  code,
int  id,
int  src1_id,
int  src2_id 
)
inlinestatic

Definition at line 200 of file spvasm.h.

◆ spi_op_res_2src()

static int spi_op_res_2src ( SPICtx spi,
int  code,
int  id,
int  type_id,
int  src1_id,
int  src2_id 
)
inlinestatic

Definition at line 217 of file spvasm.h.

◆ spi_op_res_1src_list()

static int spi_op_res_1src_list ( SPICtx spi,
int  code,
int  id,
int  type_id,
int  src1_id,
const int *  args,
int  nb_args 
)
inlinestatic

Definition at line 235 of file spvasm.h.

◆ spi_op_untypedres_list()

static void spi_op_untypedres_list ( SPICtx spi,
int  code,
int  id,
const int *  args,
int  nb_args 
)
inlinestatic

Definition at line 248 of file spvasm.h.

◆ spi_op_2src_list()

static void spi_op_2src_list ( SPICtx spi,
int  code,
int  src1_id,
int  src2_id,
const int *  args,
int  nb_args 
)
inlinestatic

Definition at line 258 of file spvasm.h.

◆ spi_op_res_2src_list()

static int spi_op_res_2src_list ( SPICtx spi,
int  code,
int  id,
int  type_id,
int  src1_id,
int  src2_id,
const int *  args,
int  nb_args 
)
inlinestatic

Definition at line 270 of file spvasm.h.

◆ spi_op_3src_list()

static void spi_op_3src_list ( SPICtx spi,
int  code,
int  src1_id,
int  src2_id,
int  src3_id,
const int *  args,
int  nb_args 
)
inlinestatic

Definition at line 285 of file spvasm.h.

◆ spi_OpEntryPoint()

static int spi_OpEntryPoint ( SPICtx spi,
SpvExecutionModel  execution_model,
const char *  name,
const int *  args,
int  nb_args 
)
inlinestatic

Definition at line 371 of file spvasm.h.

◆ spi_OpName()

static void spi_OpName ( SPICtx spi,
int  target_id,
const char *  name 
)
inlinestatic

Definition at line 383 of file spvasm.h.

◆ spi_OpExtension()

static void spi_OpExtension ( SPICtx spi,
const char *  name 
)
inlinestatic

Definition at line 390 of file spvasm.h.

◆ spi_OpExtInstImport()

static int spi_OpExtInstImport ( SPICtx spi,
const char *  name 
)
inlinestatic

Definition at line 396 of file spvasm.h.

◆ spi_OpExecutionMode()

static void spi_OpExecutionMode ( SPICtx spi,
int  entry_point_id,
SpvExecutionMode  mode,
int *  s,
int  nb_s 
)
inlinestatic

Definition at line 404 of file spvasm.h.

◆ spi_OpUndef()

static int spi_OpUndef ( SPICtx spi,
int  type_id 
)
inlinestatic

Definition at line 414 of file spvasm.h.

◆ spi_OpTypeVoid()

static int spi_OpTypeVoid ( SPICtx spi)
inlinestatic

Definition at line 422 of file spvasm.h.

◆ spi_OpTypeBool()

static int spi_OpTypeBool ( SPICtx spi)
inlinestatic

Definition at line 429 of file spvasm.h.

◆ spi_OpTypeFloatEnc()

static int spi_OpTypeFloatEnc ( SPICtx spi,
int  width,
SpvFPEncoding  floating_point_encoding 
)
inlinestatic

Definition at line 442 of file spvasm.h.

◆ spi_OpTypeImage()

static int spi_OpTypeImage ( SPICtx spi,
int  sampled_type_id,
SpvDim  dim,
int  depth,
int  arrayed,
int  ms,
int  sampled,
SpvImageFormat  image_format 
)
inlinestatic

Definition at line 452 of file spvasm.h.

◆ spi_OpTypeArray()

static int spi_OpTypeArray ( SPICtx spi,
int  element_type_id,
int  id,
int  length_id 
)
inlinestatic

Definition at line 469 of file spvasm.h.

◆ spi_OpTypeRuntimeArray()

static int spi_OpTypeRuntimeArray ( SPICtx spi,
int  element_type_id 
)
inlinestatic

Definition at line 479 of file spvasm.h.

◆ spi_OpTypePointer()

static int spi_OpTypePointer ( SPICtx spi,
SpvStorageClass  storage_class,
int  type_id 
)
inlinestatic

Definition at line 487 of file spvasm.h.

◆ spi_OpTypeFunction()

static int spi_OpTypeFunction ( SPICtx spi,
int  return_type_id,
const int *  args,
int  nb_args 
)
inlinestatic

Definition at line 497 of file spvasm.h.

◆ spi_OpFunction()

static void spi_OpFunction ( SPICtx spi,
int  fn_id,
int  result_type_id,
SpvFunctionControlMask  function_control,
int  function_type_id 
)
inlinestatic

Definition at line 508 of file spvasm.h.

◆ spi_OpLabel()

static int spi_OpLabel ( SPICtx spi,
int  label_id 
)
inlinestatic

Definition at line 519 of file spvasm.h.

◆ spi_OpReturn()

static void spi_OpReturn ( SPICtx spi)
inlinestatic

Definition at line 526 of file spvasm.h.

◆ spi_OpFunctionEnd()

static void spi_OpFunctionEnd ( SPICtx spi)
inlinestatic

Definition at line 531 of file spvasm.h.

◆ spi_OpVariable()

static int spi_OpVariable ( SPICtx spi,
int  var_id,
int  ptr_type_id,
SpvStorageClass  storage_class,
int  initializer_id 
)
inlinestatic

Definition at line 536 of file spvasm.h.

◆ spi_OpConstantTrue()

static int spi_OpConstantTrue ( SPICtx spi)
inlinestatic

Definition at line 548 of file spvasm.h.

◆ spi_OpConstantFalse()

static int spi_OpConstantFalse ( SPICtx spi)
inlinestatic

Definition at line 556 of file spvasm.h.

◆ spi_OpConstantUInt()

static int spi_OpConstantUInt ( SPICtx spi,
int  type_id,
uint32_t  val 
)
inlinestatic

Definition at line 564 of file spvasm.h.

Referenced by spi_OpConstantFloat(), and spi_OpConstantInt().

◆ spi_OpConstantUInt64()

static int spi_OpConstantUInt64 ( SPICtx spi,
int  type_id,
uint64_t  val 
)
inlinestatic

Definition at line 573 of file spvasm.h.

Referenced by spi_OpConstantDouble(), and spi_OpConstantInt64().

◆ spi_OpConstantInt()

static int spi_OpConstantInt ( SPICtx spi,
int  type_id,
int  val 
)
inlinestatic

Definition at line 583 of file spvasm.h.

◆ spi_OpConstantInt64()

static int spi_OpConstantInt64 ( SPICtx spi,
int  type_id,
int64_t  val 
)
inlinestatic

Definition at line 589 of file spvasm.h.

◆ spi_OpConstantFloat()

static int spi_OpConstantFloat ( SPICtx spi,
int  type_id,
float  val 
)
inlinestatic

Definition at line 595 of file spvasm.h.

◆ spi_OpConstantDouble()

static int spi_OpConstantDouble ( SPICtx spi,
int  type_id,
double  val 
)
inlinestatic

Definition at line 601 of file spvasm.h.

◆ spi_OpLoad()

static int spi_OpLoad ( SPICtx spi,
int  result_type_id,
int  ptr_id,
SpvMemoryAccessMask  memory_access,
int  align 
)
inlinestatic

Definition at line 607 of file spvasm.h.

◆ spi_OpStore()

static void spi_OpStore ( SPICtx spi,
int  ptr_id,
int  obj_id,
SpvMemoryAccessMask  memory_access,
int  align 
)
inlinestatic

Definition at line 621 of file spvasm.h.

◆ spi_OpSelectionMerge()

static void spi_OpSelectionMerge ( SPICtx spi,
int  merge_block,
SpvSelectionControlMask  selection_control 
)
inlinestatic

Definition at line 633 of file spvasm.h.

◆ spi_OpBranchConditional()

static void spi_OpBranchConditional ( SPICtx spi,
int  cond_id,
int  true_label,
int  false_label,
uint32_t  branch_weights 
)
inlinestatic

Definition at line 641 of file spvasm.h.

◆ spi_OpImageRead()

static int spi_OpImageRead ( SPICtx spi,
int  result_type_id,
int  img_id,
int  pos_id,
SpvImageOperandsMask  image_operands 
)
inlinestatic

Definition at line 655 of file spvasm.h.

◆ spi_OpImageWrite()

static void spi_OpImageWrite ( SPICtx spi,
int  img_id,
int  pos_id,
int  src_id,
SpvImageOperandsMask  image_operands 
)
inlinestatic

Definition at line 668 of file spvasm.h.

name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
spi_op_2src_list
static void spi_op_2src_list(SPICtx *spi, int code, int src1_id, int src2_id, const int *args, int nb_args)
Definition: spvasm.h:258
SPI_ARGS
#define SPI_ARGS(...)
Definition: spvasm.h:50
src1
const pixel * src1
Definition: h264pred_template.c:420
spi_op_res_1src
static int spi_op_res_1src(SPICtx *spi, int code, int id, int type_id, int src1_id)
Definition: spvasm.h:171
SPICtx
Definition: spvasm.h:52
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition: writing_filters.txt:86
spi_op_untypedres_list
static void spi_op_untypedres_list(SPICtx *spi, int code, int id, const int *args, int nb_args)
Definition: spvasm.h:248
spi_op_untypedres_1src
static int spi_op_untypedres_1src(SPICtx *spi, int code, int id, int src1_id)
Definition: spvasm.h:156
spi_get_id
static int spi_get_id(SPICtx *spi)
Definition: spvasm.h:133
code
and forward the test the status of outputs and forward it to the corresponding return FFERROR_NOT_READY If the filters stores internally one or a few frame for some it can consider them to be part of the FIFO and delay acknowledging a status change accordingly Example code
Definition: filter_design.txt:178
src2
const pixel * src2
Definition: h264pred_template.c:421
spi_op_untypedres_2src
static int spi_op_untypedres_2src(SPICtx *spi, int code, int id, int src1_id, int src2_id)
Definition: spvasm.h:200
spi_op_3src_list
static void spi_op_3src_list(SPICtx *spi, int code, int src1_id, int src2_id, int src3_id, const int *args, int nb_args)
Definition: spvasm.h:285
spi_op_res_1src_list
static int spi_op_res_1src_list(SPICtx *spi, int code, int id, int type_id, int src1_id, const int *args, int nb_args)
Definition: spvasm.h:235
spi_op_res_2src
static int spi_op_res_2src(SPICtx *spi, int code, int id, int type_id, int src1_id, int src2_id)
Definition: spvasm.h:217
spi_op_res_2src_list
static int spi_op_res_2src_list(SPICtx *spi, int code, int id, int type_id, int src1_id, int src2_id, const int *args, int nb_args)
Definition: spvasm.h:270
src
#define src
Definition: vp8dsp.c:248