DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
cl_video_libavw.c File Reference
#include "quakedef.h"
#include "client.h"
#include "cl_video.h"
#include "cl_video_libavw.h"
+ Include dependency graph for cl_video_libavw.c:

Go to the source code of this file.

Data Structures

struct  libavwstream_t
 

Macros

#define LIBAVW_PIXEL_FORMAT_BGR   0
 
#define LIBAVW_PIXEL_FORMAT_BGRA   1
 
#define LIBAVW_PRINT_ERROR   2
 
#define LIBAVW_PRINT_FATAL   3
 
#define LIBAVW_PRINT_PANIC   4
 
#define LIBAVW_PRINT_WARNING   1
 
#define LIBAVW_SCALER_AREA   4
 
#define LIBAVW_SCALER_BICUBIC   1
 
#define LIBAVW_SCALER_BICUBLIN   5
 
#define LIBAVW_SCALER_BILINEAR   0
 
#define LIBAVW_SCALER_GAUSS   6
 
#define LIBAVW_SCALER_LANCZOS   8
 
#define LIBAVW_SCALER_POINT   3
 
#define LIBAVW_SCALER_SINC   7
 
#define LIBAVW_SCALER_SPLINE   9
 
#define LIBAVW_SCALER_X   2
 

Typedefs

typedef int avwCallbackIoRead(void *, uint8_t *, int)
 
typedef uint64_t avwCallbackIoSeek(void *, uint64_t, int)
 
typedef uint64_t avwCallbackIoSeekSize(void *)
 
typedef void avwCallbackPrint(int, const char *)
 

Functions

void libavw_close (void *stream)
 
void LibAvW_CloseLibrary (void)
 
static int libavw_decodeframe (void *stream, void *imagedata, unsigned int Rmask, unsigned int Gmask, unsigned int Bmask, unsigned int bytesperpixel, int imagebytesperrow)
 
static int LibAvW_FS_Read (void *opaque, uint8_t *buf, int buf_size)
 
static uint64_t LibAvW_FS_Seek (void *opaque, uint64_t pos, int whence)
 
static uint64_t LibAvW_FS_SeekSize (void *opaque)
 
double libavw_getaspectratio (void *stream)
 
double libavw_getframerate (void *stream)
 
unsigned int libavw_getheight (void *stream)
 
unsigned int libavw_getwidth (void *stream)
 
static void libavw_message (int level, const char *message)
 
qbool LibAvW_OpenLibrary (void)
 
voidLibAvW_OpenVideo (clvideo_t *video, char *filename, const char **errorstring)
 

Variables

cvar_t cl_video_libavw_minheight = {CF_ARCHIVE, "cl_video_libavw_minheight", "0", "if videos height is lesser than minimal, thay will be upscaled"}
 
cvar_t cl_video_libavw_minwidth = {CF_ARCHIVE, "cl_video_libavw_minwidth", "0", "if videos width is lesser than minimal, thay will be upscaled"}
 
cvar_t cl_video_libavw_scaler = {CF_ARCHIVE, "cl_video_libavw_scaler", "1", "selects a scaler for libavcode played videos. Scalers are: 0 - bilinear, 1 - bicubic, 2 - x, 3 - point, 4 - area, 5 - bicublin, 6 - gauss, 7 - sinc, 8 - lanczos, 9 - spline."}
 
const char * dllnames_libavw []
 
static dllhandle_t libavw_dll = NULL
 
const char * libavw_extensions []
 
static dllfunction_t libavwfuncs []
 
const char *(* qLibAvW_AvcVersion )(void)
 
int(* qLibAvW_CreateStream )(void **stream)
 
const char *(* qLibAvW_ErrorString )(int errorcode)
 
int(* qLibAvW_Init )(avwCallbackPrint *printfunction)
 
int(* qLibAvW_PlayGetFrameImage )(void *stream, int pixel_format, void *imagedata, int imagewidth, int imageheight, int scaler)
 
int(* qLibAvW_PlaySeekNextFrame )(void *stream)
 
int(* qLibAvW_PlayVideo )(void *stream, void *file, avwCallbackIoRead *IoRead, avwCallbackIoSeek *IoSeek, avwCallbackIoSeekSize *IoSeekSize)
 
void(* qLibAvW_RemoveStream )(void *stream)
 
