Blender V4.3
ffmpeg_compat.h File Reference
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavutil/cpu.h>
#include <libswscale/swscale.h>

Go to the source code of this file.

Macros

#define FFMPEG_INLINE   static inline
 
#define FFMPEG_USE_OLD_CHANNEL_VARS
 
#define FFMPEG_SWSCALE_THREADING
 
#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)
 
FFMPEG_INLINE int64_t av_get_frame_duration_in_pts_units (const AVFrame *picture)
 
FFMPEG_INLINE size_t ffmpeg_get_buffer_alignment ()
 

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 40 of file ffmpeg_compat.h.

◆ FFMPEG_SWSCALE_THREADING

#define FFMPEG_SWSCALE_THREADING

Definition at line 60 of file ffmpeg_compat.h.

◆ FFMPEG_USE_DURATION_WORKAROUND

#define FFMPEG_USE_DURATION_WORKAROUND   1

Definition at line 76 of file ffmpeg_compat.h.

◆ FFMPEG_USE_OLD_CHANNEL_VARS

#define FFMPEG_USE_OLD_CHANNEL_VARS

Definition at line 55 of file ffmpeg_compat.h.

◆ MAX_NEG_CROP

#define MAX_NEG_CROP   1024

Definition at line 177 of file ffmpeg_compat.h.

Referenced by deinterlace_line(), and deinterlace_line_inplace().

◆ times256

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

Definition at line 180 of file ffmpeg_compat.h.

◆ times4

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

Definition at line 179 of file ffmpeg_compat.h.

Function Documentation

◆ av_get_frame_duration_in_pts_units()

FFMPEG_INLINE int64_t av_get_frame_duration_in_pts_units ( const AVFrame * picture)

Definition at line 143 of file ffmpeg_compat.h.

◆ av_get_pts_from_frame()

FFMPEG_INLINE int64_t av_get_pts_from_frame ( AVFrame * picture)

Definition at line 136 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 265 of file ffmpeg_compat.h.

References deinterlace_line(), 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 294 of file ffmpeg_compat.h.

References deinterlace_line_inplace(), 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 211 of file ffmpeg_compat.h.

References ff_compat_crop_tab, MAX_NEG_CROP, 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 239 of file ffmpeg_compat.h.

References ff_compat_crop_tab, MAX_NEG_CROP, and sum().

Referenced by deinterlace_bottom_field_inplace().

◆ ffmpeg_get_buffer_alignment()

FFMPEG_INLINE size_t ffmpeg_get_buffer_alignment ( )

Definition at line 152 of file ffmpeg_compat.h.

◆ my_guess_pkt_duration()

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

Definition at line 85 of file ffmpeg_compat.h.

References PRId64.

◆ timestamp_from_pts_or_dts()

FFMPEG_INLINE int64_t timestamp_from_pts_or_dts ( int64_t pts,
int64_t dts )

Definition at line 124 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 182 of file ffmpeg_compat.h.

Referenced by deinterlace_line(), and deinterlace_line_inplace().