diff options
Diffstat (limited to 'debian/transcode/transcode-1.1.7/tools/tcstub.c')
| -rw-r--r-- | debian/transcode/transcode-1.1.7/tools/tcstub.c | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/debian/transcode/transcode-1.1.7/tools/tcstub.c b/debian/transcode/transcode-1.1.7/tools/tcstub.c new file mode 100644 index 00000000..50271d8f --- /dev/null +++ b/debian/transcode/transcode-1.1.7/tools/tcstub.c @@ -0,0 +1,273 @@ +/* + * tcstub.c - stub (but with sane values) symbols for transcode + * support programs. + * + * Copyright (C) Tilmann Bitterberg - August 2002 + * updated and partially rewritten by + * Copyright (C) Francesco Romani - January 2006 + * + * This file is part of transcode, a video stream processing tool + * + * transcode is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * transcode is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "tcstub.h" + +struct filter_struct filter[MAX_FILTERS]; + +/* FIXME: what about ex_asr and ex_par ? */ +static vob_t vob = { + .verbose = TC_INFO, + + .has_video = 1, + .has_audio = 1, + + /* some sane settings, mostly identical to transcode's ones */ + .fps = PAL_FPS, + .ex_fps = PAL_FPS, + .im_v_width = PAL_W, + .ex_v_width = PAL_W, + .im_v_height= PAL_H, + .ex_v_height= PAL_H, + + .im_v_codec = CODEC_YUV, + .im_a_codec = CODEC_PCM, + .ex_v_codec = CODEC_YUV, + .ex_a_codec = CODEC_PCM, + + .im_frc = 3, + .ex_frc = 3, + + .a_rate = RATE, + .a_chan = CHANNELS, + .a_bits = BITS, + .a_vbr = AVBR, + + .mod_path = MOD_PATH, + + .video_in_file = "/dev/zero", + .audio_in_file = "/dev/zero", + .video_out_file = "/dev/null", + .audio_out_file = "/dev/null", + .audiologfile = "/dev/null", + + .mp3bitrate = ABITRATE, + .mp3quality = AQUALITY, + .mp3mode = AMODE, + .mp3frequency = RATE, + + .divxlogfile = "/dev/null", + .divxmultipass = VMULTIPASS, + .divxbitrate = VBITRATE, + .divxkeyframes = VKEYFRAMES, + .divxcrispness = VCRISPNESS, + + .a_leap_frame = TC_LEAP_FRAME, + .a_leap_bytes = 0, + + .export_attributes= TC_EXPORT_ATTRIBUTE_NONE, +}; + +// dependencies +// Yeah, this sucks +vob_t *tc_get_vob() +{ + return &vob; +} + +int tc_filter_add(const char *name, const char *options) +{ + return 0; +} + +int tc_filter_find(const char *name) +{ + return 0; +} + +pthread_mutex_t abuffer_im_fill_lock = PTHREAD_MUTEX_INITIALIZER; +uint32_t abuffer_im_fill_ctr = 0; +pthread_mutex_t abuffer_ex_fill_lock = PTHREAD_MUTEX_INITIALIZER; +uint32_t abuffer_ex_fill_ctr = 0; +pthread_mutex_t abuffer_xx_fill_lock = PTHREAD_MUTEX_INITIALIZER; +uint32_t abuffer_xx_fill_ctr = 0; +pthread_mutex_t vbuffer_im_fill_lock = PTHREAD_MUTEX_INITIALIZER; +uint32_t vbuffer_im_fill_ctr = 0; +pthread_mutex_t vbuffer_ex_fill_lock = PTHREAD_MUTEX_INITIALIZER; +uint32_t vbuffer_ex_fill_ctr = 0; +pthread_mutex_t vbuffer_xx_fill_lock = PTHREAD_MUTEX_INITIALIZER; +uint32_t vbuffer_xx_fill_ctr = 0; + +int tc_import_status() +{ + return 1; +} + +#ifdef TC_FRAMEBUFFER_STUBS +void vframe_copy(vframe_list_t *dst, const vframe_list_t *src, int copy_data) +{ + return; +} + +void aframe_copy(aframe_list_t *dst, const aframe_list_t *src, int copy_data) +{ + return; +} + + +vframe_list_t *tc_new_video_frame(int width, int height, int format, + int partial) +{ + return NULL; +} + +aframe_list_t *tc_new_audio_frame(double samples, int channels, int bits) +{ + return NULL; +} + +void tc_del_video_frame(vframe_list_t *vptr) +{ + return; +} + +void tc_del_audio_frame(aframe_list_t *aptr) +{ + return; +} + +#endif /* TC_FRAMEBUFFER_STUBS */ + + +int tc_progress_meter = 1; +int tc_progress_rate = 1; + +int resize1 = 0; // probe_source_xml() +int resize2 = 0; // probe_source_xml() +int zoom = 0; // probe_source_xml() + + +int tc_cluster_mode = 0; +pid_t tc_probe_pid = 0; + +/* symbols needed by modules */ +int verbose = TC_INFO; +int rgbswap = 0; +int tc_accel = -1; //acceleration code +int flip = 0; +int max_frame_buffer = 0; +int gamma_table_flag = 0; + +void tc_socket_config(void); +void tc_socket_disable(void); +void tc_socket_enable(void); +void tc_socket_list(void); +void tc_socket_load(void); +void tc_socket_parameter(void); +void tc_socket_preview(void); +void tc_socket_config(void) {} +void tc_socket_disable(void) {} +void tc_socket_enable(void) {} +void tc_socket_list(void) {} +void tc_socket_load(void) {} +void tc_socket_parameter(void) {} +void tc_socket_preview(void) {} +void tc_socket_poll(void) {} +void tc_socket_wait(void) {} + +int tc_import_video_running(void) +{ + return TC_TRUE; +} + +int tc_import_audio_running(void) +{ + return TC_TRUE; +} + + +int load_plugin(const char *path, int id, int verbose) +{ + const char *error = NULL; + char module[TC_BUF_MAX]; + int n; + + if (filter[id].name == NULL) { + tc_log_error(__FILE__, "bad filter#%i name (%s)", + id, filter[id].name); + return -1; + } + + filter[id].options = NULL; + + /* replace "=" by "/0" in filter name */ + for (n = 0; n < strlen(filter[id].name); n++) { + if (filter[id].name[n] == '=') { + filter[id].name[n] = '\0'; + filter[id].options = filter[id].name + n + 1; + break; + } + } + + tc_snprintf(module, sizeof(module), "%s/filter_%s.so", path, filter[id].name); + + /* try transcode's module directory */ + filter[id].handle = dlopen(module, RTLD_LAZY); + + if (filter[id].handle != NULL) { + filter[id].entry = dlsym(filter[id].handle, "tc_filter"); + } else { + if (verbose) { + tc_log_error(__FILE__, "loading filter module '%s' failed (reason: %s)", + module, dlerror()); + } + return -1; + } + + error = dlerror(); + if (error != NULL) { + if (verbose) { + tc_log_error(__FILE__, "error while loading '%s': %s\n", + module, error); + } + return -1; + } + return 0; +} + +#include "libtc/ratiocodes.h" +void dummy_misc(void); +void dummy_misc(void) +{ + int n, d; + tc_frc_code_to_ratio(3, &n, &d); +} + +#include "libtc/static_optstr.h" +#include "avilib/static_avilib.h" +#include "avilib/static_wavlib.h" + +/*************************************************************************/ + +/* + * Local variables: + * c-file-style: "stroustrup" + * c-file-offsets: ((case-label . *) (statement-case-intro . *)) + * indent-tabs-mode: nil + * End: + * + * vim: expandtab shiftwidth=4: + */ |
