FFmpeg
Macros | Functions
mpegvideoenc_template.c File Reference
#include <stdint.h>
#include "libavutil/internal.h"
#include "libavutil/mem_internal.h"
#include "libavutil/x86/asm.h"
#include "libavcodec/mpegutils.h"
#include "libavcodec/mpegvideoenc.h"
#include "fdct.h"

Go to the source code of this file.

Macros

#define SPREADW(a)
 
#define PMAX(a, b)
 
#define SAVE_SIGN(a, b)
 
#define RESTORE_SIGN(a, b)
 

Functions

static int dct_quantize_TMPL (MPVEncContext *const s, int16_t *block, int n, int qscale, int *overflow)
 

Macro Definition Documentation

◆ SPREADW

#define SPREADW (   a)
Value:
"pshuflw $0, "a", "a" \n\t"\
"punpcklwd "a", "a" \n\t"

Definition at line 38 of file mpegvideoenc_template.c.

◆ PMAX

#define PMAX (   a,
  b 
)
Value:
"movhlps "a", "b" \n\t"\
"pmaxsw "b", "a" \n\t"\
"pshuflw $0x0E, "a", "b" \n\t"\
"pmaxsw "b", "a" \n\t"\
"pshuflw $0x01, "a", "b" \n\t"\
"pmaxsw "b", "a" \n\t"

Definition at line 41 of file mpegvideoenc_template.c.

◆ SAVE_SIGN

#define SAVE_SIGN (   a,
  b 
)
Value:
"pxor "a", "a" \n\t"\
"pcmpgtw "b", "a" \n\t" /* block[i] <= 0 ? 0xFF : 0x00 */\
"pxor "a", "b" \n\t"\
"psubw "a", "b" \n\t" /* ABS(block[i]) */

Definition at line 56 of file mpegvideoenc_template.c.

◆ RESTORE_SIGN

#define RESTORE_SIGN (   a,
  b 
)
Value:
"pxor "a", "b" \n\t"\
"psubw "a", "b" \n\t"

Definition at line 61 of file mpegvideoenc_template.c.

Function Documentation

◆ dct_quantize_TMPL()

static int dct_quantize_TMPL ( MPVEncContext *const  s,
int16_t *  block,
int  n,
int  qscale,
int *  overflow 
)
static

Definition at line 66 of file mpegvideoenc_template.c.

b
#define b
Definition: input.c:42
a
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
Definition: undefined.txt:41