本文整理汇总了C++中config_ChainParse函数的典型用法代码示例。如果您正苦于以下问题:C++ config_ChainParse函数的具体用法?C++ config_ChainParse怎么用?C++ config_ChainParse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了config_ChainParse函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: Create
/*****************************************************************************
* Create: allocates Distort video filter
*****************************************************************************/
static int Create( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
if( p_filter->fmt_in.video.i_chroma != p_filter->fmt_out.video.i_chroma )
{
msg_Err( p_filter, "Input and output chromas don't match" );
return VLC_EGENERIC;
}
switch( p_filter->fmt_in.video.i_chroma )
{
CASE_PLANAR_YUV
p_filter->pf_video_filter = Filter;
break;
CASE_PACKED_YUV_422
p_filter->pf_video_filter = FilterPacked;
break;
default:
msg_Err( p_filter, "Unsupported input chroma (%4.4s)",
(char*)&(p_filter->fmt_in.video.i_chroma) );
return VLC_EGENERIC;
}
/* Allocate structure */
p_filter->p_sys = (filter_sys_t *)malloc( sizeof( filter_sys_t ) ); // sunqueen modify
if( p_filter->p_sys == NULL )
return VLC_ENOMEM;
p_sys = p_filter->p_sys;
config_ChainParse( p_filter, FILTER_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
if( var_InheritBool( p_filter, FILTER_PREFIX "use-motion" ) )
{
p_sys->p_motion = motion_create( VLC_OBJECT( p_filter ) );
if( p_sys->p_motion == NULL )
{
free( p_sys );
return VLC_EGENERIC;
}
}
else
{
float f_angle = var_CreateGetFloatCommand( p_filter,
FILTER_PREFIX "angle" );
store_trigo( p_sys, f_angle );
var_AddCallback( p_filter, FILTER_PREFIX "angle",
RotateCallback, p_sys );
p_sys->p_motion = NULL;
}
return VLC_SUCCESS;
}
开发者ID:12307,项目名称:VLC-for-VS2010,代码行数:60,代码来源:rotate.c
示例2: Open
/*****************************************************************************
* Open: open the file
*****************************************************************************/
static int Open( vlc_object_t *p_this )
{
sout_access_out_t *p_access = (sout_access_out_t*)p_this;
sout_access_out_sys_t *p_sys;
char *psz_idx;
config_ChainParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg );
if( !p_access->psz_path )
{
msg_Err( p_access, "no file name specified" );
return VLC_EGENERIC;
}
if( !( p_sys = malloc ( sizeof( *p_sys ) ) ) )
return VLC_ENOMEM;
p_sys->i_seglen = var_GetInteger( p_access, SOUT_CFG_PREFIX "seglen" );
p_sys->i_seglenm = CLOCK_FREQ * p_sys->i_seglen;
p_sys->i_numsegs = var_GetInteger( p_access, SOUT_CFG_PREFIX "numsegs" );
p_sys->b_splitanywhere = var_GetBool( p_access, SOUT_CFG_PREFIX "splitanywhere" );
p_sys->b_delsegs = var_GetBool( p_access, SOUT_CFG_PREFIX "delsegs" );
p_sys->b_ratecontrol = var_GetBool( p_access, SOUT_CFG_PREFIX "ratecontrol") ;
p_sys->psz_indexPath = NULL;
psz_idx = var_GetNonEmptyString( p_access, SOUT_CFG_PREFIX "index" );
if ( psz_idx )
{
char *psz_tmp;
psz_tmp = str_format( p_access, psz_idx );
free( psz_idx );
if ( !psz_tmp )
{
free( p_sys );
return VLC_ENOMEM;
}
path_sanitize( psz_tmp );
p_sys->psz_indexPath = psz_tmp;
vlc_unlink( p_sys->psz_indexPath );
}
p_sys->psz_indexUrl = var_GetNonEmptyString( p_access, SOUT_CFG_PREFIX "index-url" );
p_access->p_sys = p_sys;
p_sys->i_handle = -1;
p_sys->i_segment = 0;
p_sys->psz_cursegPath = NULL;
p_access->pf_write = Write;
p_access->pf_seek = Seek;
p_access->pf_control = Control;
return VLC_SUCCESS;
}
开发者ID:Italianmoose,项目名称:Stereoscopic-VLC,代码行数:58,代码来源:livehttp.c
示例3: Create
/*****************************************************************************
* Create: allocates video thread output method
*****************************************************************************/
static int Create( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
char *psz_temp, *psz_cmd;
int i_ret;
/* Allocate structure */
p_filter->p_sys = (filter_sys_t *)malloc( sizeof( filter_sys_t ) ); // sunqueen modify
if( p_filter->p_sys == NULL )
return VLC_ENOMEM;
p_sys = p_filter->p_sys;
p_sys->b_done = false;
p_filter->pf_video_filter = Filter;
/* needed to get options passed in transcode using the
* adjust{name=value} syntax */
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
p_sys->i_loops = var_CreateGetIntegerCommand( p_filter,
CFG_PREFIX "loops" );
p_sys->i_alpha = var_CreateGetIntegerCommand( p_filter,
CFG_PREFIX "alpha" );
psz_temp = var_CreateGetStringCommand( p_filter, CFG_PREFIX "base-chroma" );
p_sys->i_base_chroma = VLC_FOURCC( psz_temp[0], psz_temp[1],
psz_temp[2], psz_temp[3] );
psz_cmd = var_CreateGetStringCommand( p_filter, CFG_PREFIX "base-image" );
i_ret = blendbench_LoadImage( p_this, &p_sys->p_base_image,
p_sys->i_base_chroma, psz_cmd, "Base" );
free( psz_temp );
free( psz_cmd );
if( i_ret != VLC_SUCCESS )
{
free( p_sys );
return i_ret;
}
psz_temp = var_CreateGetStringCommand( p_filter,
CFG_PREFIX "blend-chroma" );
p_sys->i_blend_chroma = VLC_FOURCC( psz_temp[0], psz_temp[1],
psz_temp[2], psz_temp[3] );
psz_cmd = var_CreateGetStringCommand( p_filter, CFG_PREFIX "blend-image" );
blendbench_LoadImage( p_this, &p_sys->p_blend_image, p_sys->i_blend_chroma,
psz_cmd, "Blend" );
free( psz_temp );
free( psz_cmd );
return VLC_SUCCESS;
}
开发者ID:12307,项目名称:VLC-for-VS2010,代码行数:56,代码来源:blendbench.c
示例4: Create
/*****************************************************************************
* Create: initialize and set pf_video_filter()
*****************************************************************************/
static int Create( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
const vlc_chroma_description_t *p_chroma =
vlc_fourcc_GetChromaDescription( p_filter->fmt_in.video.i_chroma );
if( p_chroma == NULL || p_chroma->plane_count == 0 )
return VLC_EGENERIC;
config_ChainParse( p_filter, CFG_PREFIX, ppsz_vfilter_options,
p_filter->p_cfg );
p_filter->p_sys = p_sys = calloc( 1, sizeof( filter_sys_t ) );
if( p_filter->p_sys == NULL )
return VLC_ENOMEM;
p_sys->p_image = image_HandlerCreate( p_this );
if( !p_sys->p_image )
{
msg_Err( p_this, "Couldn't get handle to image conversion routines." );
free( p_sys );
return VLC_EGENERIC;
}
p_sys->psz_format = var_CreateGetString( p_this, CFG_PREFIX "format" );
p_sys->i_format = image_Type2Fourcc( p_sys->psz_format );
if( !p_sys->i_format )
{
msg_Err( p_filter, "Could not find FOURCC for image type '%s'",
p_sys->psz_format );
image_HandlerDelete( p_sys->p_image );
free( p_sys->psz_format );
free( p_sys );
return VLC_EGENERIC;
}
p_sys->i_width = var_CreateGetInteger( p_this, CFG_PREFIX "width" );
p_sys->i_height = var_CreateGetInteger( p_this, CFG_PREFIX "height" );
p_sys->i_ratio = var_CreateGetInteger( p_this, CFG_PREFIX "ratio" );
if( p_sys->i_ratio <= 0)
p_sys->i_ratio = 1;
p_sys->b_replace = var_CreateGetBool( p_this, CFG_PREFIX "replace" );
p_sys->psz_prefix = var_CreateGetString( p_this, CFG_PREFIX "prefix" );
p_sys->psz_path = var_GetNonEmptyString( p_this, CFG_PREFIX "path" );
if( p_sys->psz_path == NULL )
p_sys->psz_path = config_GetUserDir( VLC_PICTURES_DIR );
p_filter->pf_video_filter = Filter;
return VLC_SUCCESS;
}
开发者ID:AsamQi,项目名称:vlc,代码行数:54,代码来源:scene.c
示例5: CreateFilter
/*****************************************************************************
* CreateFilter: allocates marquee video filter
*****************************************************************************/
static int CreateFilter( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
/* Allocate structure */
p_sys = p_filter->p_sys = malloc( sizeof( filter_sys_t ) );
if( p_sys == NULL )
return VLC_ENOMEM;
p_sys->p_style = text_style_Create( STYLE_NO_DEFAULTS );
if(unlikely(!p_sys->p_style))
{
free(p_sys);
return VLC_ENOMEM;
}
vlc_mutex_init( &p_sys->lock );
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
#define CREATE_VAR( stor, type, var ) \
p_sys->stor = var_CreateGet##type##Command( p_filter, var ); \
var_AddCallback( p_filter, var, MarqueeCallback, p_sys );
CREATE_VAR( i_xoff, Integer, "marq-x" );
CREATE_VAR( i_yoff, Integer, "marq-y" );
CREATE_VAR( i_timeout,Integer, "marq-timeout" );
p_sys->i_refresh = 1000 * var_CreateGetIntegerCommand( p_filter,
"marq-refresh" );
var_AddCallback( p_filter, "marq-refresh", MarqueeCallback, p_sys );
CREATE_VAR( i_pos, Integer, "marq-position" );
CREATE_VAR( format, String, "marq-marquee" );
p_sys->filepath = var_InheritString( p_filter, "marq-file" );
p_sys->message = NULL;
p_sys->p_style->i_font_alpha = var_CreateGetIntegerCommand( p_filter,
"marq-opacity" );
var_AddCallback( p_filter, "marq-opacity", MarqueeCallback, p_sys );
p_sys->p_style->i_features |= STYLE_HAS_FONT_ALPHA;
CREATE_VAR( p_style->i_font_color, Integer, "marq-color" );
p_sys->p_style->i_features |= STYLE_HAS_FONT_COLOR;
CREATE_VAR( p_style->i_font_size, Integer, "marq-size" );
/* Misc init */
p_filter->pf_sub_source = Filter;
p_sys->last_time = 0;
return VLC_SUCCESS;
}
开发者ID:0xheart0,项目名称:vlc,代码行数:53,代码来源:marq.c
示例6: Open
static int Open(vlc_object_t *obj)
{
filter_t *filter = (filter_t *)obj;
if (filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_420
&& filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_422
&& filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_444)
return VLC_EGENERIC;
if (!video_format_IsSimilar(&filter->fmt_in.video, &filter->fmt_out.video))
return VLC_EGENERIC;
/* Check for sharpen support */
vdp_t *vdp;
VdpDevice device;
VdpStatus err;
VdpBool ok;
err = vdp_get_x11(NULL, -1, &vdp, &device);
if (err != VDP_STATUS_OK)
return VLC_EGENERIC; /* Weird. The decoder should be active... */
err = vdp_video_mixer_query_feature_support(vdp, device,
VDP_VIDEO_MIXER_FEATURE_SHARPNESS, &ok);
if (err != VDP_STATUS_OK)
ok = VDP_FALSE;
vdp_release_x11(vdp);
if (ok != VDP_TRUE)
{
msg_Err(filter, "sharpening/blurring not supported by VDPAU device");
return VLC_EGENERIC;
}
/* Initialization */
filter_sys_t *sys = malloc(sizeof (*sys));
if (unlikely(sys == NULL))
return VLC_ENOMEM;
filter->pf_video_filter = Sharpen;
filter->p_sys = sys;
config_ChainParse(filter, "sharpen-", options, filter->p_cfg);
var_AddCallback(filter, "sharpen-sigma", SharpenCallback, sys);
union { uint32_t u; float f; } u;
u.f = vlc_to_vdp_sigma(var_CreateGetFloatCommand(filter, "sharpen-sigma"));
atomic_init(&sys->sigma, u.u);
return VLC_SUCCESS;
}
开发者ID:mstorsjo,项目名称:vlc,代码行数:50,代码来源:sharpen.c
示例7: Create
static int Create( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
if( p_filter->fmt_in.video.i_chroma != VLC_CODEC_I420
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_J420
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_YV12
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_I422
&& p_filter->fmt_in.video.i_chroma != VLC_CODEC_J422
)
{
/* We only want planar YUV 4:2:0 or 4:2:2 */
msg_Err( p_filter, "Unsupported input chroma (%4.4s)",
(char*)&(p_filter->fmt_in.video.i_chroma) );
return VLC_EGENERIC;
}
if( p_filter->fmt_in.video.i_chroma != p_filter->fmt_out.video.i_chroma )
{
msg_Err( p_filter, "Input and output chromas don't match" );
return VLC_EGENERIC;
}
p_filter->p_sys = malloc( sizeof( filter_sys_t ) );
if( p_filter->p_sys == NULL )
return VLC_ENOMEM;
config_ChainParse( p_filter, FILTER_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
p_filter->pf_video_filter = Filter;
p_filter->p_sys->f_sigma =
var_CreateGetFloat( p_filter, FILTER_PREFIX "sigma" );
if( p_filter->p_sys->f_sigma <= 0. )
{
msg_Err( p_filter, "sigma must be greater than zero" );
return VLC_EGENERIC;
}
gaussianblur_InitDistribution( p_filter->p_sys );
msg_Dbg( p_filter, "gaussian distribution is %d pixels wide",
p_filter->p_sys->i_dim*2+1 );
p_filter->p_sys->pt_buffer = NULL;
p_filter->p_sys->pt_scale = NULL;
return VLC_SUCCESS;
}
开发者ID:0xheart0,项目名称:vlc,代码行数:49,代码来源:gaussianblur.c
示例8: Create
/*****************************************************************************
* Create: allocates Distort video filter
*****************************************************************************/
static int Create( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
if( p_filter->fmt_in.video.i_chroma != p_filter->fmt_out.video.i_chroma )
{
msg_Err( p_filter, "Input and output chromas don't match" );
return VLC_EGENERIC;
}
switch( p_filter->fmt_in.video.i_chroma )
{
CASE_PLANAR_YUV
p_filter->pf_video_filter = Filter;
break;
CASE_PACKED_YUV_422
p_filter->pf_video_filter = FilterPacked;
break;
default:
msg_Err( p_filter, "Unsupported input chroma (%4s)",
(char*)&(p_filter->fmt_in.video.i_chroma) );
return VLC_EGENERIC;
}
/* Allocate structure */
p_filter->p_sys = malloc( sizeof( filter_sys_t ) );
if( p_filter->p_sys == NULL )
return VLC_ENOMEM;
p_sys = p_filter->p_sys;
config_ChainParse( p_filter, FILTER_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
int i_angle = var_CreateGetIntegerCommand( p_filter,
FILTER_PREFIX "angle" ) * 10;
cache_trigo( i_angle, &p_sys->i_sin, &p_sys->i_cos );
var_Create( p_filter, FILTER_PREFIX "deciangle",
VLC_VAR_INTEGER|VLC_VAR_ISCOMMAND );
vlc_spin_init( &p_sys->lock );
var_AddCallback( p_filter, FILTER_PREFIX "angle", RotateCallback, p_sys );
var_AddCallback( p_filter, FILTER_PREFIX "deciangle",
PreciseRotateCallback, p_sys );
return VLC_SUCCESS;
}
开发者ID:Kafay,项目名称:vlc,代码行数:52,代码来源:rotate.c
示例9: SubsdelayCreate
/*****************************************************************************
* SubsdelayCreate: Create subsdelay filter
*****************************************************************************/
static int SubsdelayCreate( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *) p_this;
filter_sys_t *p_sys;
/* allocate structure */
p_sys = (filter_sys_t*) malloc( sizeof(filter_sys_t) );
if( !p_sys )
{
return VLC_ENOMEM;
}
/* init parameters */
p_sys->i_mode = var_CreateGetIntegerCommand( p_filter, CFG_MODE );
var_AddCallback( p_filter, CFG_MODE, SubsdelayCallback, p_sys );
p_sys->i_factor = FLOAT_FACTOR_TO_INT_FACTOR( var_CreateGetFloatCommand( p_filter, CFG_FACTOR ) );
var_AddCallback( p_filter, CFG_FACTOR, SubsdelayCallback, p_sys );
p_sys->i_overlap = var_CreateGetIntegerCommand( p_filter, CFG_OVERLAP );
var_AddCallback( p_filter, CFG_OVERLAP, SubsdelayCallback, p_sys );
p_sys->i_min_alpha = var_CreateGetIntegerCommand( p_filter, CFG_MIN_ALPHA );
var_AddCallback( p_filter, CFG_MIN_ALPHA, SubsdelayCallback, p_sys );
p_sys->i_min_stops_interval
= MILLISEC_TO_MICROSEC( var_CreateGetIntegerCommand( p_filter, CFG_MIN_STOPS_INTERVAL ) );
var_AddCallback( p_filter, CFG_MIN_STOPS_INTERVAL, SubsdelayCallback, p_sys );
p_sys->i_min_stop_start_interval
= MILLISEC_TO_MICROSEC( var_CreateGetIntegerCommand( p_filter, CFG_MIN_STOP_START_INTERVAL ) );
var_AddCallback( p_filter, CFG_MIN_STOP_START_INTERVAL, SubsdelayCallback, p_sys );
p_sys->i_min_start_stop_interval
= MILLISEC_TO_MICROSEC( var_CreateGetIntegerCommand( p_filter, CFG_MIN_START_STOP_INTERVAL ) );
var_AddCallback( p_filter, CFG_MIN_START_STOP_INTERVAL, SubsdelayCallback, p_sys );
p_filter->p_sys = p_sys;
p_filter->pf_sub_filter = SubsdelayFilter;
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options, p_filter->p_cfg );
SubsdelayHeapInit( &p_sys->heap );
return VLC_SUCCESS;
}
开发者ID:Mettbrot,项目名称:vlc,代码行数:51,代码来源:subsdelay.c
示例10: OpenEncoder
/*****************************************************************************
* OpenEncoder: probe the encoder and return score
*****************************************************************************/
static int OpenEncoder( vlc_object_t *p_this )
{
encoder_t *p_enc = (encoder_t *)p_this;
encoder_sys_t *p_sys;
int i_quality;
int t_flags;
int max_enc_level = 0;
int keyframe_freq_force = 64;
ogg_packet header;
int status;
if( p_enc->fmt_out.i_codec != VLC_CODEC_THEORA &&
!p_enc->obj.force )
{
return VLC_EGENERIC;
}
/* Allocate the memory needed to store the encoder's structure */
if( ( p_sys = malloc(sizeof(encoder_sys_t)) ) == NULL )
return VLC_ENOMEM;
p_enc->p_sys = p_sys;
p_enc->pf_encode_video = Encode;
p_enc->fmt_in.i_codec = VLC_CODEC_I420;
p_enc->fmt_out.i_codec = VLC_CODEC_THEORA;
config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg );
i_quality = var_GetInteger( p_enc, ENC_CFG_PREFIX "quality" );
if( i_quality > 10 ) i_quality = 10;
if( i_quality < 0 ) i_quality = 0;
th_info_init( &p_sys->ti );
p_sys->ti.frame_width = p_enc->fmt_in.video.i_visible_width;
p_sys->ti.frame_height = p_enc->fmt_in.video.i_visible_height;
if( p_sys->ti.frame_width % 16 || p_sys->ti.frame_height % 16 )
{
/* Pictures from the transcoder should always have a pitch
* which is a multiple of 16 */
p_sys->ti.frame_width = (p_sys->ti.frame_width + 15) >> 4 << 4;
p_sys->ti.frame_height = (p_sys->ti.frame_height + 15) >> 4 << 4;
msg_Dbg( p_enc, "padding video from %dx%d to %dx%d",
p_enc->fmt_in.video.i_visible_width, p_enc->fmt_in.video.i_visible_height,
p_sys->ti.frame_width, p_sys->ti.frame_height );
}
开发者ID:mstorsjo,项目名称:vlc,代码行数:51,代码来源:theora.c
示例11: Create
/*****************************************************************************
* Create: allocates adjust video thread output method
*****************************************************************************
* This function allocates and initializes a adjust vout method.
*****************************************************************************/
static int Create( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
switch( p_filter->fmt_in.video.i_chroma )
{
CASE_PLANAR_YUV
p_filter->pf_video_filter = Filter;
break;
CASE_PACKED_YUV_422
p_filter->pf_video_filter = FilterPacked;
break;
default:
msg_Err( p_filter, "Unsupported input chroma (%4.4s)",
(char*)&(p_filter->fmt_in.video.i_chroma) );
return VLC_EGENERIC;
}
if( p_filter->fmt_in.video.i_chroma != p_filter->fmt_out.video.i_chroma )
{
msg_Err( p_filter, "Input and output chromas don't match" );
return VLC_EGENERIC;
}
/* Allocate structure */
p_sys = p_filter->p_sys = malloc( sizeof( filter_sys_t ) );
if( p_filter->p_sys == NULL )
return VLC_ENOMEM;
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
p_sys->i_color = var_CreateGetIntegerCommand( p_filter, CFG_PREFIX "color" );
p_sys->i_simthres = var_CreateGetIntegerCommand( p_filter,
CFG_PREFIX "similaritythres" );
p_sys->i_satthres = var_CreateGetIntegerCommand( p_filter,
CFG_PREFIX "saturationthres" );
vlc_mutex_init( &p_sys->lock );
var_AddCallback( p_filter, CFG_PREFIX "color", FilterCallback, NULL );
var_AddCallback( p_filter, CFG_PREFIX "similaritythres", FilterCallback, NULL );
var_AddCallback( p_filter, CFG_PREFIX "saturationthres", FilterCallback, NULL );
return VLC_SUCCESS;
}
开发者ID:Italianmoose,项目名称:Stereoscopic-VLC,代码行数:53,代码来源:colorthres.c
示例12: Create
static int Create( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
char *psz_string;
if( p_filter->fmt_in.video.i_chroma != VLC_CODEC_YUVA )
{
msg_Err( p_filter,
"Unsupported input chroma \"%4.4s\". "
"Alphamask can only use \"YUVA\".",
(char*)&p_filter->fmt_in.video.i_chroma );
return VLC_EGENERIC;
}
/* Allocate structure */
p_filter->p_sys = malloc( sizeof( filter_sys_t ) );
if( p_filter->p_sys == NULL )
return VLC_ENOMEM;
p_sys = p_filter->p_sys;
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
psz_string =
var_CreateGetStringCommand( p_filter, CFG_PREFIX "mask" );
if( psz_string && *psz_string )
{
LoadMask( p_filter, psz_string );
if( !p_sys->p_mask )
msg_Err( p_filter, "Error while loading mask (%s).",
psz_string );
}
else
p_sys->p_mask = NULL;
free( psz_string );
vlc_mutex_init( &p_sys->mask_lock );
var_AddCallback( p_filter, CFG_PREFIX "mask", MaskCallback,
p_filter );
p_filter->pf_video_filter = Filter;
return VLC_SUCCESS;
}
开发者ID:vlcchina,项目名称:vlc-player-experimental,代码行数:44,代码来源:alphamask.c
示例13: Open
/*****************************************************************************
* Open:
*****************************************************************************/
static int Open( vlc_object_t *p_this )
{
char* psz_tmp;
sout_stream_t *p_stream = (sout_stream_t*)p_this;
sout_stream_sys_t *p_sys;
p_sys = calloc( 1, sizeof( sout_stream_sys_t ) );
if( !p_sys )
return VLC_ENOMEM;
p_stream->p_sys = p_sys;
config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options,
p_stream->p_cfg );
p_sys->time_sync = var_GetBool( p_stream, SOUT_CFG_PREFIX "time-sync" );
psz_tmp = var_GetString( p_stream, SOUT_PREFIX_VIDEO "prerender-callback" );
p_sys->pf_video_prerender_callback = (void (*) (void *, uint8_t**, int))(intptr_t)atoll( psz_tmp );
free( psz_tmp );
psz_tmp = var_GetString( p_stream, SOUT_PREFIX_AUDIO "prerender-callback" );
p_sys->pf_audio_prerender_callback = (void (*) (void* , uint8_t**, unsigned int))(intptr_t)atoll( psz_tmp );
free( psz_tmp );
psz_tmp = var_GetString( p_stream, SOUT_PREFIX_VIDEO "postrender-callback" );
p_sys->pf_video_postrender_callback = (void (*) (void*, uint8_t*, int, int, int, int, mtime_t))(intptr_t)atoll( psz_tmp );
free( psz_tmp );
psz_tmp = var_GetString( p_stream, SOUT_PREFIX_AUDIO "postrender-callback" );
p_sys->pf_audio_postrender_callback = (void (*) (void*, uint8_t*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, mtime_t))(intptr_t)atoll( psz_tmp );
free( psz_tmp );
/* Setting stream out module callbacks */
p_stream->pf_add = Add;
p_stream->pf_del = Del;
p_stream->pf_send = Send;
/* Does the module need out_pace_control? */
if ( p_sys->time_sync )
p_stream->p_sout->i_out_pace_nocontrol++;
return VLC_SUCCESS;
}
开发者ID:LDiracDelta,项目名称:vlc_censor_plugin,代码行数:46,代码来源:smem.c
示例14: Open
static int Open(vlc_object_t *obj)
{
filter_t *filter = (filter_t *)obj;
if (filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_420
&& filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_422
&& filter->fmt_in.video.i_chroma != VLC_CODEC_VDPAU_VIDEO_444)
return VLC_EGENERIC;
if (!video_format_IsSimilar(&filter->fmt_in.video, &filter->fmt_out.video))
return VLC_EGENERIC;
filter_sys_t *sys = malloc(sizeof (*sys));
if (unlikely(sys == NULL))
return VLC_ENOMEM;
filter->pf_video_filter = Adjust;
filter->p_sys = sys;
config_ChainParse(filter, "", options, filter->p_cfg);
float f;
int i;
f = var_CreateGetFloatCommand(filter, "brightness");
var_AddCallback(filter, "brightness", BrightnessCallback,
&sys->brightness);
vlc_atomic_init_float(&sys->brightness, vlc_to_vdp_brightness(f));
f = var_CreateGetFloatCommand(filter, "contrast");
var_AddCallback(filter, "contrast", ContrastCallback, &sys->contrast);
vlc_atomic_init_float(&sys->contrast, vlc_to_vdp_contrast(f));
f = var_CreateGetFloatCommand(filter, "saturation");
var_AddCallback(filter, "saturation", SaturationCallback,
&sys->saturation);
vlc_atomic_init_float(&sys->saturation, vlc_to_vdp_saturation(f));
i = var_CreateGetFloatCommand(filter, "hue");
var_AddCallback(filter, "hue", HueCallback, &sys->hue);
vlc_atomic_init_float(&sys->hue, vlc_to_vdp_hue(i));
return VLC_SUCCESS;
}
开发者ID:etix,项目名称:vlc,代码行数:43,代码来源:adjust.c
示例15: OutOpenAvio
int OutOpenAvio(vlc_object_t *object)
{
sout_access_out_t *access = (sout_access_out_t*)object;
config_ChainParse( access, "sout-avio-", ppsz_sout_options, access->p_cfg );
sout_access_out_sys_t *sys = vlc_obj_malloc(object, sizeof(*sys));
if (!sys)
return VLC_ENOMEM;
sys->context = NULL;
/* */
vlc_init_avformat(object);
if (!access->psz_path)
return VLC_EGENERIC;
int ret;
AVDictionary *options = NULL;
char *psz_opts = var_InheritString(access, "sout-avio-options");
if (psz_opts) {
vlc_av_get_options(psz_opts, &options);
free(psz_opts);
}
ret = avio_open2(&sys->context, access->psz_path, AVIO_FLAG_WRITE,
NULL, &options);
AVDictionaryEntry *t = NULL;
while ((t = av_dict_get(options, "", t, AV_DICT_IGNORE_SUFFIX)))
msg_Err( access, "unknown option \"%s\"", t->key );
av_dict_free(&options);
if (ret < 0) {
errno = AVUNERROR(ret);
msg_Err(access, "Failed to open %s", access->psz_path);
return VLC_EGENERIC;
}
access->pf_write = Write;
access->pf_control = OutControl;
access->pf_seek = OutSeek;
access->p_sys = sys;
return VLC_SUCCESS;
}
开发者ID:mstorsjo,项目名称:vlc,代码行数:43,代码来源:avio.c
示例16: CreateFilter
/*****************************************************************************
* CreateFilter: allocates marquee video filter
*****************************************************************************/
static int CreateFilter( vlc_object_t *p_this )
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
/* Allocate structure */
p_sys = p_filter->p_sys = malloc( sizeof( filter_sys_t ) );
if( p_sys == NULL )
return VLC_ENOMEM;
vlc_mutex_init( &p_sys->lock );
p_sys->p_style = text_style_New();
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
#define CREATE_VAR( stor, type, var ) \
p_sys->stor = var_CreateGet##type##Command( p_filter, var ); \
var_AddCallback( p_filter, var, MarqueeCallback, p_sys );
p_sys->b_need_update = true;
CREATE_VAR( i_xoff, Integer, "marq-x" );
CREATE_VAR( i_yoff, Integer, "marq-y" );
CREATE_VAR( i_timeout,Integer, "marq-timeout" );
p_sys->i_refresh = 1000 * var_CreateGetIntegerCommand( p_filter,
"marq-refresh" );
var_AddCallback( p_filter, "marq-refresh", MarqueeCallback, p_sys );
CREATE_VAR( i_pos, Integer, "marq-position" );
CREATE_VAR( psz_marquee, String, "marq-marquee" );
p_sys->p_style->i_font_alpha = 255 - var_CreateGetIntegerCommand( p_filter,
"marq-opacity" );
var_AddCallback( p_filter, "marq-opacity", MarqueeCallback, p_sys );
CREATE_VAR( p_style->i_font_color, Integer, "marq-color" );
CREATE_VAR( p_style->i_font_size, Integer, "marq-size" );
/* Misc init */
p_filter->pf_sub_filter = Filter;
p_sys->last_time = 0;
return VLC_SUCCESS;
}
开发者ID:FLYKingdom,项目名称:vlc,代码行数:45,代码来源:marq.c
示例17: OpenCommon
/**
* Common open function
*/
static int OpenCommon(vlc_object_t *p_this, bool b_sub)
{
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
/* */
if (!b_sub && !es_format_IsSimilar(&p_filter->fmt_in, &p_filter->fmt_out)) {
msg_Err(p_filter, "Input and output format does not match");
return VLC_EGENERIC;
}
/* */
p_filter->p_sys = p_sys = malloc(sizeof(*p_sys));
if (!p_sys)
return VLC_ENOMEM;
/* */
p_sys->p_blend = NULL;
if (!b_sub) {
p_sys->p_blend = filter_NewBlend(VLC_OBJECT(p_filter),
&p_filter->fmt_in.video);
if (!p_sys->p_blend) {
free(p_sys);
return VLC_EGENERIC;
}
}
/* */
config_ChainParse(p_filter, CFG_PREFIX, ppsz_filter_options,
p_filter->p_cfg);
/* create and initialize variables */
p_sys->i_pos = var_CreateGetInteger(p_filter, CFG_PREFIX "position");
p_sys->i_pos_x = var_CreateGetInteger(p_filter, CFG_PREFIX "x");
p_sys->i_pos_y = var_CreateGetInteger(p_filter, CFG_PREFIX "y");
BarGraph_t *p_BarGraph = &p_sys->p_BarGraph;
p_BarGraph->p_pic = NULL;
p_BarGraph->i_alpha = var_CreateGetInteger(p_filter, CFG_PREFIX "transparency");
p_BarGraph->i_alpha = VLC_CLIP(p_BarGraph->i_alpha, 0, 255);
p_BarGraph->i_values = NULL;
parse_i_values(p_BarGraph, &(char){ 0 });
开发者ID:videolan,项目名称:vlc,代码行数:45,代码来源:audiobargraph_v.c
示例18: Open
/*****************************************************************************
* Open:
*****************************************************************************/
static int Open( vlc_object_t *p_this )
{
sout_stream_t *p_stream = (sout_stream_t*)p_this;
sout_stream_sys_t *p_sys;
vlc_value_t val;
config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg );
p_sys = malloc( sizeof( sout_stream_sys_t ) );
p_sys->i_count = 0;
p_sys->i_count_audio = 0;
p_sys->i_count_video = 0;
var_Get( p_stream, SOUT_CFG_PREFIX "access", &val );
p_sys->psz_access = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "access-audio", &val );
p_sys->psz_access_audio = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "access-video", &val );
p_sys->psz_access_video = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "mux", &val );
p_sys->psz_mux = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "mux-audio", &val );
p_sys->psz_mux_audio = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "mux-video", &val );
p_sys->psz_mux_video = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "dst", &val );
p_sys->psz_dst = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "dst-audio", &val );
p_sys->psz_dst_audio = val.psz_string;
var_Get( p_stream, SOUT_CFG_PREFIX "dst-video", &val );
p_sys->psz_dst_video = val.psz_string;
p_stream->pf_add = Add;
p_stream->pf_del = Del;
p_stream->pf_send = Send;
p_stream->p_sys = p_sys;
return VLC_SUCCESS;
}
开发者ID:FLYKingdom,项目名称:vlc,代码行数:45,代码来源:es.c
示例19: Open
/*****************************************************************************
* Open:
*****************************************************************************/
static int Open( vlc_object_t *p_this )
{
sout_stream_t *p_stream = (sout_stream_t*)p_this;
sout_stream_sys_t *p_sys;
p_stream->pf_add = Add;
p_stream->pf_del = Del;
p_stream->pf_send = Send;
p_stream->p_sys = p_sys = malloc( sizeof(*p_sys) );
if( !p_sys )
return VLC_ENOMEM;
config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg );
p_sys->p_out = NULL;
p_sys->psz_prefix = var_GetNonEmptyString( p_stream, SOUT_CFG_PREFIX "dst-prefix" );
if( !p_sys->psz_prefix )
{
p_sys->psz_prefix = strdup( "sout-record-" );
if( !p_sys->psz_prefix )
{
free( p_sys );
return VLC_ENOMEM;
}
}
p_sys->i_date_start = -1;
p_sys->i_size = 0;
#ifdef OPTIMIZE_MEMORY
p_sys->i_max_wait = 5*CLOCK_FREQ; /* 5s */
p_sys->i_max_size = 1*1024*1024; /* 1 MiB */
#else
p_sys->i_max_wait = 30*CLOCK_FREQ; /* 30s */
p_sys->i_max_size = 20*1024*1024; /* 20 MiB */
#endif
p_sys->b_drop = false;
p_sys->i_dts_start = 0;
TAB_INIT( p_sys->i_id, p_sys->id );
return VLC_SUCCESS;
}
开发者ID:AsamQi,项目名称:vlc,代码行数:45,代码来源:record.c
示例20: Open
/*****************************************************************************
* Open:
*****************************************************************************/
static int Open( vlc_object_t *p_this )
{
sout_stream_t *p_stream = (sout_stream_t*)p_this;
sout_stream_sys_t *p_sys;
char *outputFile;
p_sys = calloc( 1, sizeof( sout_stream_sys_t ) );
if( !p_sys )
return VLC_ENOMEM;
config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options,
p_stream->p_cfg );
outputFile = var_InheritString( p_stream, SOUT_CFG_PREFIX "output" );
if( outputFile )
{
p_sys->output = vlc_fopen( outputFile, "wt" );
if( !p_sys->output )
{
msg_Err( p_stream, "Unable to open file '%s' for writing", outputFile );
free( p_sys );
free( outputFile );
return VLC_EGENERIC;
} else {
fprintf( p_sys->output,"#prefix\ttrack\ttype\tsegment_number\tdts_difference\tlength\tmd5\n");
}
free( outputFile );
}
p_sys->prefix = var_InheritString( p_stream, SOUT_CFG_PREFIX "prefix" );
p_stream->p_sys = p_sys;
p_stream->pf_add = Add;
p_stream->pf_del = Del;
p_stream->pf_send = Send;
return VLC_SUCCESS;
}
开发者ID:mstorsjo,项目名称:vlc,代码行数:45,代 |
请发表评论