Blender  V3.3
Macros | Functions
ffmpeg_compat.h File Reference
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>

Go to the source code of this file.

Macros

#define FFMPEG_INLINE   static inline
 
#define FFMPEG_USE_OLD_CHANNEL_VARS
 
#define FFMPEG_USE_DURATION_WORKAROUND   1
 

Functions

FFMPEG_INLINE void my_guess_pkt_duration (AVFormatContext *s, AVStream *st, AVPacket *pkt)
 
FFMPEG_INLINE int64_t timestamp_from_pts_or_dts (int64_t pts, int64_t dts)
 
FFMPEG_INLINE int64_t av_get_pts_from_frame (AVFrame *picture)
 

Deinterlace code block

NOTE: The code in this block are from FFmpeg 2.6.4, which is licensed by LGPL.

#define MAX_NEG_CROP   1024
 
#define times4(x)   x, x, x, x
 
#define times256(x)   times4(times4(times4(times4(times4(x)))))
 
static const uint8_t ff_compat_crop_tab [256+2 *MAX_NEG_CROP]
 
FFMPEG_INLINE void deinterlace_line (uint8_t *dst, const uint8_t *lum_m4, const uint8_t *lum_m3, const uint8_t *lum_m2, const uint8_t *lum_m1, const uint8_t *lum, int size)
 
FFMPEG_INLINE void deinterlace_line_inplace (uint8_t *lum_m4, uint8_t *lum_m3, uint8_t *lum_m2, uint8_t *lum_m1, uint8_t *lum, int size)
 
FFMPEG_INLINE void deinterlace_bottom_field (uint8_t *dst, int dst_wrap, const uint8_t *src1, int src_wrap, int width, int height)
 
FFMPEG_INLINE int deinterlace_bottom_field_inplace (uint8_t *src1, int src_wrap, int width, int height)
 
FFMPEG_INLINE int av_image_deinterlace (AVFrame *dst, const AVFrame *src, enum AVPixelFormat pix_fmt, int width, int height)
 

Detailed Description

Compatibility macros to make every FFMPEG installation appear like the most current installation (wrapping some functionality sometimes) it also includes all FFMPEG header files at once, no need to do it separately.

Definition in file ffmpeg_compat.h.

Macro Definition Documentation

◆ FFMPEG_INLINE

#define FFMPEG_INLINE   static inline

Definition at line 37 of file ffmpeg_compat.h.

◆ FFMPEG_USE_DURATION_WORKAROUND

#define FFMPEG_USE_DURATION_WORKAROUND   1

Definition at line 61 of file ffmpeg_compat.h.

◆ FFMPEG_USE_OLD_CHANNEL_VARS

#define FFMPEG_USE_OLD_CHANNEL_VARS

Definition at line 45 of file ffmpeg_compat.h.

◆ MAX_NEG_CROP

#define MAX_NEG_CROP   1024

Definition at line 132 of file ffmpeg_compat.h.

◆ times256

#define times256 (   x)    times4(times4(times4(times4(times4(x)))))

Definition at line 135 of file ffmpeg_compat.h.

◆ times4

#define times4 (   x)    x, x, x, x

Definition at line 134 of file ffmpeg_compat.h.

Function Documentation

◆ av_get_pts_from_frame()

FFMPEG_INLINE int64_t av_get_pts_from_frame ( AVFrame *  picture)

Definition at line 121 of file ffmpeg_compat.h.

References timestamp_from_pts_or_dts().

◆ av_image_deinterlace()

FFMPEG_INLINE int av_image_deinterlace ( AVFrame *  dst,
const AVFrame *  src,
enum AVPixelFormat  pix_fmt,
int  width,
int  height 
)

◆ deinterlace_bottom_field()

FFMPEG_INLINE void deinterlace_bottom_field ( uint8_t dst,
int  dst_wrap,
const uint8_t src1,
int  src_wrap,
int  width,
int  height 
)

Definition at line 220 of file ffmpeg_compat.h.

References deinterlace_line(), height, width, and y.

Referenced by av_image_deinterlace().

◆ deinterlace_bottom_field_inplace()

FFMPEG_INLINE int deinterlace_bottom_field_inplace ( uint8_t src1,
int  src_wrap,
int  width,
int  height 
)

Definition at line 249 of file ffmpeg_compat.h.

References deinterlace_line_inplace(), height, width, and y.

Referenced by av_image_deinterlace().

◆ deinterlace_line()

FFMPEG_INLINE void deinterlace_line ( uint8_t dst,
const uint8_t lum_m4,
const uint8_t lum_m3,
const uint8_t lum_m2,
const uint8_t lum_m1,
const uint8_t lum,
int  size 
)

Definition at line 166 of file ffmpeg_compat.h.

References ff_compat_crop_tab, MAX_NEG_CROP, size(), and sum().

Referenced by deinterlace_bottom_field().

◆ deinterlace_line_inplace()

FFMPEG_INLINE void deinterlace_line_inplace ( uint8_t lum_m4,
uint8_t lum_m3,
uint8_t lum_m2,
uint8_t lum_m1,
uint8_t lum,
int  size 
)

Definition at line 194 of file ffmpeg_compat.h.

References ff_compat_crop_tab, MAX_NEG_CROP, size(), and sum().

Referenced by deinterlace_bottom_field_inplace().

◆ my_guess_pkt_duration()

FFMPEG_INLINE void my_guess_pkt_duration ( AVFormatContext *  s,
AVStream *  st,
AVPacket *  pkt 
)

Definition at line 70 of file ffmpeg_compat.h.

References PRId64, and usdtokens::st().

◆ timestamp_from_pts_or_dts()

FFMPEG_INLINE int64_t timestamp_from_pts_or_dts ( int64_t  pts,
int64_t  dts 
)

Definition at line 109 of file ffmpeg_compat.h.

Referenced by av_get_pts_from_frame().

Variable Documentation

◆ ff_compat_crop_tab

const uint8_t ff_compat_crop_tab[256+2 *MAX_NEG_CROP]
static
Initial value:
= {
times256(0x00), 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22,
0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52,
0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E,
0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A,
0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82,
0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E,
0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A,
0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2,
0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE,
0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA,
0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2,
0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE,
0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA,
0xFB, 0xFC, 0xFD, 0xFE, 0xFF, times256(0xFF)}
#define times256(x)

Definition at line 137 of file ffmpeg_compat.h.

Referenced by deinterlace_line(), and deinterlace_line_inplace().