FFmpeg
Data Structures | Macros | Functions | Variables
avisynth.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/internal.h"
#include "libavcodec/internal.h"
#include "avformat.h"
#include "internal.h"
#include "config.h"
#include <dlfcn.h>
#include <avisynth/avisynth_c.h>

Go to the source code of this file.

Data Structures

struct  AviSynthLibrary
 
struct  AviSynthContext
 

Macros

#define AVSC_NO_DECLSPEC
 
#define AVISYNTH_NAME   "libavisynth"
 
#define AVISYNTH_LIB   AVISYNTH_NAME SLIBSUF
 
#define AVSC_DECLARE_FUNC(name)   name ## _func name
 
#define LOAD_AVS_FUNC(name, continue_on_fail)
 

Functions

static av_cold void avisynth_atexit_handler (void)
 
static av_cold int avisynth_load_library (void)
 
static av_cold int avisynth_context_create (AVFormatContext *s)
 
static av_cold void avisynth_context_destroy (AviSynthContext *avs)
 
static int avisynth_create_stream_video (AVFormatContext *s, AVStream *st)
 
static int avisynth_create_stream_audio (AVFormatContext *s, AVStream *st)
 
static int avisynth_create_stream (AVFormatContext *s)
 
static int avisynth_open_file (AVFormatContext *s)
 
static void avisynth_next_stream (AVFormatContext *s, AVStream **st, AVPacket *pkt, int *discard)
 
static int avisynth_read_packet_video (AVFormatContext *s, AVPacket *pkt, int discard)
 
static int avisynth_read_packet_audio (AVFormatContext *s, AVPacket *pkt, int discard)
 
static av_cold int avisynth_read_header (AVFormatContext *s)
 
static int avisynth_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static av_cold int avisynth_read_close (AVFormatContext *s)
 
static int avisynth_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 

Variables

static const int avs_planes_packed [1] = { 0 }
 
static const int avs_planes_grey [1] = { AVS_PLANAR_Y }
 
static const int avs_planes_yuv [3]
 
static const int avs_planes_rgb [3]
 
static const int avs_planes_yuva [4]
 
static const int avs_planes_rgba [4]
 
static AviSynthLibrary avs_library
 
static int avs_atexit_called = 0
 
static AviSynthContextavs_ctx_list = NULL
 
AVInputFormat ff_avisynth_demuxer
 

Macro Definition Documentation

◆ AVSC_NO_DECLSPEC

#define AVSC_NO_DECLSPEC

Definition at line 32 of file avisynth.c.

◆ AVISYNTH_NAME

#define AVISYNTH_NAME   "libavisynth"

Definition at line 41 of file avisynth.c.

◆ AVISYNTH_LIB

#define AVISYNTH_LIB   AVISYNTH_NAME SLIBSUF

Definition at line 42 of file avisynth.c.

◆ AVSC_DECLARE_FUNC

#define AVSC_DECLARE_FUNC (   name)    name ## _func name

Definition at line 49 of file avisynth.c.

◆ LOAD_AVS_FUNC

