MLT 7.42.0
Multimedia Framework
Functions
mlt_transition.c File Reference

abstraction for all transition services More...

#include "mlt_transition.h"
#include "mlt_frame.h"
#include "mlt_log.h"
#include "mlt_producer.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

Functions

static void apply_fx_cuts (mlt_transition self, int a_frame, int b_frame, int type, int(*invalid)(mlt_frame))
 Wrap each fx_cut onto the accumulated visible result below it.
 
static int frame_is_fx_cut (mlt_frame frame, int type)
 
static int frame_is_visible_picture (mlt_frame frame, int type, int(*invalid)(mlt_frame))
 
static int get_image_a (mlt_frame a_frame, uint8_t **image, mlt_image_format *format, int *width, int *height, int writable)
 
static int get_image_b (mlt_frame b_frame, uint8_t **image, mlt_image_format *format, int *width, int *height, int writable)
 
static void process_transition_pair (mlt_transition self, mlt_frame_ptr frame, mlt_frame a_frame_ptr, mlt_frame b_frame_ptr, int type, int active)
 
static int transition_get_frame (mlt_service self, mlt_frame_ptr frame, int index)
 
static void wrap_fx_cut (mlt_frame picture, mlt_frame fx)
 Route picture through fx and hide the dummy.
 

Detailed Description

abstraction for all transition services

See also
mlt_transition_s

Copyright (C) 2003-2026 Meltytech, LLC

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Function Documentation

◆ apply_fx_cuts()

static void apply_fx_cuts ( mlt_transition  self,
int  a_frame,
int  b_frame,
int  type,
int(*)(mlt_frame)  invalid 
)
static

Wrap each fx_cut onto the accumulated visible result below it.

Walk physical indices through B so reverse_order does not matter. A visible video between A and a later cut becomes the wrap target (and stacks the previous picture underneath) so the cut filters all lower-index tracks, not only hunted A. B itself is not accumulated — it is the overlay. Hide on the dummy prevents a second wrap from an outer transition.

◆ frame_is_fx_cut()

static int frame_is_fx_cut ( mlt_frame  frame,
int  type 
)
static

◆ frame_is_visible_picture()

static int frame_is_visible_picture ( mlt_frame  frame,
int  type,
int(*)(mlt_frame)  invalid 
)
static

◆ get_image_a()

static int get_image_a ( mlt_frame  a_frame,
uint8_t **  image,
mlt_image_format *  format,
int *  width,
int *  height,
int  writable 
)
static

◆ get_image_b()

static int get_image_b ( mlt_frame  b_frame,
uint8_t **  image,
mlt_image_format *  format,
int *  width,
int *  height,
int  writable 
)
static

◆ process_transition_pair()

static void process_transition_pair ( mlt_transition  self,
mlt_frame_ptr  frame,
mlt_frame  a_frame_ptr,
mlt_frame  b_frame_ptr,
int  type,
int  active 
)
static

◆ transition_get_frame()

static int transition_get_frame ( mlt_service  self,
mlt_frame_ptr  frame,
int  index 
)
static

◆ wrap_fx_cut()

static void wrap_fx_cut ( mlt_frame  picture,
mlt_frame  fx 
)
static

Route picture through fx and hide the dummy.

No-op if already hidden.