예제 #1
0
파일: mlt_frame.c 프로젝트: agpanarin/mlt
int mlt_frame_pop_service_int( mlt_frame self )
{
	return mlt_deque_pop_back_int( self->stack_image );
}
예제 #2
0
파일: filter_mono.c 프로젝트: amongll/AVFX
 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */

#include <framework/mlt_filter.h>
#include <string.h>
#include <framework/mlt_factory.h>
#include <framework/mlt_frame.h>
#include <framework/mlt_producer.h>
#include <framework/mlt_geometry.h>

/** Get the images and apply the luminance of the mask to the alpha of the frame.
*/

static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *format, int *width, int *height, int writable )
{
	int use_alpha = mlt_deque_pop_back_int( MLT_FRAME_IMAGE_STACK( this ) );
	int midpoint = mlt_deque_pop_back_int( MLT_FRAME_IMAGE_STACK( this ) );
	int invert = mlt_deque_pop_back_int( MLT_FRAME_IMAGE_STACK( this ) );

	// Render the frame
	*format = mlt_image_yuv422;
	if ( mlt_frame_get_image( this, image, format, width, height, writable ) == 0 )
	{
		uint8_t *p = *image;
		uint8_t A = invert? 235 : 16;
		uint8_t B = invert? 16 : 235;
		int size = *width * *height;

		if ( !use_alpha )
		{
			while( size -- )