int(* qLibAvW_StreamGetError )(void *stream)
 
double(* qLibAvW_StreamGetFramerate )(void *stream)
 
int(* qLibAvW_StreamGetVideoHeight )(void *stream)
 
int(* qLibAvW_StreamGetVideoWidth )(void *stream)
 
float(* qLibAvW_Version )(void)
 

Macro Definition Documentation

◆ LIBAVW_PIXEL_FORMAT_BGR

#define LIBAVW_PIXEL_FORMAT_BGR   0

Definition at line 43 of file cl_video_libavw.c.

Referenced by libavw_decodeframe().

◆ LIBAVW_PIXEL_FORMAT_BGRA

#define LIBAVW_PIXEL_FORMAT_BGRA   1

Definition at line 44 of file cl_video_libavw.c.

Referenced by libavw_decodeframe().

◆ LIBAVW_PRINT_ERROR

#define LIBAVW_PRINT_ERROR   2

Definition at line 47 of file cl_video_libavw.c.

Referenced by libavw_message().

◆ LIBAVW_PRINT_FATAL

#define LIBAVW_PRINT_FATAL   3

Definition at line 48 of file cl_video_libavw.c.

Referenced by libavw_message().

◆ LIBAVW_PRINT_PANIC

#define LIBAVW_PRINT_PANIC   4

Definition at line 49 of file cl_video_libavw.c.

◆ LIBAVW_PRINT_WARNING

#define LIBAVW_PRINT_WARNING   1

Definition at line 46 of file cl_video_libavw.c.

Referenced by libavw_message().

◆ LIBAVW_SCALER_AREA

#define LIBAVW_SCALER_AREA   4

Definition at line 36 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_BICUBIC

#define LIBAVW_SCALER_BICUBIC   1

Definition at line 33 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_BICUBLIN

#define LIBAVW_SCALER_BICUBLIN   5

Definition at line 37 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_BILINEAR

#define LIBAVW_SCALER_BILINEAR   0

Definition at line 32 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_GAUSS

#define LIBAVW_SCALER_GAUSS   6

Definition at line 38 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_LANCZOS

#define LIBAVW_SCALER_LANCZOS   8

Definition at line 40 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_POINT

#define LIBAVW_SCALER_POINT   3

Definition at line 35 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_SINC

#define LIBAVW_SCALER_SINC   7

Definition at line 39 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_SPLINE

#define LIBAVW_SCALER_SPLINE   9

Definition at line 41 of file cl_video_libavw.c.

◆ LIBAVW_SCALER_X

#define LIBAVW_SCALER_X   2

Definition at line 34 of file cl_video_libavw.c.

Typedef Documentation

◆ avwCallbackIoRead

typedef int avwCallbackIoRead(void *, uint8_t *, int)

Definition at line 52 of file cl_video_libavw.c.

◆ avwCallbackIoSeek

typedef uint64_t avwCallbackIoSeek(void *, uint64_t, int)

Definition at line 53 of file cl_video_libavw.c.

◆ avwCallbackIoSeekSize

typedef uint64_t avwCallbackIoSeekSize(void *)

Definition at line 54 of file cl_video_libavw.c.

◆ avwCallbackPrint

typedef void avwCallbackPrint(int, const char *)

Definition at line 51 of file cl_video_libavw.c.

Function Documentation

◆ libavw_close()

void libavw_close ( void * stream)

Definition at line 222 of file cl_video_libavw.c.

223{
224 libavwstream_t *s = (libavwstream_t *)stream;
225
226 if (s->stream)
228 s->stream = NULL;
229 if (s->file)
230 FS_Close(s->file);
231 s->file = NULL;
232 if (s->sndchan >= 0)
233 S_StopChannel(s->sndchan, true, true);
234 s->sndchan = -1;
235}
void(* qLibAvW_RemoveStream)(void *stream)
int FS_Close(qfile_t *file)
Definition fs.c:2970
#define NULL
Definition qtypes.h:12
void S_StopChannel(unsigned int channel_ind, qbool lockmutex, qbool freesfx)
Definition snd_main.c:1648

References libavwstream_t::file, FS_Close(), NULL, qLibAvW_RemoveStream, S_StopChannel(), libavwstream_t::sndchan, and libavwstream_t::stream.

