#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "debug.h"
#include "lib_common.h"
#include "types.h"
#include "utils/color_out.h"
#include "utils/list.h"
#include "utils/macros.h"
#include "video_codec.h"
#include "video_display.h"
#include "video_frame.h"
#include "vo_postprocess.h"
Go to the source code of this file.
|
| static void | delay_done (void *state) |
| |
| static void | delay_get_out_desc (void *state, struct video_desc *out, int *in_display_mode, int *out_frames) |
| |
| static bool | delay_get_property (void *state, int property, void *val, size_t *len) |
| |
| static struct video_frame * | delay_getf (void *state) |
| |
| static void * | delay_init (const char *config) |
| |
| static bool | delay_postprocess (void *state, struct video_frame *in, struct video_frame *out, int req_pitch) |
| |
| static bool | delay_reconfigure (void *state, struct video_desc desc) |
| |
| | REGISTER_MODULE (delay, &vo_pp_delay_info, LIBRARY_CLASS_VIDEO_POSTPROCESS, VO_PP_ABI_VERSION) |
| |
| static void | usage () |
| |
◆ MOD_NAME
| #define MOD_NAME "[vpp/delay] " |
◆ delay_done()
| static void delay_done |
( |
void * | state | ) |
|
|
static |
◆ delay_get_out_desc()
| static void delay_get_out_desc |
( |
void * | state, |
|
|
struct video_desc * | out, |
|
|
int * | in_display_mode, |
|
|
int * | out_frames ) |
|
static |
◆ delay_get_property()
| static bool delay_get_property |
( |
void * | state, |
|
|
int | property, |
|
|
void * | val, |
|
|
size_t * | len ) |
|
static |
◆ delay_getf()
◆ delay_init()
| static void * delay_init |
( |
const char * | config | ) |
|
|
static |
Definition at line 92 of file delay.c.
93{
94 enum {
95 MAX_VAL_FRM = 2000,
96 MAX_VAL_SEC = 60,
97 };
101 return NULL;
102 }
103
104 const char *val_s = strchr(config, '=') + 1;
105 double val = strtod(val_s, NULL);
108 MSG(ERROR,
"Wrong delay value: %s\n", val_s);
109 return NULL;
110 }
112 MSG(ERROR,
"Number of frames should be an integer, given: %s\n",
113 val_s);
114 return NULL;
115 }
116
118 assert(s != NULL);
121 } else {
123 }
124 MSG(INFO,
"Delay set to %g %s.\n",
val,
127
128 return s;
129}
static __device__ vec3 round(const vec3 &v)
struct simple_linked_list * simple_linked_list_init(void)
#define IS_KEY_PREFIX(tok, key)
expands to true value if <k> from tok in format <k>=<v> is prefix of key
References state_delay::cached_frames, state_delay::delay_frames, state_delay::delay_sec, IS_KEY_PREFIX, MSG, round(), simple_linked_list_init(), usage(), and val.
◆ delay_postprocess()
| static bool delay_postprocess |
( |
void * | state, |
|
|
struct video_frame * | in, |
|
|
struct video_frame * | out, |
|
|
int | req_pitch ) |
|
static |
Definition at line 154 of file delay.c.
156{
158
160
163 return false;
164 }
165
167 return false;
168 }
169
171 const size_t linesize =
174 memcpy(out->
tiles[0].
data + i * req_pitch,
175 f->
tiles[0].
data + i * linesize, linesize);
176 }
178
179 return true;
180}
int vc_get_linesize(unsigned int width, codec_t codec)
void simple_linked_list_append(struct simple_linked_list *l, void *data)
int simple_linked_list_size(struct simple_linked_list *l)
char * data
Raw tile data. Pointer must be at least 4B aligned.
unsigned int height
height of every tile (!)
struct tile tiles[FLEXIBLE_ARRAY_MEMBER]
References state_delay::cached_frames, video_frame::color_spec, tile::data, state_delay::delay_frames, state_delay::delay_sec, state_delay::desc, video_desc::fps, video_desc::height, simple_linked_list_append(), simple_linked_list_pop(), simple_linked_list_size(), state, video_frame::tiles, vc_get_linesize(), vf_free(), and tile::width.
◆ delay_reconfigure()
| static bool delay_reconfigure |
( |
void * | state, |
|
|
struct video_desc | desc ) |
|
static |
◆ REGISTER_MODULE()
◆ usage()
| static void usage |
( |
void | | ) |
|
|
static |
◆ vo_pp_delay_info
Initial value:= {
}
static void delay_get_out_desc(void *state, struct video_desc *out, int *in_display_mode, int *out_frames)
static void delay_done(void *state)
static bool delay_get_property(void *state, int property, void *val, size_t *len)
static void * delay_init(const char *config)
static bool delay_postprocess(void *state, struct video_frame *in, struct video_frame *out, int req_pitch)
static bool delay_reconfigure(void *state, struct video_desc desc)
static struct video_frame * delay_getf(void *state)
Definition at line 206 of file delay.c.