mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-14 11:50:02 +01:00
fix compile warnings
This commit is contained in:
@@ -32,6 +32,7 @@ extern void avcodec_free_context(AVCodecContext **avctx) __attribute__((weak));
|
|||||||
|
|
||||||
extern void av_frame_unref(AVFrame *ptr) __attribute((weak));
|
extern void av_frame_unref(AVFrame *ptr) __attribute((weak));
|
||||||
|
|
||||||
|
extern void avhelper_decode_finish( void *ptr );
|
||||||
|
|
||||||
#if FF_VJE_BACKPORT
|
#if FF_VJE_BACKPORT
|
||||||
|
|
||||||
@@ -84,7 +85,7 @@ extern void av_frame_unref(AVFrame *ptr) __attribute((weak));
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CODEC_ID_FFVHUFF
|
#ifndef CODEC_ID_FFVHUFF
|
||||||
#define CODEC_ID_HUFFYUV AV_CODEC_ID_FFVHUFF
|
#define CODEC_ID_FFVHUFF AV_CODEC_ID_FFVHUFF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CODEC_ID_CYUV
|
#ifndef CODEC_ID_CYUV
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
#include <veejaycore/defs.h>
|
#include <veejaycore/defs.h>
|
||||||
#include <veejaycore/vj-msg.h>
|
#include <veejaycore/vj-msg.h>
|
||||||
#include <veejaycore/vjmem.h>
|
#include <veejaycore/vjmem.h>
|
||||||
|
#include <veejaycore/vj-task.h>
|
||||||
#include <libvje/vje.h>
|
#include <libvje/vje.h>
|
||||||
#include <veejaycore/yuvconv.h>
|
#include <veejaycore/yuvconv.h>
|
||||||
#include <libavutil/avutil.h>
|
#include <libavutil/avutil.h>
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ void lav_set_project(int w, int h, float f, int fmt)
|
|||||||
#define M_APP1 0xE1
|
#define M_APP1 0xE1
|
||||||
#define TMP_EXTENSION ".tmp"
|
#define TMP_EXTENSION ".tmp"
|
||||||
|
|
||||||
void set_fourcc(lav_file_t *lav_file, char *fourcc)
|
void set_fourcc(lav_file_t *lav_file, const char *fourcc)
|
||||||
{
|
{
|
||||||
/* ensure fourcc is in lowercase */
|
/* ensure fourcc is in lowercase */
|
||||||
char fourcc_lc[5];
|
char fourcc_lc[5];
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ typedef struct
|
|||||||
int codec_id;
|
int codec_id;
|
||||||
} lav_file_t;
|
} lav_file_t;
|
||||||
|
|
||||||
void set_fourcc(lav_file_t *lav_file, char *fourcc);
|
void set_fourcc(lav_file_t *lav_file,const char *fourcc);
|
||||||
int lav_detect_endian (void);
|
int lav_detect_endian (void);
|
||||||
int lav_query_APP_marker(char format);
|
int lav_query_APP_marker(char format);
|
||||||
int lav_query_APP_length(char format);
|
int lav_query_APP_length(char format);
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ is set to the size in bytes of the encoded data.
|
|||||||
|
|
||||||
The returned qoi data should be free()d after use. */
|
The returned qoi data should be free()d after use. */
|
||||||
|
|
||||||
void *qoi_encode(const unsigned char *pixels[3], const qoi_desc *desc, int *out_len, unsigned char *bytes, int max_size );
|
void *qoi_encode(const unsigned char *pixels[4], const qoi_desc *desc, int *out_len, unsigned char *bytes, int max_size );
|
||||||
|
|
||||||
|
|
||||||
/* Decode a QOI image from memory.
|
/* Decode a QOI image from memory.
|
||||||
@@ -288,7 +288,7 @@ is filled with the description from the file header.
|
|||||||
|
|
||||||
The returned pixel data should be free()d after use. */
|
The returned pixel data should be free()d after use. */
|
||||||
|
|
||||||
void *qoi_decode(const void *data, int size, qoi_desc *desc, int channels, unsigned char *pixels[3], int px_len);
|
void *qoi_decode(const void *data, int size, qoi_desc *desc, int channels, unsigned char *pixels[4], int px_len);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -496,7 +496,6 @@ void *qoi_encode(const unsigned char *pixels[4], const qoi_desc *desc, int *out_
|
|||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma unroll
|
|
||||||
void *qoi_decode(const void *data, int size, qoi_desc *desc, int channels, unsigned char *pixels[4], int px_len) {
|
void *qoi_decode(const void *data, int size, qoi_desc *desc, int channels, unsigned char *pixels[4], int px_len) {
|
||||||
const unsigned char *bytes;
|
const unsigned char *bytes;
|
||||||
unsigned int header_magic;
|
unsigned int header_magic;
|
||||||
@@ -600,4 +599,4 @@ void *qoi_decode(const void *data, int size, qoi_desc *desc, int channels, unsig
|
|||||||
|
|
||||||
|
|
||||||
#endif /* QOI_NO_STDIO */
|
#endif /* QOI_NO_STDIO */
|
||||||
#endif /* QOI_IMPLEMENTATION */
|
#endif /* QOI_IMPLEMENTATION */
|
||||||
|
|||||||
@@ -54,6 +54,8 @@
|
|||||||
#define ROUND_UP_8(x) ROUND_UP_X (x, 3)
|
#define ROUND_UP_8(x) ROUND_UP_X (x, 3)
|
||||||
#define DIV_ROUND_UP_X(v,x) (((v) + GEN_MASK(x)) >> (x))
|
#define DIV_ROUND_UP_X(v,x) (((v) + GEN_MASK(x)) >> (x))
|
||||||
|
|
||||||
|
extern int avhelper_set_num_decoders();
|
||||||
|
|
||||||
static int out_pixel_format = FMT_422F;
|
static int out_pixel_format = FMT_422F;
|
||||||
|
|
||||||
static char* vj_avcodec_get_codec_name(int codec_id )
|
static char* vj_avcodec_get_codec_name(int codec_id )
|
||||||
@@ -761,7 +763,6 @@ int vj_avcodec_encode_frame(void *encoder, long nframe,int format, uint8_t *src
|
|||||||
#endif
|
#endif
|
||||||
#if LIBAVCODEC_VERSION_MAJOR < 60
|
#if LIBAVCODEC_VERSION_MAJOR < 60
|
||||||
AVFrame pict;
|
AVFrame pict;
|
||||||
int stride,w2,stride2;
|
|
||||||
veejay_memset( &pict, 0, sizeof(pict));
|
veejay_memset( &pict, 0, sizeof(pict));
|
||||||
|
|
||||||
pict.quality = 1;
|
pict.quality = 1;
|
||||||
|
|||||||
@@ -834,7 +834,6 @@ int vj_el_get_video_frame(editlist *el, long nframe, uint8_t *dst[4])
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t *data = ( in_cache == NULL ? d->tmp_buffer: in_cache );
|
uint8_t *data = ( in_cache == NULL ? d->tmp_buffer: in_cache );
|
||||||
int inter = 0;
|
|
||||||
uint8_t *in[3] = { NULL,NULL,NULL };
|
uint8_t *in[3] = { NULL,NULL,NULL };
|
||||||
int strides[4] = { el_out_->len, el_out_->uv_len, el_out_->uv_len ,0};
|
int strides[4] = { el_out_->len, el_out_->uv_len, el_out_->uv_len ,0};
|
||||||
uint8_t *dataplanes[4] = { data , data + el_out_->len, data + el_out_->len + el_out_->uv_len,0 };
|
uint8_t *dataplanes[4] = { data , data + el_out_->len, data + el_out_->len + el_out_->uv_len,0 };
|
||||||
@@ -1344,7 +1343,12 @@ editlist *vj_el_init_with_args(char **filename, int num_files, int flags, int de
|
|||||||
/* Ok, it is a edit list */
|
/* Ok, it is a edit list */
|
||||||
veejay_msg(VEEJAY_MSG_DEBUG, "Edit list %s opened", filename[nf]);
|
veejay_msg(VEEJAY_MSG_DEBUG, "Edit list %s opened", filename[nf]);
|
||||||
/* Read second line: Video norm */
|
/* Read second line: Video norm */
|
||||||
fgets(line, 1024, fd);
|
if( fgets(line, 1024, fd) == NULL ) {
|
||||||
|
veejay_msg(VEEJAY_MSG_ERROR, "Failed to read %s", filename[nf]);
|
||||||
|
fclose(fd);
|
||||||
|
vj_el_free(el);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
if (line[0] != 'N' && line[0] != 'n' && line[0] != 'P' && line[0] != 'p' && line[0] != 's' && line[0] != 'S')
|
if (line[0] != 'N' && line[0] != 'n' && line[0] != 'P' && line[0] != 'p' && line[0] != 's' && line[0] != 'S')
|
||||||
{
|
{
|
||||||
veejay_msg(VEEJAY_MSG_DEBUG,"Edit list second line is not NTSC/PAL/SECAM");
|
veejay_msg(VEEJAY_MSG_DEBUG,"Edit list second line is not NTSC/PAL/SECAM");
|
||||||
@@ -1381,7 +1385,11 @@ editlist *vj_el_init_with_args(char **filename, int num_files, int flags, int de
|
|||||||
|
|
||||||
for (i = 0; i < num_list_files; i++)
|
for (i = 0; i < num_list_files; i++)
|
||||||
{
|
{
|
||||||
fgets(line, 1024, fd);
|
if(fgets(line, 1024, fd) == NULL ) {
|
||||||
|
fclose(fd);
|
||||||
|
vj_el_free(el);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
n = strlen(line);
|
n = strlen(line);
|
||||||
|
|
||||||
if (line[n - 1] != '\n')
|
if (line[n - 1] != '\n')
|
||||||
|
|||||||
@@ -80,6 +80,9 @@
|
|||||||
#include <veejaycore/av.h>
|
#include <veejaycore/av.h>
|
||||||
#include <veejaycore/avhelper.h>
|
#include <veejaycore/avhelper.h>
|
||||||
#include <veejaycore/avcommon.h>
|
#include <veejaycore/avcommon.h>
|
||||||
|
|
||||||
|
extern int avhelper_set_num_decoders();
|
||||||
|
|
||||||
//#include <pthread.h>
|
//#include <pthread.h>
|
||||||
typedef struct {
|
typedef struct {
|
||||||
void *start;
|
void *start;
|
||||||
|
|||||||
@@ -378,7 +378,6 @@ int net_thread_start(vj_tag *tag, VJFrame *info)
|
|||||||
|
|
||||||
void net_thread_stop(vj_tag *tag)
|
void net_thread_stop(vj_tag *tag)
|
||||||
{
|
{
|
||||||
int p_err = 0;
|
|
||||||
threaded_t *t = (threaded_t*)tag->priv;
|
threaded_t *t = (threaded_t*)tag->priv;
|
||||||
|
|
||||||
lock(t);
|
lock(t);
|
||||||
|
|||||||
@@ -472,13 +472,13 @@ static int cali_write_file( char *file, vj_tag *tag , editlist *el)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
char header[256];
|
char header[248];
|
||||||
int w = vj_tag_input->width;
|
int w = vj_tag_input->width;
|
||||||
int h = vj_tag_input->height;
|
int h = vj_tag_input->height;
|
||||||
int len = (w*h);
|
int len = (w*h);
|
||||||
int uv_len = vj_tag_input->uv_len;
|
int uv_len = vj_tag_input->uv_len;
|
||||||
|
|
||||||
char fileheader[256];
|
char fileheader[252];
|
||||||
|
|
||||||
snprintf(header,sizeof(header),"%08d %08d %08d %08d %g %g %g",
|
snprintf(header,sizeof(header),"%08d %08d %08d %08d %g %g %g",
|
||||||
w,
|
w,
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ void vj_yuv_stream_stop_read(vj_yuv * yuv4mpeg);
|
|||||||
|
|
||||||
void vj_yuv_stream_stop_write(vj_yuv * yuv4mpeg);
|
void vj_yuv_stream_stop_write(vj_yuv * yuv4mpeg);
|
||||||
|
|
||||||
int vj_yuv_get_frame(vj_yuv *, uint8_t **);
|
int vj_yuv_get_frame(vj_yuv *, uint8_t *dst[3]);
|
||||||
|
|
||||||
int vj_yuv_put_frame(vj_yuv * vjyuv, uint8_t **src);
|
int vj_yuv_put_frame(vj_yuv * vjyuv, uint8_t **src);
|
||||||
|
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ static inline void stroboscope(
|
|||||||
const int uv_len = (w*h) >> shift;
|
const int uv_len = (w*h) >> shift;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
#pragma omp simd
|
||||||
for( i = 0; i < uv_len; i ++ )
|
for( i = 0; i < uv_len; i ++ )
|
||||||
{
|
{
|
||||||
if( Y1[(i<<shift)] > Y2[(i<<shift)] ) {
|
if( Y1[(i<<shift)] > Y2[(i<<shift)] ) {
|
||||||
@@ -86,6 +87,7 @@ static inline void stroboscope(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma omp simd
|
||||||
for( i = 0; i < len; i ++ )
|
for( i = 0; i < len; i ++ )
|
||||||
{
|
{
|
||||||
if( Y1[i] > Y2[i] ) {
|
if( Y1[i] > Y2[i] ) {
|
||||||
@@ -99,6 +101,7 @@ static inline void stroboscope(
|
|||||||
// post process
|
// post process
|
||||||
if( feather > 0 )
|
if( feather > 0 )
|
||||||
{
|
{
|
||||||
|
#pragma omp simd
|
||||||
for( i = 0; i < uv_len; i ++ ) {
|
for( i = 0; i < uv_len; i ++ ) {
|
||||||
if( abs( Y1[(i<<shift)] - Y2[(i<<shift)] ) < feather ) {
|
if( abs( Y1[(i<<shift)] - Y2[(i<<shift)] ) < feather ) {
|
||||||
O1[i] = ( A1[i] + B1[i] ) >> 1;
|
O1[i] = ( A1[i] + B1[i] ) >> 1;
|
||||||
@@ -112,6 +115,7 @@ static inline void stroboscope(
|
|||||||
static inline void fading_stroboscope( uint8_t *O, uint8_t *A, uint8_t *B, uint8_t *Op, const int len )
|
static inline void fading_stroboscope( uint8_t *O, uint8_t *A, uint8_t *B, uint8_t *Op, const int len )
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
#pragma omp simd
|
||||||
for( i = 0; i < len; i ++ )
|
for( i = 0; i < len; i ++ )
|
||||||
{
|
{
|
||||||
O[i] = ( ( 0xff - Op[i]) * A[i] + (Op[i]) * B[i] ) >> 8;
|
O[i] = ( ( 0xff - Op[i]) * A[i] + (Op[i]) * B[i] ) >> 8;
|
||||||
@@ -131,7 +135,8 @@ static inline void fading_stroboscopeUV(
|
|||||||
{
|
{
|
||||||
const int uv_len = (w*h) >> shift;
|
const int uv_len = (w*h) >> shift;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
#pragma omp simd
|
||||||
for( i = 0; i < uv_len; i ++ )
|
for( i = 0; i < uv_len; i ++ )
|
||||||
{
|
{
|
||||||
if( Y1[(i<<shift)] > Y2[(i<<shift)] ) {
|
if( Y1[(i<<shift)] > Y2[(i<<shift)] ) {
|
||||||
@@ -146,6 +151,7 @@ static inline void fading_stroboscopeUV(
|
|||||||
|
|
||||||
if( feather > 0 )
|
if( feather > 0 )
|
||||||
{
|
{
|
||||||
|
#pragma omp simd
|
||||||
for( i = 0; i < uv_len; i ++ ) {
|
for( i = 0; i < uv_len; i ++ ) {
|
||||||
if( abs( Y1[(i<<shift)] - Y2[(i<<shift)] ) < feather ) {
|
if( abs( Y1[(i<<shift)] - Y2[(i<<shift)] ) < feather ) {
|
||||||
O1[i] = ( A1[i] + B1[i] ) >> 1;
|
O1[i] = ( A1[i] + B1[i] ) >> 1;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
#define max(a,b) (((a) < (b)) ? (b) : (a))
|
#define max(a,b) (((a) < (b)) ? (b) : (a))
|
||||||
|
|
||||||
#define MAX_OUTPUT_PORTS 2
|
#define MAX_OUTPUT_PORTS 2
|
||||||
#define MAX_INPUT_PORTS 0
|
#define MAX_INPUT_PORTS 2
|
||||||
|
|
||||||
#define DEFAULT_VOLUME 100
|
#define DEFAULT_VOLUME 100
|
||||||
|
|
||||||
|
|||||||
@@ -2053,7 +2053,6 @@ int veejay_init(veejay_t * info, int x, int y,char *arg, int def_tags, int gen_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
int instances = 0;
|
int instances = 0;
|
||||||
char *title = NULL;
|
|
||||||
|
|
||||||
while( (instances < 4 ) && !vj_server_setup(info))
|
while( (instances < 4 ) && !vj_server_setup(info))
|
||||||
{
|
{
|
||||||
@@ -2776,7 +2775,11 @@ int prepare_cache_line(int perc, int n_slots)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fgets(line, 128, file );
|
if(fgets(line, 128, file ) == NULL ) {
|
||||||
|
fclose(file);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
sscanf( line, "%*s %i", &total );
|
sscanf( line, "%*s %i", &total );
|
||||||
fclose(file);
|
fclose(file);
|
||||||
/* fgets( line,128, file );
|
/* fgets( line,128, file );
|
||||||
@@ -3137,8 +3140,9 @@ int veejay_edit_copy(veejay_t * info, editlist *el, long start, long end)
|
|||||||
|
|
||||||
k = 0;
|
k = 0;
|
||||||
|
|
||||||
|
#pragma omp simd
|
||||||
for (i = n1; i <= n2; i++) {
|
for (i = n1; i <= n2; i++) {
|
||||||
settings->save_list[k] = el->frame_list[i];
|
settings->save_list[k] = el->frame_list[i];
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
settings->save_list_len = (n2 - n1 + 1);
|
settings->save_list_len = (n2 - n1 + 1);
|
||||||
|
|||||||
@@ -1934,7 +1934,8 @@ static inline void draw_transparent_box(
|
|||||||
};
|
};
|
||||||
|
|
||||||
int p;
|
int p;
|
||||||
|
|
||||||
|
#pragma omp simd
|
||||||
for (j = y; j < height; j++)
|
for (j = y; j < height; j++)
|
||||||
for (i = x; i < width; i++)
|
for (i = x; i < width; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ int verify_working_dir()
|
|||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
while( n -- ) {
|
while( n -- ) {
|
||||||
char tmp[1024];
|
char tmp[2028];
|
||||||
snprintf( tmp, sizeof(tmp), "%s/%s", path, files[n]->d_name );
|
snprintf( tmp, sizeof(tmp), "%s/%s", path, files[n]->d_name );
|
||||||
if( try_file( tmp ) )
|
if( try_file( tmp ) )
|
||||||
c++;
|
c++;
|
||||||
|
|||||||
@@ -288,14 +288,6 @@ static void vj_perform_supersample(video_playback_setup *settings,performer_t *p
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vj_perform_copy( ycbcr_frame *src, ycbcr_frame *dst, int Y_len, int UV_len, int alpha_len )
|
|
||||||
{
|
|
||||||
uint8_t *input[4] = { src->Y, src->Cb, src->Cr,src->alpha };
|
|
||||||
uint8_t *output[4] = { dst->Y, dst->Cb, dst->Cr,dst->alpha };
|
|
||||||
int strides[4] = { Y_len, UV_len, UV_len, alpha_len };
|
|
||||||
vj_frame_copy(input,output,strides);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void vj_perform_copy3( uint8_t **input, uint8_t **output, int Y_len, int UV_len, int alpha_len )
|
static void vj_perform_copy3( uint8_t **input, uint8_t **output, int Y_len, int UV_len, int alpha_len )
|
||||||
{
|
{
|
||||||
int strides[4] = { Y_len, UV_len, UV_len, alpha_len };
|
int strides[4] = { Y_len, UV_len, UV_len, alpha_len };
|
||||||
@@ -388,12 +380,12 @@ static ycbcr_frame *vj_perform_sample_is_cached(veejay_t *info,int sample_id)
|
|||||||
|
|
||||||
static void vj_perform_sample_cache_tick(performer_global_t *g) {
|
static void vj_perform_sample_cache_tick(performer_global_t *g) {
|
||||||
if( g->n_cached_sample_frames < CACHE_SIZE-1)
|
if( g->n_cached_sample_frames < CACHE_SIZE-1)
|
||||||
g->n_cached_sample_frames = g->n_cached_sample_frames ++;
|
g->n_cached_sample_frames ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vj_perform_tag_cache_tick(performer_global_t *g) {
|
static void vj_perform_tag_cache_tick(performer_global_t *g) {
|
||||||
if( g->n_cached_tag_frames < CACHE_SIZE-1)
|
if( g->n_cached_tag_frames < CACHE_SIZE-1)
|
||||||
g->n_cached_tag_frames = g->n_cached_tag_frames ++;
|
g->n_cached_tag_frames ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -528,14 +520,12 @@ void vj_perform_setup_transition(veejay_t *info, int next_sample_id, int next_ty
|
|||||||
|
|
||||||
static int vj_perform_next_sequence( veejay_t *info, int *type, int *next_slot )
|
static int vj_perform_next_sequence( veejay_t *info, int *type, int *next_slot )
|
||||||
{
|
{
|
||||||
video_playback_setup *settings = info->settings;
|
|
||||||
int new_current = -1;
|
int new_current = -1;
|
||||||
int current_type = -1;
|
int current_type = -1;
|
||||||
int sample_id = vj_perform_get_next_sequence_id(info,¤t_type, info->seq->current, &new_current);
|
int sample_id = vj_perform_get_next_sequence_id(info,¤t_type, info->seq->current, &new_current);
|
||||||
|
|
||||||
int next_current = 0;
|
int next_current = 0;
|
||||||
int next_sample_id = vj_perform_get_next_sequence_id(info,type, new_current + 1, &next_current );
|
int next_sample_id = vj_perform_get_next_sequence_id(info,type, new_current + 1, &next_current );
|
||||||
int next_type = *type;
|
|
||||||
|
|
||||||
*next_slot = next_current;
|
*next_slot = next_current;
|
||||||
|
|
||||||
@@ -1008,7 +998,7 @@ static performer_t *vj_perform_init_performer(veejay_t *info, int chain_id)
|
|||||||
((float)fx_chain_size/1048576.0f)
|
((float)fx_chain_size/1048576.0f)
|
||||||
);
|
);
|
||||||
|
|
||||||
vj_perform_clear_cache(p);
|
vj_perform_clear_cache(info->performer);
|
||||||
|
|
||||||
p->chain_id = chain_id;
|
p->chain_id = chain_id;
|
||||||
|
|
||||||
@@ -1437,8 +1427,6 @@ void vj_perform_get_primary_frame_420p(veejay_t *info, uint8_t **frame )
|
|||||||
static void vj_perform_apply_first(veejay_t *info,performer_t *p, vjp_kf *todo_info,
|
static void vj_perform_apply_first(veejay_t *info,performer_t *p, vjp_kf *todo_info,
|
||||||
VJFrame **frames, sample_eff_chain *entry, int e , int c, int n_frame, void *ptr, int playmode)
|
VJFrame **frames, sample_eff_chain *entry, int e , int c, int n_frame, void *ptr, int playmode)
|
||||||
{
|
{
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
|
|
||||||
int args[SAMPLE_MAX_PARAMETERS];
|
int args[SAMPLE_MAX_PARAMETERS];
|
||||||
int n_a = 0;
|
int n_a = 0;
|
||||||
int is_mixer = 0;
|
int is_mixer = 0;
|
||||||
@@ -1876,7 +1864,6 @@ int vj_perform_fill_audio_buffers(veejay_t * info, uint8_t *audio_buf, uint8_t *
|
|||||||
|
|
||||||
static int vj_perform_apply_secundary_tag(veejay_t * info, performer_t *p, int sample_id, int type, int chain_entry, VJFrame *src, VJFrame *dst,uint8_t *p0_ref, uint8_t *p1_ref, int subrender )
|
static int vj_perform_apply_secundary_tag(veejay_t * info, performer_t *p, int sample_id, int type, int chain_entry, VJFrame *src, VJFrame *dst,uint8_t *p0_ref, uint8_t *p1_ref, int subrender )
|
||||||
{
|
{
|
||||||
int error = 1;
|
|
||||||
int nframe;
|
int nframe;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
int ssm = 0;
|
int ssm = 0;
|
||||||
@@ -1907,7 +1894,6 @@ static int vj_perform_apply_secundary_tag(veejay_t * info, performer_t *p, int s
|
|||||||
|
|
||||||
int res = vj_tag_get_frame(sample_id, dst,p->audio_buffer[chain_entry]);
|
int res = vj_tag_get_frame(sample_id, dst,p->audio_buffer[chain_entry]);
|
||||||
if(res==1) {
|
if(res==1) {
|
||||||
error = 0;
|
|
||||||
vj_perform_find_cache_tag_slot(global, p->frame_buffer[ chain_entry ], sample_id, chain_entry);
|
vj_perform_find_cache_tag_slot(global, p->frame_buffer[ chain_entry ], sample_id, chain_entry);
|
||||||
vj_perform_tag_cache_tick(global);
|
vj_perform_tag_cache_tick(global);
|
||||||
}
|
}
|
||||||
@@ -1915,7 +1901,6 @@ static int vj_perform_apply_secundary_tag(veejay_t * info, performer_t *p, int s
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ssm = vj_perform_use_cached_frame(cached_frame, dst);
|
ssm = vj_perform_use_cached_frame(cached_frame, dst);
|
||||||
error = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -1932,7 +1917,6 @@ static int vj_perform_apply_secundary_tag(veejay_t * info, performer_t *p, int s
|
|||||||
{
|
{
|
||||||
len = vj_perform_get_frame_fx( info, sample_id, nframe, src,dst,p0_ref,p1_ref );
|
len = vj_perform_get_frame_fx( info, sample_id, nframe, src,dst,p0_ref,p1_ref );
|
||||||
if(len > 0 ) {
|
if(len > 0 ) {
|
||||||
error = 0;
|
|
||||||
vj_perform_find_cache_sample_slot(global, p->frame_buffer[ chain_entry] , sample_id, chain_entry );
|
vj_perform_find_cache_sample_slot(global, p->frame_buffer[ chain_entry] , sample_id, chain_entry );
|
||||||
vj_perform_sample_cache_tick(global);
|
vj_perform_sample_cache_tick(global);
|
||||||
}
|
}
|
||||||
@@ -1940,7 +1924,6 @@ static int vj_perform_apply_secundary_tag(veejay_t * info, performer_t *p, int s
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ssm = vj_perform_use_cached_frame(cached_frame, dst );
|
ssm = vj_perform_use_cached_frame(cached_frame, dst );
|
||||||
error = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -2071,7 +2054,6 @@ static int vj_perform_get_frame_fx(veejay_t *info, int s1, long nframe, VJFrame
|
|||||||
|
|
||||||
static int vj_perform_apply_secundary(veejay_t * info,performer_t *p, int this_sample_id, int sample_id, int type, int chain_entry, VJFrame *src, VJFrame *dst,uint8_t *p0_ref, uint8_t *p1_ref, int subrender)
|
static int vj_perform_apply_secundary(veejay_t * info,performer_t *p, int this_sample_id, int sample_id, int type, int chain_entry, VJFrame *src, VJFrame *dst,uint8_t *p0_ref, uint8_t *p1_ref, int subrender)
|
||||||
{
|
{
|
||||||
int error = 1;
|
|
||||||
int nframe;
|
int nframe;
|
||||||
int len;
|
int len;
|
||||||
int res = 1;
|
int res = 1;
|
||||||
@@ -2105,7 +2087,6 @@ static int vj_perform_apply_secundary(veejay_t * info,performer_t *p, int this_s
|
|||||||
|
|
||||||
res = vj_tag_get_frame(sample_id, dst,p->audio_buffer[chain_entry]);
|
res = vj_tag_get_frame(sample_id, dst,p->audio_buffer[chain_entry]);
|
||||||
if(res) {
|
if(res) {
|
||||||
error = 0;
|
|
||||||
vj_perform_find_cache_tag_slot(g, p->frame_buffer[ chain_entry ], sample_id, chain_entry );
|
vj_perform_find_cache_tag_slot(g, p->frame_buffer[ chain_entry ], sample_id, chain_entry );
|
||||||
vj_perform_tag_cache_tick(g);
|
vj_perform_tag_cache_tick(g);
|
||||||
}
|
}
|
||||||
@@ -2113,7 +2094,6 @@ static int vj_perform_apply_secundary(veejay_t * info,performer_t *p, int this_s
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ssm = vj_perform_use_cached_frame(cached_frame, dst);
|
ssm = vj_perform_use_cached_frame(cached_frame, dst);
|
||||||
error = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -2129,7 +2109,6 @@ static int vj_perform_apply_secundary(veejay_t * info,performer_t *p, int this_s
|
|||||||
len = vj_perform_get_frame_fx( info, sample_id, nframe, src, dst, p0_ref, p1_ref );
|
len = vj_perform_get_frame_fx( info, sample_id, nframe, src, dst, p0_ref, p1_ref );
|
||||||
|
|
||||||
if(len > 0 ) {
|
if(len > 0 ) {
|
||||||
error = 0;
|
|
||||||
vj_perform_find_cache_sample_slot(g, p->frame_buffer[ chain_entry] , sample_id, chain_entry );
|
vj_perform_find_cache_sample_slot(g, p->frame_buffer[ chain_entry] , sample_id, chain_entry );
|
||||||
vj_perform_tag_cache_tick(g);
|
vj_perform_tag_cache_tick(g);
|
||||||
}
|
}
|
||||||
@@ -2137,7 +2116,6 @@ static int vj_perform_apply_secundary(veejay_t * info,performer_t *p, int this_s
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ssm = vj_perform_use_cached_frame(cached_frame,dst);
|
ssm = vj_perform_use_cached_frame(cached_frame,dst);
|
||||||
error = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -2150,7 +2128,6 @@ static void vj_perform_tag_render_chain_entry(veejay_t *info,performer_t *p,vjp_
|
|||||||
{
|
{
|
||||||
VJFrameInfo *frameinfo;
|
VJFrameInfo *frameinfo;
|
||||||
video_playback_setup *settings = info->settings;
|
video_playback_setup *settings = info->settings;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
|
|
||||||
frameinfo = info->effect_frame_info;
|
frameinfo = info->effect_frame_info;
|
||||||
|
|
||||||
@@ -2206,7 +2183,6 @@ static int vj_perform_preprocess_secundary( veejay_t *info,performer_t *p, int
|
|||||||
|
|
||||||
int n = 0;
|
int n = 0;
|
||||||
video_playback_setup *settings = info->settings;
|
video_playback_setup *settings = info->settings;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
|
|
||||||
VJFrame top,sub;
|
VJFrame top,sub;
|
||||||
veejay_memcpy(&top, F[1], sizeof(VJFrame));
|
veejay_memcpy(&top, F[1], sizeof(VJFrame));
|
||||||
@@ -2297,7 +2273,6 @@ static void vj_perform_render_chain_entry(veejay_t *info,performer_t *p, vjp_kf
|
|||||||
{
|
{
|
||||||
VJFrameInfo *frameinfo;
|
VJFrameInfo *frameinfo;
|
||||||
video_playback_setup *settings = info->settings;
|
video_playback_setup *settings = info->settings;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
|
|
||||||
frameinfo = info->effect_frame_info;
|
frameinfo = info->effect_frame_info;
|
||||||
|
|
||||||
@@ -2341,8 +2316,6 @@ static void vj_perform_render_chain_entry(veejay_t *info,performer_t *p, vjp_kf
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int clear_framebuffer__ = 0;
|
|
||||||
|
|
||||||
static void vj_perform_sample_complete_buffers(veejay_t * info,performer_t *p, vjp_kf *effect_info, int *hint444, VJFrame *f0, VJFrame *f1, int sample_id, int pm, vjp_kf *setup)
|
static void vj_perform_sample_complete_buffers(veejay_t * info,performer_t *p, vjp_kf *effect_info, int *hint444, VJFrame *f0, VJFrame *f1, int sample_id, int pm, vjp_kf *setup)
|
||||||
{
|
{
|
||||||
sample_info *si = sample_get(sample_id);
|
sample_info *si = sample_get(sample_id);
|
||||||
@@ -2350,7 +2323,6 @@ static void vj_perform_sample_complete_buffers(veejay_t * info,performer_t *p, v
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
sample_eff_chain **chain = si->effect_chain;
|
sample_eff_chain **chain = si->effect_chain;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
|
|
||||||
int chain_entry;
|
int chain_entry;
|
||||||
VJFrame *frames[2];
|
VJFrame *frames[2];
|
||||||
@@ -2398,7 +2370,6 @@ static void vj_perform_tag_complete_buffers(veejay_t * info, performer_t *p,vjp_
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
sample_eff_chain **chain = tag->effect_chain;
|
sample_eff_chain **chain = tag->effect_chain;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
int chain_entry;
|
int chain_entry;
|
||||||
VJFrame *frames[2];
|
VJFrame *frames[2];
|
||||||
frames[0] = f0;
|
frames[0] = f0;
|
||||||
@@ -2424,7 +2395,6 @@ static void vj_perform_tag_complete_buffers(veejay_t * info, performer_t *p,vjp_
|
|||||||
|
|
||||||
static void vj_perform_plain_fill_buffer(veejay_t * info, performer_t *p,VJFrame *dst, int sample_id, int mode, long frame_num)
|
static void vj_perform_plain_fill_buffer(veejay_t * info, performer_t *p,VJFrame *dst, int sample_id, int mode, long frame_num)
|
||||||
{
|
{
|
||||||
video_playback_setup *settings = (video_playback_setup*) info->settings;
|
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
performer_global_t *g = (performer_global_t*) info->performer;
|
||||||
|
|
||||||
VJFrame frame;
|
VJFrame frame;
|
||||||
@@ -2472,7 +2442,6 @@ static int rec_audio_sample_ = 0;
|
|||||||
static int vj_perform_render_sample_frame(veejay_t *info, performer_t *p, uint8_t *frame[4], int sample, int type)
|
static int vj_perform_render_sample_frame(veejay_t *info, performer_t *p, uint8_t *frame[4], int sample, int type)
|
||||||
{
|
{
|
||||||
int audio_len = 0;
|
int audio_len = 0;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
|
|
||||||
if( type == 0 && info->audio == AUDIO_PLAY ) {
|
if( type == 0 && info->audio == AUDIO_PLAY ) {
|
||||||
if( info->current_edit_list->has_audio )
|
if( info->current_edit_list->has_audio )
|
||||||
@@ -2653,7 +2622,6 @@ void vj_perform_start_offline_recorder(veejay_t *v, int rec_format, int stream_i
|
|||||||
{
|
{
|
||||||
char tmp[2048];
|
char tmp[2048];
|
||||||
char prefix[40];
|
char prefix[40];
|
||||||
video_playback_setup *s = v->settings;
|
|
||||||
|
|
||||||
if(rec_format==-1)
|
if(rec_format==-1)
|
||||||
{
|
{
|
||||||
@@ -2822,7 +2790,6 @@ void vj_perform_record_sample_frame(veejay_t *info, int sample, int type) {
|
|||||||
void vj_perform_record_offline_tag_frame(veejay_t *info)
|
void vj_perform_record_offline_tag_frame(veejay_t *info)
|
||||||
{
|
{
|
||||||
video_playback_setup *settings = info->settings;
|
video_playback_setup *settings = info->settings;
|
||||||
uint8_t *frame[4];
|
|
||||||
int res = 1;
|
int res = 1;
|
||||||
int stream_id = settings->offline_tag_id;
|
int stream_id = settings->offline_tag_id;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
performer_global_t *g = (performer_global_t*) info->performer;
|
||||||
@@ -2940,7 +2907,6 @@ static void vj_perform_tag_fill_buffer(veejay_t * info, performer_t *p, VJFrame
|
|||||||
{
|
{
|
||||||
int error = 1;
|
int error = 1;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
performer_global_t *g = (performer_global_t*) info->performer;
|
||||||
int type = p->pvar_.type;
|
|
||||||
int active = p->pvar_.active;
|
int active = p->pvar_.active;
|
||||||
|
|
||||||
if(info->settings->feedback && info->settings->feedback_stage > 1 ) {
|
if(info->settings->feedback && info->settings->feedback_stage > 1 ) {
|
||||||
@@ -3011,7 +2977,6 @@ void vj_perform_follow_fade(veejay_t *info, int status) {
|
|||||||
static int vj_perform_post_chain_sample(veejay_t *info,performer_t *p, VJFrame *frame, int sample_id)
|
static int vj_perform_post_chain_sample(veejay_t *info,performer_t *p, VJFrame *frame, int sample_id)
|
||||||
{
|
{
|
||||||
int opacity;
|
int opacity;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
int mode = p->pvar_.fader_active;
|
int mode = p->pvar_.fader_active;
|
||||||
int follow = 0;
|
int follow = 0;
|
||||||
int fade_alpha_method = p->pvar_.fade_alpha;
|
int fade_alpha_method = p->pvar_.fade_alpha;
|
||||||
@@ -3095,7 +3060,6 @@ static int vj_perform_post_chain_sample(veejay_t *info,performer_t *p, VJFrame *
|
|||||||
static int vj_perform_post_chain_tag(veejay_t *info,performer_t *p, VJFrame *frame, int sample_id)
|
static int vj_perform_post_chain_tag(veejay_t *info,performer_t *p, VJFrame *frame, int sample_id)
|
||||||
{
|
{
|
||||||
int opacity = 0; //@off
|
int opacity = 0; //@off
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
int mode = p->pvar_.fader_active;
|
int mode = p->pvar_.fader_active;
|
||||||
int follow = 0;
|
int follow = 0;
|
||||||
int fade_alpha_method = p->pvar_.fade_alpha;
|
int fade_alpha_method = p->pvar_.fade_alpha;
|
||||||
@@ -3333,8 +3297,6 @@ static void vj_perform_render_osd( veejay_t *info, video_playback_setup *set
|
|||||||
{
|
{
|
||||||
if(info->use_osd <= 0 )
|
if(info->use_osd <= 0 )
|
||||||
return;
|
return;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
performer_t *p = g->A;
|
|
||||||
|
|
||||||
if( !frame->ssm) //FIXME: this is costly just to render OSD
|
if( !frame->ssm) //FIXME: this is costly just to render OSD
|
||||||
{
|
{
|
||||||
@@ -3364,7 +3326,6 @@ static void vj_perform_render_osd( veejay_t *info, video_playback_setup *set
|
|||||||
|
|
||||||
static void vj_perform_finish_chain( veejay_t *info,performer_t *p,VJFrame *frame, int sample_id, int source_type )
|
static void vj_perform_finish_chain( veejay_t *info,performer_t *p,VJFrame *frame, int sample_id, int source_type )
|
||||||
{
|
{
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
if(source_type == VJ_PLAYBACK_MODE_TAG )
|
if(source_type == VJ_PLAYBACK_MODE_TAG )
|
||||||
@@ -3387,7 +3348,6 @@ static void vj_perform_finish_render( veejay_t *info,performer_t *p,VJFrame
|
|||||||
char *osd_text = NULL;
|
char *osd_text = NULL;
|
||||||
char *more_text = NULL;
|
char *more_text = NULL;
|
||||||
int placement= 0;
|
int placement= 0;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
|
|
||||||
pri[0] = p->primary_buffer[0]->Y;
|
pri[0] = p->primary_buffer[0]->Y;
|
||||||
pri[1] = p->primary_buffer[0]->Cb;
|
pri[1] = p->primary_buffer[0]->Cb;
|
||||||
@@ -3565,8 +3525,6 @@ static void vj_perform_finish_render( veejay_t *info,performer_t *p,VJFrame
|
|||||||
|
|
||||||
static void vj_perform_render_font( veejay_t *info, video_playback_setup *settings, VJFrame *frame )
|
static void vj_perform_render_font( veejay_t *info, video_playback_setup *settings, VJFrame *frame )
|
||||||
{
|
{
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
performer_t *p = g->A;
|
|
||||||
/*
|
/*
|
||||||
frame->data[0] = p->primary_buffer[0]->Y;
|
frame->data[0] = p->primary_buffer[0]->Y;
|
||||||
frame->data[1] = p->primary_buffer[0]->Cb;
|
frame->data[1] = p->primary_buffer[0]->Cb;
|
||||||
@@ -3749,9 +3707,6 @@ static int vj_perform_transition_get_sample_position(int sample_id)
|
|||||||
|
|
||||||
int vj_perform_transition_sample( veejay_t *info, VJFrame *srcA, VJFrame *srcB ) {
|
int vj_perform_transition_sample( veejay_t *info, VJFrame *srcA, VJFrame *srcB ) {
|
||||||
video_playback_setup *settings = info->settings;
|
video_playback_setup *settings = info->settings;
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
|
||||||
performer_t *a = g->A;
|
|
||||||
performer_t *b = g->B;
|
|
||||||
|
|
||||||
if( settings->current_playback_speed > 0 ) {
|
if( settings->current_playback_speed > 0 ) {
|
||||||
settings->transition.timecode =
|
settings->transition.timecode =
|
||||||
@@ -3883,7 +3838,6 @@ void vj_perform_render_video_frames(veejay_t *info, performer_t *p, vjp_kf *effe
|
|||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
performer_global_t *g = (performer_global_t*) info->performer;
|
||||||
|
|
||||||
int is444 = 0;
|
int is444 = 0;
|
||||||
int res = 0;
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int safe_ff = p->pvar_.follow_fade;
|
int safe_ff = p->pvar_.follow_fade;
|
||||||
int safe_fv = p->pvar_.fade_value;
|
int safe_fv = p->pvar_.fade_value;
|
||||||
@@ -3989,8 +3943,6 @@ int vj_perform_queue_video_frame(veejay_t *info, const int skip_incr)
|
|||||||
|
|
||||||
performer_global_t *g = (performer_global_t*) info->performer;
|
performer_global_t *g = (performer_global_t*) info->performer;
|
||||||
|
|
||||||
performer_t *p = g->A;
|
|
||||||
|
|
||||||
vj_perform_queue_video_frames( info, info->effect_frame1, info->effect_frame2, g->A, skip_incr, info->uc->sample_id, info->uc->playback_mode, info->settings->current_frame_num);
|
vj_perform_queue_video_frames( info, info->effect_frame1, info->effect_frame2, g->A, skip_incr, info->uc->sample_id, info->uc->playback_mode, info->settings->current_frame_num);
|
||||||
|
|
||||||
int transition_enabled = info->settings->transition.active;
|
int transition_enabled = info->settings->transition.active;
|
||||||
@@ -4097,7 +4049,6 @@ int vj_perform_queue_frame(veejay_t * info, int skip )
|
|||||||
speed = 0;
|
speed = 0;
|
||||||
if(settings->hold_pos == 0 ) {
|
if(settings->hold_pos == 0 ) {
|
||||||
settings->hold_status = 0;
|
settings->hold_status = 0;
|
||||||
long was_at_pos = settings->current_frame_num;
|
|
||||||
veejay_increase_frame(info, settings->hold_resume );
|
veejay_increase_frame(info, settings->hold_resume );
|
||||||
if( speed == 0 )
|
if( speed == 0 )
|
||||||
speed = settings->current_playback_speed;
|
speed = settings->current_playback_speed;
|
||||||
|
|||||||
@@ -21,11 +21,11 @@
|
|||||||
|
|
||||||
#ifndef VJ_SHM
|
#ifndef VJ_SHM
|
||||||
#define VJ_SHM
|
#define VJ_SHM
|
||||||
int vj_shm_write( void *vv, uint8_t *frame[3], int plane_sizes[3] );
|
int vj_shm_write( void *vv, uint8_t *frame[4], int plane_sizes[4] );
|
||||||
void *vj_shm_new_slave(int shm_id);
|
void *vj_shm_new_slave(int shm_id);
|
||||||
void vj_shm_free_slave(void *vv);
|
void vj_shm_free_slave(void *vv);
|
||||||
void *vj_shm_new_master(const char *homedir, VJFrame *frame);
|
void *vj_shm_new_master(const char *homedir, VJFrame *frame);
|
||||||
int vj_shm_read( void *vv, uint8_t *dst[3] );
|
int vj_shm_read( void *vv, uint8_t *dst[4] );
|
||||||
int vj_shm_stop( void *vv );
|
int vj_shm_stop( void *vv );
|
||||||
void vj_shm_free(void *vv);
|
void vj_shm_free(void *vv);
|
||||||
int vj_shm_get_status( void *vv );
|
int vj_shm_get_status( void *vv );
|
||||||
|
|||||||
Reference in New Issue
Block a user