Referenced by LibAvW_OpenVideo().

◆ LibAvW_CloseLibrary()

void LibAvW_CloseLibrary ( void )

Definition at line 385 of file cl_video_libavw.c.

386{
388}
static dllhandle_t libavw_dll
void Sys_FreeLibrary(dllhandle_t *handle)
Definition sys_shared.c:245

References libavw_dll, and Sys_FreeLibrary().

Referenced by CL_Video_Shutdown().

◆ libavw_decodeframe()

static int libavw_decodeframe ( void * stream,
void * imagedata,
unsigned int Rmask,
unsigned int Gmask,
unsigned int Bmask,
unsigned int bytesperpixel,
int imagebytesperrow )
static

Definition at line 160 of file cl_video_libavw.c.

161{
162 int pixel_format = LIBAVW_PIXEL_FORMAT_BGR;
163 int errorcode;
164
165 libavwstream_t *s = (libavwstream_t *)stream;
166
167 // start sound
168 if (!s->sndstarted)
169 {
170 if (s->sfx != NULL)
171 s->sndchan = S_StartSound(-1, 0, s->sfx, vec3_origin, 1.0f, 0);
172 s->sndstarted = 1;
173 }
174
175 // read frame
177 {
178 // got error or file end
179 errorcode = qLibAvW_StreamGetError(s->stream);
180 if (errorcode)
181 Con_Printf(CON_ERROR "LibAvW: %s\n", qLibAvW_ErrorString(errorcode));
182 return 1;
183 }
184
185 // decode into bgr texture
186 if (bytesperpixel == 4)
187 pixel_format = LIBAVW_PIXEL_FORMAT_BGRA;
188 else if (bytesperpixel == 3)
189 pixel_format = LIBAVW_PIXEL_FORMAT_BGR;
190 else
191 {
192 Con_Printf(CON_ERROR "LibAvW: cannot determine pixel format for bpp %i\n", bytesperpixel);
193 return 1;
194 }
197 return 0;
198}
#define LIBAVW_PIXEL_FORMAT_BGRA
int(* qLibAvW_StreamGetError)(void *stream)
cvar_t cl_video_libavw_scaler
const char *(* qLibAvW_ErrorString)(int errorcode)
#define LIBAVW_PIXEL_FORMAT_BGR
int(* qLibAvW_PlayGetFrameImage)(void *stream, int pixel_format, void *imagedata, int imagewidth, int imageheight, int scaler)
int(* qLibAvW_PlaySeekNextFrame)(void *stream)
void Con_Printf(const char *fmt,...)
Prints to all appropriate console targets.
Definition console.c:1514
#define CON_ERROR
Definition console.h:102
vec3_t vec3_origin
Definition mathlib.c:26
#define max(A, B)
Definition mathlib.h:38
#define min(A, B)
Definition mathlib.h:37
int S_StartSound(int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol, float attenuation)
S_StartSound returns the channel index, or -1 if an error occurred.
Definition snd_main.c:1643
int integer
Definition cvar.h:73
unsigned int info_imagewidth
unsigned int info_imageheight

References cl_video_libavw_scaler, CON_ERROR, Con_Printf(), libavwstream_t::info_imageheight, libavwstream_t::info_imagewidth, cvar_t::integer, LIBAVW_PIXEL_FORMAT_BGR, LIBAVW_PIXEL_FORMAT_BGRA, max, min, NULL, qLibAvW_ErrorString, qLibAvW_PlayGetFrameImage, qLibAvW_PlaySeekNextFrame, qLibAvW_StreamGetError, S_StartSound(), libavwstream_t::sfx, libavwstream_t::sndchan, libavwstream_t::sndstarted, libavwstream_t::stream, and vec3_origin.

Referenced by LibAvW_OpenVideo().

◆ LibAvW_FS_Read()

static int LibAvW_FS_Read ( void * opaque,
uint8_t * buf,
int buf_size )
static

Definition at line 238 of file cl_video_libavw.c.

239{
240 return FS_Read((qfile_t *)opaque, buf, buf_size);
241}
fs_offset_t FS_Read(qfile_t *file, void *buffer, size_t buffersize)
Definition fs.c:3066
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition glquake.h:657

References buf, and FS_Read().