#define LOAD_AVS_FUNC (   name,
  continue_on_fail 
)
Value:
avs_library.name = (name ## _func) \
dlsym(avs_library.library, #name); \
if (!continue_on_fail && !avs_library.name) \
goto fail;

Function Documentation

◆ avisynth_atexit_handler()

static av_cold void avisynth_atexit_handler ( void  )
static

Definition at line 212 of file avisynth.c.

Referenced by avisynth_load_library().

◆ avisynth_load_library()

static av_cold int avisynth_load_library ( void  )
static

Definition at line 114 of file avisynth.c.

Referenced by avisynth_context_create().

◆ avisynth_context_create()

static av_cold int avisynth_context_create ( AVFormatContext s)
static

Definition at line 160 of file avisynth.c.

Referenced by avisynth_open_file().

◆ avisynth_context_destroy()

static av_cold void avisynth_context_destroy ( AviSynthContext avs)
static

Definition at line 188 of file avisynth.c.

Referenced by avisynth_atexit_handler(), avisynth_open_file(), and avisynth_read_close().

◆ avisynth_create_stream_video()

static int avisynth_create_stream_video ( AVFormatContext s,
AVStream st 
)
static

Definition at line 227 of file avisynth.c.

Referenced by avisynth_create_stream().

◆ avisynth_create_stream_audio()

static int avisynth_create_stream_audio ( AVFormatContext s,
AVStream st 
)
static

Definition at line 482 of file avisynth.c.

Referenced by avisynth_create_stream().

◆ avisynth_create_stream()

static int avisynth_create_stream ( AVFormatContext s)
static

Definition at line 517 of file avisynth.c.

Referenced by avisynth_open_file().

◆ avisynth_open_file()

static int avisynth_open_file ( AVFormatContext s)
static

Definition at line 543 of file avisynth.c.

Referenced by avisynth_read_header().

◆ avisynth_next_stream()

static void avisynth_next_stream ( AVFormatContext s,
AVStream **  st,
AVPacket pkt,
int discard 
)
static

Definition at line 604 of file avisynth.c.

Referenced by avisynth_read_packet().

◆ avisynth_read_packet_video()

static int avisynth_read_packet_video ( AVFormatContext s,
AVPacket pkt,
int  discard 
)
static

Definition at line 622 of file avisynth.c.

Referenced by avisynth_read_packet().

◆ avisynth_read_packet_audio()

static int avisynth_read_packet_audio ( AVFormatContext s,
AVPacket pkt,
int  discard 
)
static

Definition at line 711 of file avisynth.c.

Referenced by avisynth_read_packet().

◆ avisynth_read_header()

static av_cold int avisynth_read_header ( AVFormatContext s)
static

Definition at line 778 of file avisynth.c.

◆ avisynth_read_packet()

static int avisynth_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 795 of file avisynth.c.

◆ avisynth_read_close()

static av_cold int avisynth_read_close ( AVFormatContext s)
static

Definition at line 825 of file avisynth.c.

◆ avisynth_read_seek()

static int avisynth_read_seek ( AVFormatContext s,
int  stream_index,
int64_t  timestamp,
int  flags 
)
static

Definition at line 835 of file avisynth.c.

Variable Documentation

◆ avs_planes_packed

const int avs_planes_packed[1] = { 0 }
static

Definition at line 93 of file avisynth.c.

Referenced by avisynth_create_stream_video().

◆ avs_planes_grey

const int avs_planes_grey[1] = { AVS_PLANAR_Y }
static

Definition at line 94 of file avisynth.c.

Referenced by avisynth_create_stream_video().

◆ avs_planes_yuv

const int avs_planes_yuv[3]
static
Initial value:
= { AVS_PLANAR_Y, AVS_PLANAR_U,
AVS_PLANAR_V }

Definition at line 95 of file avisynth.c.

Referenced by avisynth_create_stream_video().

◆ avs_planes_rgb

const int avs_planes_rgb[3]
static
Initial value:
= { AVS_PLANAR_G, AVS_PLANAR_B,
AVS_PLANAR_R }

Definition at line 97 of file avisynth.c.

Referenced by avisynth_create_stream_video().

◆ avs_planes_yuva

const int avs_planes_yuva[4]
static
Initial value:
= { AVS_PLANAR_Y, AVS_PLANAR_U,
AVS_PLANAR_V, AVS_PLANAR_A }

Definition at line 99 of file avisynth.c.

Referenced by avisynth_create_stream_video().

◆ avs_planes_rgba

const int avs_planes_rgba[4]
static
Initial value:
= { AVS_PLANAR_G, AVS_PLANAR_B,
AVS_PLANAR_R, AVS_PLANAR_A }

Definition at line 101 of file avisynth.c.

Referenced by avisynth_create_stream_video().

◆ avs_library

AviSynthLibrary avs_library
static

◆ avs_atexit_called

int avs_atexit_called = 0
static

Definition at line 107 of file avisynth.c.

Referenced by avisynth_atexit_handler(), and avisynth_context_destroy().

◆ avs_ctx_list

AviSynthContext* avs_ctx_list = NULL
static

◆ ff_avisynth_demuxer

AVInputFormat ff_avisynth_demuxer
Initial value:
= {
.name = "avisynth",
.long_name = NULL_IF_CONFIG_SMALL("AviSynth script"),
.priv_data_size = sizeof(AviSynthContext),
.extensions = "avs",
}

Definition at line 874 of file avisynth.c.

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
avisynth_read_seek
static int avisynth_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: avisynth.c:835
avisynth_read_packet
static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: avisynth.c:795
AviSynthLibrary::library
void * library
Definition: avisynth.c:48
fail
#define fail()
Definition: checkasm.h:123
read_seek
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition: libcdio.c:153
read_close
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
avisynth_read_close
static av_cold int avisynth_read_close(AVFormatContext *s)
Definition: avisynth.c:825
read_header
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:527
avisynth_read_header
static av_cold int avisynth_read_header(AVFormatContext *s)
Definition: avisynth.c:778
avs_library
static AviSynthLibrary avs_library
Definition: avisynth.c:106
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:188
AviSynthContext
Definition: avisynth.c:74
read_packet
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_reading.c:42