FFmpeg
|
#include <errno.h>
#include <inttypes.h>
#include <limits.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "attributes.h"
#include "macros.h"
#include "version.h"
#include "config.h"
#include "intmath.h"
#include "mem.h"
#include "internal.h"
Go to the source code of this file.
Macros | |
#define | RSHIFT(a, b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) |
#define | ROUNDED_DIV(a, b) (((a)>=0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) |
#define | AV_CEIL_RSHIFT(a, b) |
#define | FF_CEIL_RSHIFT AV_CEIL_RSHIFT |
#define | FFUDIV(a, b) (((a)>0 ?(a):(a)-(b)+1) / (b)) |
#define | FFUMOD(a, b) ((a)-(b)*FFUDIV(a,b)) |
#define | FFABS(a) ((a) >= 0 ? (a) : (-(a))) |
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable as absolute values of their type. More... | |
#define | FFSIGN(a) ((a) > 0 ? 1 : -1) |
#define | FFNABS(a) ((a) <= 0 ? (a) : (-(a))) |
Negative Absolute value. More... | |
#define | FFABSU(a) ((a) <= 0 ? -(unsigned)(a) : (unsigned)(a)) |
Unsigned Absolute value. More... | |
#define | FFABS64U(a) ((a) <= 0 ? -(uint64_t)(a) : (uint64_t)(a)) |
#define | av_ceil_log2 av_ceil_log2_c |
#define | av_clip av_clip_c |
#define | av_clip64 av_clip64_c |
#define | av_clip_uint8 av_clip_uint8_c |
#define | av_clip_int8 av_clip_int8_c |
#define | av_clip_uint16 av_clip_uint16_c |
#define | av_clip_int16 av_clip_int16_c |
#define | av_clipl_int32 av_clipl_int32_c |
#define | av_clip_intp2 av_clip_intp2_c |
#define | av_clip_uintp2 av_clip_uintp2_c |
#define | av_mod_uintp2 av_mod_uintp2_c |
#define | av_sat_add32 av_sat_add32_c |
#define | av_sat_dadd32 av_sat_dadd32_c |
#define | av_sat_sub32 av_sat_sub32_c |
#define | av_sat_dsub32 av_sat_dsub32_c |
#define | av_sat_add64 av_sat_add64_c |
#define | av_sat_sub64 av_sat_sub64_c |
#define | av_clipf av_clipf_c |
#define | av_clipd av_clipd_c |
#define | av_popcount av_popcount_c |
#define | av_popcount64 av_popcount64_c |
#define | av_parity av_parity_c |
#define | GET_UTF8(val, GET_BYTE, ERROR) |
Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. More... | |
#define | GET_UTF16(val, GET_16BIT, ERROR) |
Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form. More... | |
#define | PUT_UTF8(val, tmp, PUT_BYTE) |
#define | PUT_UTF16(val, tmp, PUT_16BIT) |
Functions | |
static av_always_inline av_const int | av_clip_c (int a, int amin, int amax) |
Clip a signed integer value into the amin-amax range. More... | |
static av_always_inline av_const int64_t | av_clip64_c (int64_t a, int64_t amin, int64_t amax) |
Clip a signed 64bit integer value into the amin-amax range. More... | |
static av_always_inline av_const uint8_t | av_clip_uint8_c (int a) |
Clip a signed integer value into the 0-255 range. More... | |
static av_always_inline av_const int8_t | av_clip_int8_c (int a) |
Clip a signed integer value into the -128,127 range. More... | |
static av_always_inline av_const uint16_t | av_clip_uint16_c (int a) |
Clip a signed integer value into the 0-65535 range. More... | |
static av_always_inline av_const int16_t | av_clip_int16_c (int a) |
Clip a signed integer value into the -32768,32767 range. More... | |
static av_always_inline av_const int32_t | av_clipl_int32_c (int64_t a) |
Clip a signed 64-bit integer value into the -2147483648,2147483647 range. More... | |
static av_always_inline av_const int | av_clip_intp2_c (int a, int p) |
Clip a signed integer into the -(2^p),(2^p-1) range. More... | |
static av_always_inline av_const unsigned | av_clip_uintp2_c (int a, int p) |
Clip a signed integer to an unsigned power of two range. More... | |
static av_always_inline av_const unsigned | av_mod_uintp2_c (unsigned a, unsigned p) |
Clear high bits from an unsigned integer starting with specific bit position. More... | |
static av_always_inline int | av_sat_add32_c (int a, int b) |
Add two signed 32-bit values with saturation. More... | |
static av_always_inline int | av_sat_dadd32_c (int a, int b) |
Add a doubled value to another value with saturation at both stages. More... | |
static av_always_inline int | av_sat_sub32_c (int a, int b) |
Subtract two signed 32-bit values with saturation. More... | |
static av_always_inline int | av_sat_dsub32_c (int a, int b) |
Subtract a doubled value from another value with saturation at both stages. More... | |
static av_always_inline int64_t | av_sat_add64_c (int64_t a, int64_t b) |
Add two signed 64-bit values with saturation. More... | |
static av_always_inline int64_t | av_sat_sub64_c (int64_t a, int64_t b) |
Subtract two signed 64-bit values with saturation. More... | |
static av_always_inline av_const float | av_clipf_c (float a, float amin, float amax) |
Clip a float value into the amin-amax range. More... | |
static av_always_inline av_const double | av_clipd_c (double a, double amin, double amax) |
Clip a double value into the amin-amax range. More... | |
static av_always_inline av_const int | av_ceil_log2_c (int x) |
Compute ceil(log2(x)). More... | |
static av_always_inline av_const int | av_popcount_c (uint32_t x) |
Count number of bits set to one in x. More... | |
static av_always_inline av_const int | av_popcount64_c (uint64_t x) |
Count number of bits set to one in x. More... | |
static av_always_inline av_const int | av_parity_c (uint32_t v) |
common internal and external API header
Definition in file common.h.
#define FF_CEIL_RSHIFT AV_CEIL_RSHIFT |
#define av_ceil_log2 av_ceil_log2_c |
#define av_clip64 av_clip64_c |
#define av_clip_uint8 av_clip_uint8_c |
#define av_clip_int8 av_clip_int8_c |
#define av_clip_uint16 av_clip_uint16_c |
#define av_clip_int16 av_clip_int16_c |
#define av_clipl_int32 av_clipl_int32_c |
#define av_clip_intp2 av_clip_intp2_c |
#define av_clip_uintp2 av_clip_uintp2_c |
#define av_mod_uintp2 av_mod_uintp2_c |
#define av_sat_add32 av_sat_add32_c |
#define av_sat_dadd32 av_sat_dadd32_c |
#define av_sat_sub32 av_sat_sub32_c |
#define av_sat_dsub32 av_sat_dsub32_c |
#define av_sat_add64 av_sat_add64_c |
#define av_sat_sub64 av_sat_sub64_c |
#define av_clipf av_clipf_c |
#define av_clipd av_clipd_c |
#define av_popcount av_popcount_c |
#define av_popcount64 av_popcount64_c |
#define av_parity av_parity_c |
Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
val | Output value, must be an lvalue of type uint32_t. |
GET_BYTE | Expression reading one byte from the input. Evaluated up to 7 times (4 for the currently assigned Unicode range). With a memory buffer input, this could be *ptr++, or if you want to make sure that *ptr stops at the end of a NULL terminated string then *ptr ? *ptr++ : 0 |
ERROR | Expression to be evaluated on invalid input, typically a goto statement. |
Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.
val | Output value, must be an lvalue of type uint32_t. |
GET_16BIT | Expression returning two bytes of UTF-16 data converted to native byte order. Evaluated one or two times. |
ERROR | Expression to be evaluated on invalid input, typically a goto statement. |
Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
val | is an input-only argument and should be of type uint32_t. It holds a UCS-4 encoded Unicode character that is to be converted to UTF-8. If val is given as a function it is executed only once. |
tmp | is a temporary variable and should be of type uint8_t. It represents an intermediate value during conversion that is to be output by PUT_BYTE. |
PUT_BYTE | writes the converted UTF-8 bytes to any proper destination. It could be a function or a statement, and uses tmp as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be executed up to 4 times for values in the valid UTF-8 range and up to 7 times in the general case, depending on the length of the converted Unicode character. |
Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
val | is an input-only argument and should be of type uint32_t. It holds a UCS-4 encoded Unicode character that is to be converted to UTF-16. If val is given as a function it is executed only once. |
tmp | is a temporary variable and should be of type uint16_t. It represents an intermediate value during conversion that is to be output by PUT_16BIT. |
PUT_16BIT | writes the converted UTF-16 data to any proper destination in desired endianness. It could be a function or a statement, and uses tmp as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be executed 1 or 2 times depending on input character. |
|
static |
|
static |
|
static |
|
static |
Clip a signed integer value into the 0-65535 range.
a | value to clip |
Definition at line 228 of file common.h.
Referenced by dng_process_color16().
|
static |
|
static |
|
static |
|
static |
Clip a signed integer to an unsigned power of two range.
a | value to clip |
p | bit position to clip at |
Definition at line 276 of file common.h.
Referenced by amplify_frame(), cas_slice16(), color_balance16(), color_balance16_p(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcorrect_slice16(), do_output16(), export_row16(), filter(), filter_frame(), lerp16(), limitdiff16(), monochrome_slice16(), normalize(), parse_band_ext(), postprocess_chroma(), temperature_slice16(), temperature_slice16p(), vibrance_slice16(), vibrance_slice16p(), and write_words().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Compute ceil(log2(x)).
x | value used to compute ceil(log2(x)) |
Definition at line 418 of file common.h.
Referenced by config_input(), and hevc_parse_slice_header().
|
static |
|
static |
|
static |