Referenced by LibAvW_OpenVideo().

◆ LibAvW_FS_Seek()

static uint64_t LibAvW_FS_Seek ( void * opaque,
uint64_t pos,
int whence )
static

Definition at line 242 of file cl_video_libavw.c.

243{
244 return (uint64_t)FS_Seek((qfile_t *)opaque, pos, whence);
245}
int FS_Seek(qfile_t *file, fs_offset_t offset, int whence)
Definition fs.c:3359

References FS_Seek().

Referenced by LibAvW_OpenVideo().

◆ LibAvW_FS_SeekSize()

static uint64_t LibAvW_FS_SeekSize ( void * opaque)
static

Definition at line 246 of file cl_video_libavw.c.

247{
248 return (uint64_t)FS_FileSize((qfile_t *)opaque);
249}
fs_offset_t FS_FileSize(qfile_t *file)
Definition fs.c:3474

References FS_FileSize().

Referenced by LibAvW_OpenVideo().

◆ libavw_getaspectratio()

double libavw_getaspectratio ( void * stream)

Definition at line 216 of file cl_video_libavw.c.

217{
218 return ((libavwstream_t *)stream)->info_aspectratio;
219}

Referenced by LibAvW_OpenVideo().

◆ libavw_getframerate()

double libavw_getframerate ( void * stream)

Definition at line 211 of file cl_video_libavw.c.

212{
213 return ((libavwstream_t *)stream)->info_framerate;
214}

Referenced by LibAvW_OpenVideo().

◆ libavw_getheight()

unsigned int libavw_getheight ( void * stream)

Definition at line 206 of file cl_video_libavw.c.

207{
208 return ((libavwstream_t *)stream)->info_imageheight;
209}

Referenced by LibAvW_OpenVideo().

◆ libavw_getwidth()

unsigned int libavw_getwidth ( void * stream)

Definition at line 201 of file cl_video_libavw.c.

202{
203 return ((libavwstream_t *)stream)->info_imagewidth;
204}

Referenced by LibAvW_OpenVideo().

◆ libavw_message()

static void libavw_message ( int level,
const char * message )
static

Definition at line 346 of file cl_video_libavw.c.

347{
349 Con_Printf(CON_WARN "LibAvcodec warning: %s\n", message);
350 else if (level == LIBAVW_PRINT_ERROR)
351 Con_Printf(CON_ERROR "LibAvcodec error: %s\n", message);
352 else if (level == LIBAVW_PRINT_FATAL)
353 Con_Printf(CON_ERROR "LibAvcodec fatal error: %s\n", message);
354 else
355 Con_Printf(CON_ERROR "LibAvcodec panic: %s\n", message);
356}
#define LIBAVW_PRINT_FATAL
#define LIBAVW_PRINT_WARNING
#define LIBAVW_PRINT_ERROR
#define CON_WARN
Definition console.h:101
static int level
Definition fs.c:481
string message
Definition progsdefs.qc:205

References CON_ERROR, Con_Printf(), CON_WARN, level, LIBAVW_PRINT_ERROR, LIBAVW_PRINT_FATAL, LIBAVW_PRINT_WARNING, and message.

Referenced by LibAvW_OpenLibrary().

◆ LibAvW_OpenLibrary()

qbool LibAvW_OpenLibrary ( void )

Definition at line 358 of file cl_video_libavw.c.

359{
360 int errorcode;
361
362 // COMMANDLINEOPTION: Video: -nolibavw disables libavcodec wrapper support
363 if (Sys_CheckParm("-nolibavw"))
364 return false;
365
366 // load DLL's
368 if (!libavw_dll)
369 return false;
370
371 // initialize libav wrapper
372 if ((errorcode = qLibAvW_Init(&libavw_message)))
373 {
374 Con_Printf(CON_ERROR "LibAvW failed to initialize: %s\n", qLibAvW_ErrorString(errorcode));
376 }
377
381
382 return true;
383}
static void libavw_message(int level, const char *message)
cvar_t cl_video_libavw_minwidth
static dllfunction_t libavwfuncs[]
cvar_t cl_video_libavw_minheight
int(* qLibAvW_Init)(avwCallbackPrint *printfunction)
const char * dllnames_libavw[]
void Cvar_RegisterVariable(cvar_t *variable)
registers a cvar that already has the name, string, and optionally the archive elements set.
Definition cvar.c:599
qbool Sys_LoadDependency(const char **dllnames, dllhandle_t *handle, const dllfunction_t *fcts)
Definition sys_shared.c:131
int Sys_CheckParm(const char *parm)
Definition sys_shared.c:327

