mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new DeconvolutionSharpenEffect() );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new DeconvolutionSharpenEffect() );
}
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
mlt_properties_set_int( MLT_SERVICE_PROPERTIES(service), "_movit finalized", 0 );
}
-Effect* GlslManager::get_effect( mlt_filter filter, mlt_frame frame )
+Effect* GlslManager::get_effect( mlt_service service, mlt_frame frame )
{
Mlt::Producer producer( mlt_producer_cut_parent( mlt_frame_get_original_producer( frame ) ) );
- char *unique_id = mlt_properties_get( MLT_FILTER_PROPERTIES(filter), "_unique_id" );
+ char *unique_id = mlt_properties_get( MLT_SERVICE_PROPERTIES(service), "_unique_id" );
return (Effect*) GlslManager::get_instance()->effect_list( producer ).get_data( unique_id );
}
-Effect* GlslManager::add_effect( mlt_filter filter, mlt_frame frame, Effect* effect )
+Effect* GlslManager::add_effect( mlt_service service, mlt_frame frame, Effect* effect )
{
Mlt::Producer producer( mlt_producer_cut_parent( mlt_frame_get_original_producer( frame ) ) );
EffectChain* chain = (EffectChain*) producer.get_data( "movit chain" );
chain->add_effect( effect );
- char *unique_id = mlt_properties_get( MLT_FILTER_PROPERTIES(filter), "_unique_id" );
+ char *unique_id = mlt_properties_get( MLT_SERVICE_PROPERTIES(service), "_unique_id" );
GlslManager::get_instance()->effect_list( producer ).set( unique_id, effect, 0 );
return effect;
}
-Effect* GlslManager::add_effect( mlt_filter filter, mlt_frame frame, Effect* effect, Effect* input_b )
+Effect* GlslManager::add_effect( mlt_service service, mlt_frame frame, Effect* effect, Effect* input_b )
{
Mlt::Producer producer( mlt_producer_cut_parent( mlt_frame_get_original_producer( frame ) ) );
EffectChain* chain = (EffectChain*) producer.get_data( "movit chain" );
chain->add_effect( effect, chain->last_added_effect(),
input_b? input_b : chain->last_added_effect() );
- char *unique_id = mlt_properties_get( MLT_FILTER_PROPERTIES(filter), "_unique_id" );
+ char *unique_id = mlt_properties_get( MLT_SERVICE_PROPERTIES(service), "_unique_id" );
GlslManager::get_instance()->effect_list( producer ).set( unique_id, effect, 0 );
return effect;
}
static EffectChain* get_chain(mlt_service);
static MltInput* get_input(mlt_service);
static void reset_finalized(mlt_service);
- static Effect* get_effect(mlt_filter, mlt_frame);
- static Effect* add_effect(mlt_filter, mlt_frame, Effect*);
- static Effect* add_effect(mlt_filter, mlt_frame, Effect*, Effect* input_b);
+ static Effect* get_effect(mlt_service, mlt_frame);
+ static Effect* add_effect(mlt_service, mlt_frame, Effect*);
+ static Effect* add_effect(mlt_service, mlt_frame, Effect*, Effect* input_b);
static void render_fbo(mlt_service, void *chain, GLuint fbo, int width, int height);
int render_frame_texture(mlt_service, mlt_frame, int width, int height, uint8_t **image);
int render_frame_rgba(mlt_service, mlt_frame, int width, int height, uint8_t **image);
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new LiftGammaGainEffect );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new LiftGammaGainEffect );
}
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
double radius = mlt_properties_anim_get_double( properties, "radius",
mlt_filter_get_position( filter, frame ),
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( !effect ) {
- effect = GlslManager::add_effect( filter, frame, new BlurEffect() );
+ effect = GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new BlurEffect() );
assert(effect);
}
}
mlt_log_debug( MLT_FILTER_SERVICE(filter), "%dx%d -> %dx%d\n", *width, *height, owidth, oheight);
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
bool ok = effect->set_int( "width", owidth );
ok |= effect->set_int( "height", oheight );
{
mlt_producer producer = mlt_producer_cut_parent( mlt_frame_get_original_producer( frame ) );
if ( !GlslManager::init_chain( MLT_PRODUCER_SERVICE(producer) ) ) {
- Effect* effect = GlslManager::add_effect( filter, frame, new PaddingEffect );
+ Effect* effect = GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new PaddingEffect );
RGBATuple border_color( 0.0f, 0.0f, 0.0f, 1.0f );
bool ok = effect->set_vec4( "border_color", (float*) &border_color );
assert(ok);
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new DiffusionEffect() );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new DiffusionEffect() );
}
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new GlowEffect() );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new GlowEffect() );
}
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( !effect )
- GlslManager::add_effect( filter, frame, new MirrorEffect() );
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new MirrorEffect() );
}
return frame;
}
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( !effect ) {
- effect = GlslManager::add_effect( filter, frame, new MixEffect, 0 );
+ effect = GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new MixEffect, 0 );
assert(effect);
bool ok = effect->set_float( "strength_first", 1.0f );
ok |= effect->set_float( "strength_second", 0.0f );
error = mlt_frame_get_image( frame, image, format, &iwidth, &iheight, writable );
if ( !error ) {
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
bool ok = effect->set_int( "width", owidth );
ok |= effect->set_int( "height", oheight );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new ResampleEffect );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new ResampleEffect );
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
return frame;
if ( !error ) {
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
bool ok = effect->set_int( "width", *width );
ok |= effect->set_int( "height", *height );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new PaddingEffect );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new PaddingEffect );
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
return frame;
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new SaturationEffect() );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new SaturationEffect() );
}
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new VignetteEffect() );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new VignetteEffect() );
}
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );
mlt_filter filter = (mlt_filter) mlt_frame_pop_service( frame );
mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
GlslManager::get_instance()->lock_service( frame );
- Effect* effect = GlslManager::get_effect( filter, frame );
+ Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
if ( effect ) {
mlt_position position = mlt_filter_get_position( filter, frame );
mlt_position length = mlt_filter_get_length2( filter, frame );
static mlt_frame process( mlt_filter filter, mlt_frame frame )
{
if ( !mlt_frame_is_test_card( frame ) ) {
- if ( !GlslManager::get_effect( filter, frame ) )
- GlslManager::add_effect( filter, frame, new WhiteBalanceEffect );
+ if ( !GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame ) )
+ GlslManager::add_effect( MLT_FILTER_SERVICE( filter ), frame, new WhiteBalanceEffect );
}
mlt_frame_push_service( frame, filter );
mlt_frame_push_get_image( frame, get_image );