References cl_video_libavw_minheight, cl_video_libavw_minwidth, cl_video_libavw_scaler, CON_ERROR, Con_Printf(), Cvar_RegisterVariable(), dllnames_libavw, libavw_dll, libavw_message(), libavwfuncs, qLibAvW_ErrorString, qLibAvW_Init, Sys_CheckParm(), Sys_FreeLibrary(), and Sys_LoadDependency().

Referenced by CL_Video_Init().

◆ LibAvW_OpenVideo()

void * LibAvW_OpenVideo ( clvideo_t * video,
char * filename,
const char ** errorstring )

Definition at line 252 of file cl_video_libavw.c.

253{
255 char filebase[MAX_OSPATH], check[MAX_OSPATH];
256 unsigned int i;
257 int errorcode;
258 char *wavename;
259 size_t len;
260
261 if (!libavw_dll)
262 return NULL;
263
264 // allocate stream
265 s = (libavwstream_t *)Z_Malloc(sizeof(libavwstream_t));
266 if (s == NULL)
267 {
268 *errorstring = "unable to allocate memory for stream info structure";
269 return NULL;
270 }
271 memset(s, 0, sizeof(libavwstream_t));
272 s->sndchan = -1;
273
274 // open file
275 s->file = FS_OpenVirtualFile(filename, true);
276 if (!s->file)
277 {
278 FS_StripExtension(filename, filebase, sizeof(filebase));
279 // we tried .dpv, try another extensions
280 for (i = 0; libavw_extensions[i] != NULL; i++)
281 {
282 dpsnprintf(check, sizeof(check), "%s.%s", filebase, libavw_extensions[i]);
283 s->file = FS_OpenVirtualFile(check, true);
284 if (s->file)
285 break;
286 }
287 if (!s->file)
288 {
289 *errorstring = "unable to open videofile";
290 libavw_close(s);
291 Z_Free(s);
292 return NULL;
293 }
294 }
295
296 // allocate libavw stream
297 if ((errorcode = qLibAvW_CreateStream(&s->stream)))
298 {
299 *errorstring = qLibAvW_ErrorString(errorcode);
300 libavw_close(s);
301 Z_Free(s);
302 return NULL;
303 }
304
305 // open video for playing
307 {
309 libavw_close(s);
310 Z_Free(s);
311 return NULL;
312 }
313
314 // all right, start codec
318 s->info_aspectratio = (double)s->info_imagewidth / (double)s->info_imageheight;
319 video->close = libavw_close;
320 video->getwidth = libavw_getwidth;
325
326 // apply min-width, min-height, keep aspect rate
331
332 // provide sound in separate .wav
333 len = strlen(filename) + 10;
334 wavename = (char *)Z_Malloc(len);
335 if (wavename)
336 {
337 FS_StripExtension(filename, wavename, len-1);
338 dp_strlcat(wavename, ".wav", len);
339 s->sfx = S_PrecacheSound(wavename, false, false);
340 s->sndchan = -1;
341 Z_Free(wavename);
342 }
343 return s;
344}
int(* qLibAvW_PlayVideo)(void *stream, void *file, avwCallbackIoRead *IoRead, avwCallbackIoSeek *IoSeek, avwCallbackIoSeekSize *IoSeekSize)
double(* qLibAvW_StreamGetFramerate)(void *stream)
int(* qLibAvW_CreateStream)(void **stream)
unsigned int libavw_getheight(void *stream)
unsigned int libavw_getwidth(void *stream)
int(* qLibAvW_StreamGetVideoWidth)(void *stream)
int(* qLibAvW_StreamGetVideoHeight)(void *stream)
static int LibAvW_FS_Read(void *opaque, uint8_t *buf, int buf_size)
double libavw_getaspectratio(void *stream)
void libavw_close(void *stream)
double libavw_getframerate(void *stream)
static int libavw_decodeframe(void *stream, void *imagedata, unsigned int Rmask, unsigned int Gmask, unsigned int Bmask, unsigned int bytesperpixel, int imagebytesperrow)
static uint64_t LibAvW_FS_SeekSize(void *opaque)
static uint64_t LibAvW_FS_Seek(void *opaque, uint64_t pos, int whence)
const char * libavw_extensions[]
int dpsnprintf(char *buffer, size_t buffersize, const char *format,...)
Returns the number of printed characters, excluding the final '\0' or returns -1 if the buffer isn't ...
Definition common.c:997
#define dp_strlcat(dst, src, dsize)
Definition common.h:304
qfile_t * FS_OpenVirtualFile(const char *filepath, qbool quiet)
Definition fs.c:2928
void FS_StripExtension(const char *in, char *out, size_t size_out)
Definition fs.c:3611
float strlen(string s)
int i
#define MAX_OSPATH
max length of a filesystem pathname
Definition qdefs.h:175
sfx_t * S_PrecacheSound(const char *name, qbool complain, qbool levelsound)
Definition snd_main.c:1048
void(* close)(void *stream)
Definition cl_video.h:62
double(* getframerate)(void *stream)
Definition cl_video.h:65
unsigned int(* getheight)(void *stream)
Definition cl_video.h:64
int(* decodeframe)(void *stream, void *imagedata, unsigned int Rmask, unsigned int Gmask, unsigned int Bmask, unsigned int bytesperpixel, int imagebytesperrow)
Definition cl_video.h:67
double(* getaspectratio)(void *stream)
Definition cl_video.h:66
unsigned int(* getwidth)(void *stream)
Definition cl_video.h:63
#define Z_Malloc(size)
Definition zone.h:161
#define Z_Free(data)
Definition zone.h:164

References cl_video_libavw_minheight, cl_video_libavw_minwidth, clvideo_t::close, clvideo_t::decodeframe, dp_strlcat, dpsnprintf(), libavwstream_t::file, FS_OpenVirtualFile(), FS_StripExtension(), clvideo_t::getaspectratio, clvideo_t::getframerate, clvideo_t::getheight, clvideo_t::getwidth, i, libavwstream_t::info_aspectratio, libavwstream_t::info_framerate, libavwstream_t::info_imageheight, libavwstream_t::info_imagewidth, cvar_t::integer, libavw_close(), libavw_decodeframe(), libavw_dll, libavw_extensions, LibAvW_FS_Read(), LibAvW_FS_Seek(), LibAvW_FS_SeekSize(), libavw_getaspectratio(), libavw_getframerate(), libavw_getheight(), libavw_getwidth(), max, MAX_OSPATH, NULL, qLibAvW_CreateStream, qLibAvW_ErrorString, qLibAvW_PlayVideo, qLibAvW_StreamGetError, qLibAvW_StreamGetFramerate, qLibAvW_StreamGetVideoHeight, qLibAvW_StreamGetVideoWidth, S_PrecacheSound(), libavwstream_t::sfx, libavwstream_t::sndchan, libavwstream_t::stream, strlen(), Z_Free, and Z_Malloc.

Referenced by OpenStream().

Variable Documentation

◆ cl_video_libavw_minheight

cvar_t cl_video_libavw_minheight = {CF_ARCHIVE, "cl_video_libavw_minheight", "0", "if videos height is lesser than minimal, thay will be upscaled"}

Definition at line 121 of file cl_video_libavw.c.

121{CF_ARCHIVE, "cl_video_libavw_minheight", "0", "if videos height is lesser than minimal, thay will be upscaled"};
#define CF_ARCHIVE
cvar should have its set value saved to config.cfg and persist across sessions
Definition cmd.h:53

Referenced by LibAvW_OpenLibrary(), and LibAvW_OpenVideo().

◆ cl_video_libavw_minwidth

cvar_t cl_video_libavw_minwidth = {CF_ARCHIVE, "cl_video_libavw_minwidth", "0", "if videos width is lesser than minimal, thay will be upscaled"}

Definition at line 120 of file cl_video_libavw.c.

120{CF_ARCHIVE, "cl_video_libavw_minwidth", "0", "if videos width is lesser than minimal, thay will be upscaled"};

Referenced by LibAvW_OpenLibrary(), and LibAvW_OpenVideo().

◆ cl_video_libavw_scaler

cvar_t cl_video_libavw_scaler = {CF_ARCHIVE, "cl_video_libavw_scaler", "1", "selects a scaler for libavcode played videos. Scalers are: 0 - bilinear, 1 - bicubic, 2 - x, 3 - point, 4 - area, 5 - bicublin, 6 - gauss, 7 - sinc, 8 - lanczos, 9 - spline."}

Definition at line 122 of file cl_video_libavw.c.

122{CF_ARCHIVE, "cl_video_libavw_scaler", "1", "selects a scaler for libavcode played videos. Scalers are: 0 - bilinear, 1 - bicubic, 2 - x, 3 - point, 4 - area, 5 - bicublin, 6 - gauss, 7 - sinc, 8 - lanczos, 9 - spline."};

Referenced by libavw_decodeframe(), and LibAvW_OpenLibrary().

◆ dllnames_libavw

const char* dllnames_libavw[]
Initial value:
=
{
"libavcodec.so",
}

Definition at line 89 of file cl_video_libavw.c.

90{
91#if defined(WIN32)
92 "libavcodec.dll",
93#elif defined(MACOSX)
94 "libavcodec.dylib",
95#else
96 "libavcodec.so",
97#endif
98 NULL
99};

Referenced by LibAvW_OpenLibrary().

◆ libavw_dll

dllhandle_t libavw_dll = NULL
static

Definition at line 101 of file cl_video_libavw.c.

Referenced by LibAvW_CloseLibrary(), LibAvW_OpenLibrary(), and LibAvW_OpenVideo().

◆ libavw_extensions

const char* libavw_extensions[]
Initial value:
=
{
"ogv",
"avi",
"mpg",
"mp4",
"mkv",
"webm",
"bik",
"roq",
"flv",
"wmv",
"mpeg",
"mjpeg",
"mpeg4",
}

Definition at line 125 of file cl_video_libavw.c.

126{
127 "ogv",
128 "avi",
129 "mpg",
130 "mp4",
131 "mkv",
132 "webm",
133 "bik",
134 "roq",
135 "flv",
136 "wmv",
137 "mpeg",
138 "mjpeg",
139 "mpeg4",
140 NULL
141};

Referenced by LibAvW_OpenVideo().

◆ libavwfuncs

dllfunction_t libavwfuncs[]
static
Initial value:
=
{
{"LibAvW_Init", (void **) &qLibAvW_Init },
{"LibAvW_ErrorString", (void **) &qLibAvW_ErrorString },
{"LibAvW_AvcVersion", (void **) &qLibAvW_AvcVersion },
{"LibAvW_Version", (void **) &qLibAvW_Version },
{"LibAvW_CreateStream", (void **) &qLibAvW_CreateStream },
{"LibAvW_RemoveStream", (void **) &qLibAvW_RemoveStream },
{"LibAvW_StreamGetVideoWidth", (void **) &qLibAvW_StreamGetVideoWidth },
{"LibAvW_StreamGetVideoHeight",(void **) &qLibAvW_StreamGetVideoHeight },
{"LibAvW_StreamGetFramerate", (void **) &qLibAvW_StreamGetFramerate },
{"LibAvW_StreamGetError", (void **) &qLibAvW_StreamGetError },
{"LibAvW_PlayVideo", (void **) &qLibAvW_PlayVideo },
{"LibAvW_PlaySeekNextFrame", (void **) &qLibAvW_PlaySeekNextFrame },
{"LibAvW_PlayGetFrameImage", (void **) &qLibAvW_PlayGetFrameImage },
}
float(* qLibAvW_Version)(void)
const char *(* qLibAvW_AvcVersion)(void)

Definition at line 71 of file cl_video_libavw.c.

72{
73 {"LibAvW_Init", (void **) &qLibAvW_Init },
74 {"LibAvW_ErrorString", (void **) &qLibAvW_ErrorString },
75 {"LibAvW_AvcVersion", (void **) &qLibAvW_AvcVersion },
76 {"LibAvW_Version", (void **) &qLibAvW_Version },
77 {"LibAvW_CreateStream", (void **) &qLibAvW_CreateStream },
78 {"LibAvW_RemoveStream", (void **) &qLibAvW_RemoveStream },
79 {"LibAvW_StreamGetVideoWidth", (void **) &qLibAvW_StreamGetVideoWidth },
80 {"LibAvW_StreamGetVideoHeight",(void **) &qLibAvW_StreamGetVideoHeight },
81 {"LibAvW_StreamGetFramerate", (void **) &qLibAvW_StreamGetFramerate },
82 {"LibAvW_StreamGetError", (void **) &qLibAvW_StreamGetError },
83 {"LibAvW_PlayVideo", (void **) &qLibAvW_PlayVideo },
84 {"LibAvW_PlaySeekNextFrame", (void **) &qLibAvW_PlaySeekNextFrame },
85 {"LibAvW_PlayGetFrameImage", (void **) &qLibAvW_PlayGetFrameImage },
86 {NULL, NULL}
87};

Referenced by LibAvW_OpenLibrary().

◆ qLibAvW_AvcVersion

const char *(* qLibAvW_AvcVersion) (void) ( void )

Definition at line 58 of file cl_video_libavw.c.

◆ qLibAvW_CreateStream

int(* qLibAvW_CreateStream) (void **stream) ( void ** stream)

Definition at line 60 of file cl_video_libavw.c.

Referenced by LibAvW_OpenVideo().

◆ qLibAvW_ErrorString

const char *(* qLibAvW_ErrorString) (int errorcode) ( int errorcode)

Definition at line 57 of file cl_video_libavw.c.

Referenced by libavw_decodeframe(), LibAvW_OpenLibrary(), and LibAvW_OpenVideo().

◆ qLibAvW_Init

int(* qLibAvW_Init) (avwCallbackPrint *printfunction) ( avwCallbackPrint * printfunction)

Definition at line 56 of file cl_video_libavw.c.

Referenced by LibAvW_OpenLibrary().

◆ qLibAvW_PlayGetFrameImage

int(* qLibAvW_PlayGetFrameImage) (void *stream, int pixel_format, void *imagedata, int imagewidth, int imageheight, int scaler) ( void * stream,
int pixel_format,
void * imagedata,
int imagewidth,
int imageheight,
int scaler )

Definition at line 69 of file cl_video_libavw.c.

Referenced by libavw_decodeframe().

◆ qLibAvW_PlaySeekNextFrame

int(* qLibAvW_PlaySeekNextFrame) (void *stream) ( void * stream)

Definition at line 68 of file cl_video_libavw.c.

Referenced by libavw_decodeframe().

◆ qLibAvW_PlayVideo

int(* qLibAvW_PlayVideo) (void *stream, void *file, avwCallbackIoRead *IoRead, avwCallbackIoSeek *IoSeek, avwCallbackIoSeekSize *IoSeekSize) ( void * stream,
void * file,
avwCallbackIoRead * IoRead,
avwCallbackIoSeek * IoSeek,
avwCallbackIoSeekSize * IoSeekSize )

Definition at line 67 of file cl_video_libavw.c.

Referenced by LibAvW_OpenVideo().

◆ qLibAvW_RemoveStream

void(* qLibAvW_RemoveStream) (void *stream) ( void * stream)

Definition at line 61 of file cl_video_libavw.c.

Referenced by libavw_close().

◆ qLibAvW_StreamGetError

int(* qLibAvW_StreamGetError) (void *stream) ( void * stream)

Definition at line 65 of file cl_video_libavw.c.

Referenced by libavw_decodeframe(), and LibAvW_OpenVideo().

◆ qLibAvW_StreamGetFramerate

double(* qLibAvW_StreamGetFramerate) (void *stream) ( void * stream)

Definition at line 64 of file cl_video_libavw.c.

Referenced by LibAvW_OpenVideo().

◆ qLibAvW_StreamGetVideoHeight

int(* qLibAvW_StreamGetVideoHeight) (void *stream) ( void * stream)

Definition at line 63 of file cl_video_libavw.c.

Referenced by LibAvW_OpenVideo().

◆ qLibAvW_StreamGetVideoWidth

int(* qLibAvW_StreamGetVideoWidth) (void *stream) ( void * stream)

Definition at line 62 of file cl_video_libavw.c.

Referenced by LibAvW_OpenVideo().

◆ qLibAvW_Version

float(* qLibAvW_Version) (void) ( void )

Definition at line 59 of file cl_video_libavw.c.