mlt-devel Mailing List for MLT Multimedia Framework (Page 269)
Brought to you by:
ddennedy,
lilo_booter
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(14) |
Aug
(44) |
Sep
(10) |
Oct
(1) |
Nov
(4) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(30) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(28) |
Jul
(66) |
Aug
(40) |
Sep
(28) |
Oct
(49) |
Nov
(56) |
Dec
(46) |
2006 |
Jan
(8) |
Feb
(24) |
Mar
(16) |
Apr
(9) |
May
(13) |
Jun
(5) |
Jul
(22) |
Aug
(12) |
Sep
(12) |
Oct
(35) |
Nov
(14) |
Dec
(12) |
2007 |
Jan
(13) |
Feb
(28) |
Mar
(57) |
Apr
(35) |
May
(19) |
Jun
(59) |
Jul
(43) |
Aug
(15) |
Sep
(8) |
Oct
(27) |
Nov
(9) |
Dec
(26) |
2008 |
Jan
(28) |
Feb
(70) |
Mar
(41) |
Apr
(12) |
May
(32) |
Jun
(39) |
Jul
(49) |
Aug
(16) |
Sep
(7) |
Oct
(83) |
Nov
(39) |
Dec
(76) |
2009 |
Jan
(67) |
Feb
(83) |
Mar
(37) |
Apr
(53) |
May
(86) |
Jun
(71) |
Jul
(64) |
Aug
(96) |
Sep
(142) |
Oct
(34) |
Nov
(82) |
Dec
(60) |
2010 |
Jan
(54) |
Feb
(50) |
Mar
(61) |
Apr
(33) |
May
(39) |
Jun
(49) |
Jul
(28) |
Aug
(71) |
Sep
(89) |
Oct
(51) |
Nov
(34) |
Dec
(67) |
2011 |
Jan
(94) |
Feb
(76) |
Mar
(110) |
Apr
(49) |
May
(178) |
Jun
(105) |
Jul
(137) |
Aug
(29) |
Sep
(151) |
Oct
(70) |
Nov
(50) |
Dec
(49) |
2012 |
Jan
(130) |
Feb
(159) |
Mar
(51) |
Apr
(51) |
May
(31) |
Jun
(41) |
Jul
(67) |
Aug
(63) |
Sep
(137) |
Oct
(81) |
Nov
(82) |
Dec
(89) |
2013 |
Jan
(65) |
Feb
(74) |
Mar
(52) |
Apr
(43) |
May
(64) |
Jun
(66) |
Jul
(48) |
Aug
(16) |
Sep
(20) |
Oct
(41) |
Nov
(20) |
Dec
(53) |
2014 |
Jan
(79) |
Feb
(51) |
Mar
(51) |
Apr
(62) |
May
(38) |
Jun
(85) |
Jul
(29) |
Aug
(34) |
Sep
(91) |
Oct
(56) |
Nov
(27) |
Dec
(33) |
2015 |
Jan
(50) |
Feb
(74) |
Mar
(41) |
Apr
(70) |
May
(26) |
Jun
(53) |
Jul
(28) |
Aug
(8) |
Sep
(36) |
Oct
(42) |
Nov
(35) |
Dec
(20) |
2016 |
Jan
(21) |
Feb
(57) |
Mar
(42) |
Apr
(57) |
May
(32) |
Jun
(43) |
Jul
(87) |
Aug
(11) |
Sep
(23) |
Oct
(76) |
Nov
(31) |
Dec
(20) |
2017 |
Jan
(41) |
Feb
(58) |
Mar
(32) |
Apr
(12) |
May
(7) |
Jun
(6) |
Jul
(9) |
Aug
(19) |
Sep
(26) |
Oct
(13) |
Nov
(15) |
Dec
(9) |
2018 |
Jan
(19) |
Feb
(40) |
Mar
(45) |
Apr
(19) |
May
(33) |
Jun
(33) |
Jul
(19) |
Aug
(37) |
Sep
(15) |
Oct
(22) |
Nov
(22) |
Dec
(29) |
2019 |
Jan
(9) |
Feb
(4) |
Mar
(3) |
Apr
(1) |
May
|
Jun
(4) |
Jul
|
Aug
(3) |
Sep
(11) |
Oct
(1) |
Nov
(8) |
Dec
(6) |
2020 |
Jan
(6) |
Feb
(6) |
Mar
|
Apr
(1) |
May
(11) |
Jun
|
Jul
(13) |
Aug
(3) |
Sep
(4) |
Oct
(11) |
Nov
(15) |
Dec
(4) |
2021 |
Jan
(3) |
Feb
(3) |
Mar
(2) |
Apr
(10) |
May
|
Jun
|
Jul
(2) |
Aug
(20) |
Sep
(1) |
Oct
(3) |
Nov
(14) |
Dec
(12) |
2022 |
Jan
(29) |
Feb
|
Mar
|
Apr
|
May
(8) |
Jun
(1) |
Jul
|
Aug
|
Sep
(7) |
Oct
|
Nov
(11) |
Dec
(1) |
2023 |
Jan
(6) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
(9) |
Jul
(22) |
Aug
|
Sep
(3) |
Oct
(3) |
Nov
(5) |
Dec
|
2024 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(14) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Dan D. <da...@de...> - 2008-11-05 19:38:19
|
On Wed, Nov 5, 2008 at 11:35 AM, j-b-m <j-...@us...> wrote: > Do you think it would be possible to make a new release (0.3.1) in the next > days ? Absolutely! -- +-DRD-+ |
From: j-b-m <j-...@us...> - 2008-11-05 19:24:49
|
Hello! We are almost ready to launch Kdenlive 0.7, probably in the beginning of next week. I think it could be great to have a new MLT release that can be recommended for use with Kdenlive 0.7. Do you think it would be possible to make a new release (0.3.1) in the next days ? Thanks jb |
From: <j-...@us...> - 2008-11-05 19:09:35
|
Revision: 1219 http://mlt.svn.sourceforge.net/mlt/?rev=1219&view=rev Author: j-b-m Date: 2008-11-05 19:09:29 +0000 (Wed, 05 Nov 2008) Log Message: ----------- kdenlive/filter_freeze.c: added simple freeze filter Modified Paths: -------------- trunk/mlt/src/modules/kdenlive/Makefile trunk/mlt/src/modules/kdenlive/factory.c Added Paths: ----------- trunk/mlt/src/modules/kdenlive/filter_freeze.c Modified: trunk/mlt/src/modules/kdenlive/Makefile =================================================================== --- trunk/mlt/src/modules/kdenlive/Makefile 2008-10-30 22:35:25 UTC (rev 1218) +++ trunk/mlt/src/modules/kdenlive/Makefile 2008-11-05 19:09:29 UTC (rev 1219) @@ -4,6 +4,7 @@ OBJS = factory.o \ filter_boxblur.o \ + filter_freeze.o \ filter_wave.o \ producer_framebuffer.o Modified: trunk/mlt/src/modules/kdenlive/factory.c =================================================================== --- trunk/mlt/src/modules/kdenlive/factory.c 2008-10-30 22:35:25 UTC (rev 1218) +++ trunk/mlt/src/modules/kdenlive/factory.c 2008-11-05 19:09:29 UTC (rev 1219) @@ -21,12 +21,14 @@ #include <framework/mlt.h> extern mlt_filter filter_boxblur_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ); +extern mlt_filter filter_freeze_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ); extern mlt_filter filter_wave_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ); extern mlt_producer producer_framebuffer_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ); MLT_REPOSITORY { MLT_REGISTER( filter_type, "boxblur", filter_boxblur_init ); + MLT_REGISTER( filter_type, "freeze", filter_freeze_init ); MLT_REGISTER( filter_type, "wave", filter_wave_init ); MLT_REGISTER( producer_type, "framebuffer", producer_framebuffer_init ); } Added: trunk/mlt/src/modules/kdenlive/filter_freeze.c =================================================================== --- trunk/mlt/src/modules/kdenlive/filter_freeze.c (rev 0) +++ trunk/mlt/src/modules/kdenlive/filter_freeze.c 2008-11-05 19:09:29 UTC (rev 1219) @@ -0,0 +1,117 @@ +/* + * filter_freeze.c -- simple frame freezing filter + * Copyright (C) 2007 Jean-Baptiste Mardelle <jb...@kd...> + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <framework/mlt_filter.h> +#include <framework/mlt_frame.h> +#include <framework/mlt_producer.h> +#include <framework/mlt_service.h> +#include <framework/mlt_factory.h> +#include <framework/mlt_property.h> + +static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *format, int *width, int *height, int writable ) +{ + // Get the image + + + mlt_position currentpos = mlt_frame_get_position( this ); + + mlt_filter filter = mlt_frame_pop_service( this ); + mlt_properties properties = MLT_FILTER_PROPERTIES( filter ); + + mlt_frame freeze_frame = NULL;; + int freeze_before = mlt_properties_get_int( properties, "freeze_before" ); + int freeze_after = mlt_properties_get_int( properties, "freeze_after" ); + mlt_position pos = mlt_properties_get_position( properties, "frame" ); + + int do_freeze = 0; + if (freeze_before == 0 && freeze_after == 0) { + do_freeze = 1; + } else if (freeze_before != 0 && pos > currentpos) { + do_freeze = 1; + } else if (freeze_after != 0 && pos < currentpos) { + do_freeze = 1; + } + + if (do_freeze == 1) { + freeze_frame = mlt_properties_get_data( properties, "freeze_frame", NULL ); + + if( freeze_frame == NULL) + { + // freeze_frame has not been fetched yet, so fetch it and cache it. + mlt_producer producer = mlt_frame_get_original_producer(this); + mlt_producer_seek( producer, pos ); + + // Get the frame + mlt_service_get_frame( mlt_producer_service(producer), &freeze_frame, 0 ); + + mlt_properties props = MLT_FRAME_PROPERTIES( this ); + mlt_properties freeze_properties = MLT_FRAME_PROPERTIES( freeze_frame ); + mlt_properties_set_double( freeze_properties, "consumer_aspect_ratio", mlt_properties_get_double( props, "consumer_aspect_ratio" ) ); + mlt_properties_set( freeze_properties, "rescale.interp", mlt_properties_get( props, "rescale.interp" ) ); + mlt_properties_set_double( freeze_properties, "aspect_ratio", mlt_frame_get_aspect_ratio( this ) ); + mlt_properties_set_int( freeze_properties, "progressive", mlt_properties_get_int( props, "progressive" ) ); + + mlt_properties_set_data( properties, "freeze_frame", freeze_frame, 0, NULL, NULL ); + } + int error = mlt_frame_get_image( freeze_frame, image, format, width, height, 1 ); + return error; + } + + int error = mlt_frame_get_image( this, image, format, width, height, 1 ); + return error; +} + +/** Filter processing. +*/ + +static mlt_frame filter_process( mlt_filter this, mlt_frame frame ) +{ + + // Push the filter on to the stack + mlt_frame_push_service( frame, this ); + + // Push the frame filter + mlt_frame_push_get_image( frame, filter_get_image ); + + return frame; +} + +/** Constructor for the filter. +*/ + +mlt_filter filter_freeze_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) +{ + mlt_filter this = mlt_filter_new( ); + if ( this != NULL ) + { + this->process = filter_process; + // Set the frame which will be chosen for freeze + mlt_properties_set( MLT_FILTER_PROPERTIES( this ), "frame", "0" ); + + // If freeze_after = 1, only frames after the "frame" value will be frozen + mlt_properties_set( MLT_FILTER_PROPERTIES( this ), "freeze_after", "0" ); + + // If freeze_before = 1, only frames after the "frame" value will be frozen + mlt_properties_set( MLT_FILTER_PROPERTIES( this ), "freeze_before", "0" ); + } + return this; +} + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ble...@us...> - 2008-10-30 22:35:29
|
Revision: 1218 http://mlt.svn.sourceforge.net/mlt/?rev=1218&view=rev Author: blendamedt Date: 2008-10-30 22:35:25 +0000 (Thu, 30 Oct 2008) Log Message: ----------- oldfilm/filter_vignette*: filter is now usable with keyframes Modified Paths: -------------- trunk/mlt/src/modules/oldfilm/filter_vignette.c trunk/mlt/src/modules/oldfilm/filter_vignette.yml Modified: trunk/mlt/src/modules/oldfilm/filter_vignette.c =================================================================== --- trunk/mlt/src/modules/oldfilm/filter_vignette.c 2008-10-30 21:47:00 UTC (rev 1217) +++ trunk/mlt/src/modules/oldfilm/filter_vignette.c 2008-10-30 22:35:25 UTC (rev 1218) @@ -19,6 +19,7 @@ #include <framework/mlt_filter.h> #include <framework/mlt_frame.h> +#include <framework/mlt_geometry.h> #include <stdio.h> #include <stdlib.h> @@ -35,34 +36,26 @@ mlt_filter filter = mlt_frame_pop_service( this ); int error = mlt_frame_get_image( this, image, format, width, height, 1 ); - + if ( error == 0 && *image && *format == mlt_image_yuv422 ) { - float smooth_s=80,radius_s=50,x_s=50,y_s=50,opac_s=0; - float smooth_e=80,radius_e=50,x_e=50,y_e=50,opac_e=0; - - sscanf(mlt_properties_get(MLT_FILTER_PROPERTIES( filter ), "start" ), "%f:%f:%fx%f:%f",&smooth_s,&radius_s,&x_s,&y_s,&opac_s); - if (mlt_properties_get(MLT_FILTER_PROPERTIES( filter ), "end" ) ){ - sscanf(mlt_properties_get(MLT_FILTER_PROPERTIES( filter ), "end" ), "%f:%f:%fx%f:%f",&smooth_e,&radius_e,&x_e,&y_e,&opac_e); - }else{ - smooth_e=smooth_s; - radius_e=radius_s; - x_e=x_s; - y_e=y_s; - opac_e=opac_s; - } mlt_position in = mlt_filter_get_in( filter ); - mlt_position out = mlt_filter_get_out( filter ); + //mlt_position out = mlt_filter_get_out( filter ); mlt_position time = mlt_frame_get_position( this ); - float position = ( double )( time -in ) / ( double )( out - in + 1 ) /100.0; - float smooth = 2.0*POSITION_VALUE (position, smooth_s, smooth_e) ; - float radius = POSITION_VALUE (position, radius_s, radius_e)/100.0* *width; + mlt_geometry geom=mlt_geometry_init(); + struct mlt_geometry_item_s item; + float smooth, radius, cx, cy, opac; + char *val=mlt_properties_get(MLT_FILTER_PROPERTIES( filter ), "geometry" ); + mlt_geometry_parse(geom,val,-1,-1,-1); + mlt_geometry_fetch(geom,&item,time-in); + smooth=item.x; + radius=item.y; + cx=item.w; + cy=item.h; + opac=item.mix; + mlt_geometry_close(geom); - double cx = POSITION_VALUE (position, x_s, x_e ) * *width/100; - double cy = POSITION_VALUE (position, y_s, y_e ) * *height/100; - double opac= POSITION_VALUE(position, opac_s, opac_e) ; - int video_width = *width; int video_height = *height; Modified: trunk/mlt/src/modules/oldfilm/filter_vignette.yml =================================================================== --- trunk/mlt/src/modules/oldfilm/filter_vignette.yml 2008-10-30 21:47:00 UTC (rev 1217) +++ trunk/mlt/src/modules/oldfilm/filter_vignette.yml 2008-10-30 22:35:25 UTC (rev 1218) @@ -24,7 +24,7 @@ parameters: - identifier: Smooth;Radius;X;Y;Max Opacity # 'argument' is a reserved name for a value supplied to the factory title: Start value # the title can be used as a label for the widget - type: string + type: geometry description: Start position, "smooth":"radius","X"x"Y","maxopac" readonly: no required: yes @@ -32,4 +32,4 @@ format: %d:%d:%dx%d:%d minimum: 0;0;0;0;0 maximum: 100;100;100;100;100 - default: 80;50;50;50;0 + default: 80;50;50%;50%;0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ble...@us...> - 2008-10-30 21:47:02
|
Revision: 1217 http://mlt.svn.sourceforge.net/mlt/?rev=1217&view=rev Author: blendamedt Date: 2008-10-30 21:47:00 +0000 (Thu, 30 Oct 2008) Log Message: ----------- frei0r/factory.c: set min/max values in metadata to defined min/max from frei0r.h Modified Paths: -------------- trunk/mlt/src/modules/frei0r/factory.c Modified: trunk/mlt/src/modules/frei0r/factory.c =================================================================== --- trunk/mlt/src/modules/frei0r/factory.c 2008-10-30 21:44:35 UTC (rev 1216) +++ trunk/mlt/src/modules/frei0r/factory.c 2008-10-30 21:47:00 UTC (rev 1217) @@ -108,8 +108,8 @@ mlt_properties_set ( pnum , "description" , paraminfo.explanation); if ( paraminfo.type == F0R_PARAM_DOUBLE ){ mlt_properties_set ( pnum , "type" , "float" ); - mlt_properties_set ( pnum , "minimum" , "-2" ); - mlt_properties_set ( pnum , "maximum" , "2" ); + mlt_properties_set ( pnum , "minimum" , "0" ); + mlt_properties_set ( pnum , "maximum" , "1" ); mlt_properties_set ( pnum , "readonly" , "no" ); mlt_properties_set ( pnum , "widget" , "spinner" ); }else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ble...@us...> - 2008-10-30 21:44:45
|
Revision: 1216 http://mlt.svn.sourceforge.net/mlt/?rev=1216&view=rev Author: blendamedt Date: 2008-10-30 21:44:35 +0000 (Thu, 30 Oct 2008) Log Message: ----------- frei0r/frei0r_helper.c: frei0r double and bool params are now useable with keyframes (mlt_geometry) Modified Paths: -------------- trunk/mlt/src/modules/frei0r/frei0r_helper.c Modified: trunk/mlt/src/modules/frei0r/frei0r_helper.c =================================================================== --- trunk/mlt/src/modules/frei0r/frei0r_helper.c 2008-10-30 21:43:10 UTC (rev 1215) +++ trunk/mlt/src/modules/frei0r/frei0r_helper.c 2008-10-30 21:44:35 UTC (rev 1216) @@ -58,16 +58,30 @@ for (i=0;i<info.num_params;i++){ f0r_param_info_t pinfo; f0r_get_param_info(&pinfo,i); - //set param if found - if (pinfo.type==F0R_PARAM_DOUBLE || pinfo.type==F0R_PARAM_BOOL){ - double t=0.0; - f0r_get_param_value(inst,&t,i); - - if (mlt_properties_get( prop , pinfo.name ) !=NULL ){ - t=mlt_properties_get_double( prop , pinfo.name ); - f0r_set_param_value(inst,&t,i); + mlt_geometry geom=mlt_geometry_init(); + struct mlt_geometry_item_s item; + //set param if found + + double t=0.0; + f0r_get_param_value(inst,&t,i); + char *val; + if (mlt_properties_get( prop , pinfo.name ) !=NULL ){ + switch (pinfo.type) { + case F0R_PARAM_DOUBLE: + case F0R_PARAM_BOOL: + val=mlt_properties_get(prop, pinfo.name ); + mlt_geometry_parse(geom,val,-1,-1,-1); + mlt_geometry_fetch(geom,&item,position); + t=item.x; + f0r_set_param_value(inst,&t,i); + break; + //case F0R_PARAM_COLOR: + // t=mlt_properties_get_double( prop , pinfo.name ); + } - } + } + + mlt_geometry_close(geom); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ble...@us...> - 2008-10-30 21:43:14
|
Revision: 1215 http://mlt.svn.sourceforge.net/mlt/?rev=1215&view=rev Author: blendamedt Date: 2008-10-30 21:43:10 +0000 (Thu, 30 Oct 2008) Log Message: ----------- frei0r/factory.c: yml files can be used now for critical plugins Modified Paths: -------------- trunk/mlt/src/modules/frei0r/factory.c Modified: trunk/mlt/src/modules/frei0r/factory.c =================================================================== --- trunk/mlt/src/modules/frei0r/factory.c 2008-10-30 07:39:30 UTC (rev 1214) +++ trunk/mlt/src/modules/frei0r/factory.c 2008-10-30 21:43:10 UTC (rev 1215) @@ -23,6 +23,7 @@ #include <stddef.h> #include <stdio.h> +#include <sys/stat.h> #include <sys/types.h> #include <dirent.h> #include <dlfcn.h> @@ -36,6 +37,28 @@ static mlt_properties fill_param_info ( mlt_service_type type, const char *service_name, char *name ) { + char file[ PATH_MAX ]; + char servicetype[ 1024 ]=""; + struct stat stat_buff; + + switch ( type ) { + case filter_type: + strcpy ( servicetype , "filter" ); + break; + case transition_type: + strcpy ( servicetype , "transition" ) ; + break; + default: + strcpy ( servicetype , "" ); + }; + + snprintf( file, PATH_MAX, "%s/frei0r/%s_%s.yml", mlt_environment( "MLT_DATA" ), servicetype, service_name ); + stat(file,&stat_buff); + + if (S_ISREG(stat_buff.st_mode)){ + return mlt_properties_parse_yaml( file ); + } + void* handle=dlopen(name,RTLD_LAZY); if (!handle) return NULL; void (*plginfo)(f0r_plugin_info_t*)=dlsym(handle,"f0r_get_plugin_info"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-30 07:39:36
|
Revision: 1214 http://mlt.svn.sourceforge.net/mlt/?rev=1214&view=rev Author: ddennedy Date: 2008-10-30 07:39:30 +0000 (Thu, 30 Oct 2008) Log Message: ----------- profiles/Makefile: fix removal of turd (*~) files on install. Modified Paths: -------------- trunk/mlt/profiles/Makefile Modified: trunk/mlt/profiles/Makefile =================================================================== --- trunk/mlt/profiles/Makefile 2008-10-30 07:35:09 UTC (rev 1213) +++ trunk/mlt/profiles/Makefile 2008-10-30 07:39:30 UTC (rev 1214) @@ -11,7 +11,7 @@ install: all uninstall install -d "$(DESTDIR)$(prefix)/share/mlt/profiles" install -m 644 * "$(DESTDIR)$(prefix)/share/mlt/profiles" - rm -f "$(DESTDIR)$(prefix)/share/mlt/profiles/*~" + rm -f "$(DESTDIR)$(prefix)/share/mlt/profiles/"*~ rm -f "$(DESTDIR)$(prefix)/share/mlt/profiles/Makefile" uninstall: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-30 07:35:19
|
Revision: 1213 http://mlt.svn.sourceforge.net/mlt/?rev=1213&view=rev Author: ddennedy Date: 2008-10-30 07:35:09 +0000 (Thu, 30 Oct 2008) Log Message: ----------- docs/TODO: refer to wiki page Modified Paths: -------------- trunk/mlt/docs/TODO Modified: trunk/mlt/docs/TODO =================================================================== --- trunk/mlt/docs/TODO 2008-10-30 07:33:19 UTC (rev 1212) +++ trunk/mlt/docs/TODO 2008-10-30 07:35:09 UTC (rev 1213) @@ -1 +1 @@ -Review and documentation update. The review will yield a TODO with more tasks. +See http://www.mltframework.org/twiki/bin/view/MLT/ToDo This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-30 07:33:24
|
Revision: 1212 http://mlt.svn.sourceforge.net/mlt/?rev=1212&view=rev Author: ddennedy Date: 2008-10-30 07:33:19 +0000 (Thu, 30 Oct 2008) Log Message: ----------- Makefile: suppress warning on ldconfig failure. Modified Paths: -------------- trunk/mlt/Makefile Modified: trunk/mlt/Makefile =================================================================== --- trunk/mlt/Makefile 2008-10-30 07:30:18 UTC (rev 1211) +++ trunk/mlt/Makefile 2008-10-30 07:33:19 UTC (rev 1212) @@ -41,7 +41,7 @@ $(MAKE) DESTDIR=$(DESTDIR) -C $$subdir $@ || exit 1; \ done; \ if test -z "$(DESTDIR)"; then \ - /sbin/ldconfig || true; \ + /sbin/ldconfig 2> /dev/null || true; \ fi uninstall: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dde...@us...> - 2008-10-30 07:30:28
|
Revision: 1211 http://mlt.svn.sourceforge.net/mlt/?rev=1211&view=rev Author: ddennedy Date: 2008-10-30 07:30:18 +0000 (Thu, 30 Oct 2008) Log Message: ----------- albino.c, inigo.c: remove unused variables leftover from last commit. Modified Paths: -------------- trunk/mlt/src/albino/albino.c trunk/mlt/src/inigo/inigo.c Modified: trunk/mlt/src/albino/albino.c =================================================================== --- trunk/mlt/src/albino/albino.c 2008-10-29 23:37:53 UTC (rev 1210) +++ trunk/mlt/src/albino/albino.c 2008-10-30 07:30:18 UTC (rev 1211) @@ -59,8 +59,6 @@ } else { - struct sched_param scp; - printf( "Miracle Standalone Instance\n" ); parser = miracle_parser_init_local( ); response = valerie_parser_connect( parser ); Modified: trunk/mlt/src/inigo/inigo.c =================================================================== --- trunk/mlt/src/inigo/inigo.c 2008-10-29 23:37:53 UTC (rev 1210) +++ trunk/mlt/src/inigo/inigo.c 2008-10-30 07:30:18 UTC (rev 1211) @@ -322,7 +322,6 @@ mlt_producer inigo = NULL; FILE *store = NULL; char *name = NULL; - struct sched_param scp; mlt_profile profile = NULL; int is_progress = 0; int is_silent = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Dan D. <da...@de...> - 2008-10-30 06:52:25
|
On Tue, Oct 28, 2008 at 4:13 PM, Jean-Michel Pouré <jm...@po...> wrote: > On Tue, 2008-10-28 at 15:33 -0700, Dan Dennedy wrote: >> A module can choose to do it is own way for any >> property, and some of them do. The point is that I want to make this a >> framework facility for any type of mlt_property so that it remains >> consistent across modules. As for naming them, well, I don't see a >> reasonable way to do that without fucking up the concise syntax that >> we have thus far. I suppose an app could figure out a way to do it. >> Or, a side-property like foo.key.names=[frame=]Name[;[frame=Name]]* >> might work. > > Just to understand. MLT Keyframes are attached to an effect, as they are > properties. kind of. I watched the Final Cut tutorial you pointed me towards. We are getting hung up on terminology and perspective. I think we have the same idea. > But in other environments keyframes are objects, which can be defined > anywhere. Effects apply to keyframes and not the converse. I can see how some UI may give you that perspective except for the "anywhere" part, but I think you mean that any and all effects' settings work with keyframes. > I don't know MLT XML syntax to tell if keyframes can be independant > objects in MLT. But if you create an XML syntax for keyframes, defining > them as XML objects, you would not break backward compatibility. MLT, the _framework_, currently does not require any XML; XML is actually limited to the westley _module_. I don't want to have to write a XML document that describes something as simple and concise as [frame=]value(s)[;[frame=value(s)]] that works with inigo, MLT API function arguments, westley XML, SMIL, or even some future YAML/JSON-based syntax. When I watch that video, I do not see keyframes as you describe it. Rather, I see keyframes for groups of property values similar to what MLT already has in mlt_geometry. How they are represented in a project file is a separate matter and outside the scope of discussion here because you do not write the XML; rather, you use the kdenlive UI. As I tried to explain, today only mlt_geometry implements keyframes, and it affects up to 5 floating point values. This is convenient for x, y, width, height, and opacity, which was the reason for the name "geometry" - the composite, region, and watermark effects use it. All I am saying is that mlt_geometry should be more generic. Let's rename it as mlt_keyframe. Then, I can make it not just support 5 floats but 1 or more of any property type including (non-interpolated) strings. So, that changes things more to what you describe. mlt_keyframe is an object that manipulates over time (animates) the values of a _group_ of settings/properties. As a generic thing, this mlt_keyframe would be available _anywhere_, but not _everywhere_. The way a particular module is implemented determines that. Some effects might only see the initial value and do nothing if that value changes within the same instance of that effect. That could be seen as a shortcoming, but I do not want to impose a requirement because sometimes a module is a bridge to another system (frei0r, ladspa) or library (sox) where animation is not supported. That is why the MLT YAML-based metadata[1] schema contains an attribute named "mutable" for the definition of a property. The pre-requisite to this work is #1 on my ToDo[2] list because instead of something like "[frame=]value[;[frame=value]]," it really should be "[time=]value[;[time=value]]." I put more notes[3] about this on my wiki. [1] http://www.mltframework.org/twiki/bin/view/MLT/MetadataRequirements [2] http://www.mltframework.org/twiki/bin/view/MLT/ToDo [3] http://www.mltframework.org/twiki/bin/view/MLT/PropertyAnimation -- +-DRD-+ |
From: <dde...@us...> - 2008-10-29 23:37:58
|
Revision: 1210 http://mlt.svn.sourceforge.net/mlt/?rev=1210&view=rev Author: ddennedy Date: 2008-10-29 23:37:53 +0000 (Wed, 29 Oct 2008) Log Message: ----------- albino.c, inigo.c: disable realtime scheduling (kdenlive-180). Modified Paths: -------------- trunk/mlt/src/albino/albino.c trunk/mlt/src/inigo/inigo.c Modified: trunk/mlt/src/albino/albino.c =================================================================== --- trunk/mlt/src/albino/albino.c 2008-10-28 19:18:47 UTC (rev 1209) +++ trunk/mlt/src/albino/albino.c 2008-10-29 23:37:53 UTC (rev 1210) @@ -61,13 +61,6 @@ { struct sched_param scp; - // Use realtime scheduling if possible - memset( &scp, '\0', sizeof( scp ) ); - scp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; -#ifndef __DARWIN__ - sched_setscheduler( 0, SCHED_FIFO, &scp ); -#endif - printf( "Miracle Standalone Instance\n" ); parser = miracle_parser_init_local( ); response = valerie_parser_connect( parser ); Modified: trunk/mlt/src/inigo/inigo.c =================================================================== --- trunk/mlt/src/inigo/inigo.c 2008-10-28 19:18:47 UTC (rev 1209) +++ trunk/mlt/src/inigo/inigo.c 2008-10-29 23:37:53 UTC (rev 1210) @@ -327,13 +327,6 @@ int is_progress = 0; int is_silent = 0; - // Use realtime scheduling if possible - memset( &scp, '\0', sizeof( scp ) ); - scp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; -#ifndef __DARWIN__ - sched_setscheduler( 0, SCHED_FIFO, &scp ); -#endif - // Construct the factory mlt_repository repo = mlt_factory_init( NULL ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Jean-Michel P. <jm...@po...> - 2008-10-29 11:59:35
|
Dear Friends, I added dirac, ffv1 and huffyuv to Kdenlive SVN export profiles. Sound is provided by flac encoding in dirac and ffv1 cases. Checkout Kdenlive svn. These profiles are meant for achiving source media, not for playing. * dirac does not work well and is very slow. This may be due to the difference in implementation between libschroedinger and ffmpeg. * ffv1 plays very well and is lightning fast. I encourage you to test it. It can even play in Kdenlive very well. Vlc 0.9.4 can play it too, except for sound. This is the first ever complete non-destructive format working with compression. * huffyuv is a standard compliant raw codec, fully tested. Of course, in dirac, ffv1 cases, you will need to compile ffmpeg with the required options. Marillat ffmpeg includes the necessary stuff by default in Debian. Happy testing. Kind regards, Jean-Michel |
From: Jean-Michel P. <jm...@po...> - 2008-10-29 08:49:49
|
Dear friends, I added three feature requests. Feature request : MLT and kdenlive support for keyframes, as independant objects http://www.kdenlive.org/mantis/view.php?id=289 Feature request : lock any track http://www.kdenlive.org/mantis/view.php?id=290 Feature request : apply effects on a whole track http://www.kdenlive.org/mantis/view.php?id=291 Feel free to close them if not appropriate. It would be nice to create a target version in Mantis like "Feature request" along with "Current SVN" to gather all long-term feature requests. When the feature request is long-term, then the target version is "Feature request". When someone picks up the development of the feature, it becomes "Current SVN". Kind regards, Jean-Michel |
From: <dde...@us...> - 2008-10-28 19:18:51
|
Revision: 1209 http://mlt.svn.sourceforge.net/mlt/?rev=1209&view=rev Author: ddennedy Date: 2008-10-28 19:18:47 +0000 (Tue, 28 Oct 2008) Log Message: ----------- producer_avformat.c: simplify recent commit to conform stream aspect to codec aspect and conform stream frame rate to codec frame rate Modified Paths: -------------- trunk/mlt/src/modules/avformat/consumer_avformat.c Modified: trunk/mlt/src/modules/avformat/consumer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-27 23:58:39 UTC (rev 1208) +++ trunk/mlt/src/modules/avformat/consumer_avformat.c 2008-10-28 19:18:47 UTC (rev 1209) @@ -482,6 +482,7 @@ c->height = mlt_properties_get_int( properties, "height" ); c->time_base.num = mlt_properties_get_int( properties, "frame_rate_den" ); c->time_base.den = mlt_properties_get_int( properties, "frame_rate_num" ); + st->time_base = c->time_base; c->pix_fmt = pix_fmt ? avcodec_get_pix_fmt( pix_fmt ) : PIX_FMT_YUV420P; if ( codec_id == CODEC_ID_DVVIDEO ) @@ -497,33 +498,21 @@ { c->sample_aspect_ratio.num = 10; c->sample_aspect_ratio.den = 11; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } else if ( ar == 16.0/15.0 ) // 4:3 PAL { c->sample_aspect_ratio.num = 159; c->sample_aspect_ratio.den = 54; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } else if ( ar == 32.0/27.0 ) // 16:9 NTSC { c->sample_aspect_ratio.num = 40; c->sample_aspect_ratio.den = 33; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } else // 16:9 PAL { c->sample_aspect_ratio.num = 118; c->sample_aspect_ratio.den = 81; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif } } else if ( mlt_properties_get( properties, "aspect" ) ) @@ -547,9 +536,6 @@ // Now compute the sample aspect ratio rational = av_d2q( ar * c->height / c->width, 255 ); c->sample_aspect_ratio = rational; -#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; -#endif // Update the profile and properties as well since this is an alias // for mlt properties that correspond to profile settings mlt_properties_set_int( properties, "sample_aspect_num", rational.num ); @@ -566,10 +552,10 @@ { c->sample_aspect_ratio.num = mlt_properties_get_int( properties, "sample_aspect_num" ); c->sample_aspect_ratio.den = mlt_properties_get_int( properties, "sample_aspect_den" ); + } #if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(21<<8)+0) - st->sample_aspect_ratio = c->sample_aspect_ratio; + st->sample_aspect_ratio = c->sample_aspect_ratio; #endif - } if ( mlt_properties_get_double( properties, "qscale" ) > 0 ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Jean-Michel P. <jm...@po...> - 2008-10-28 18:34:23
|
On Tue, 2008-10-28 at 10:26 -0700, Dan Dennedy wrote: > > acodec=pcm_s16le vcodec=rawvideo > > Think "MLT properties" not "ffmpeg command line options." It is a > simple mapping to keep in your head. Think: inigo options and MLT > framework level stuff gets the hyphens; the module-specific stuff > follows the module name with a colon separator (the contructor arg) > followed by properties name=value pairs. Thanks and sorry for the confusion. I am uploading my first tutorial to Vimeo. Will post the URL quickly. |
From: Dan D. <da...@de...> - 2008-10-28 17:26:59
|
On Tue, Oct 28, 2008 at 7:19 AM, Jean-Michel Pouré <jm...@po...> wrote: > Hello, > > I would like to add lossless codecs to Kdenlive rendering profiles. Don't forget huffyuv > I am starting with yuv codec: > f=avi -acodec pcm_s16le -vcodec rawvideo acodec=pcm_s16le vcodec=rawvideo Think "MLT properties" not "ffmpeg command line options." It is a simple mapping to keep in your head. Think: inigo options and MLT framework level stuff gets the hyphens; the module-specific stuff follows the module name with a colon separator (the contructor arg) followed by properties name=value pairs. -- +-DRD-+ |
From: Jean-Michel P. <jm...@po...> - 2008-10-28 14:19:25
|
Hello, I would like to add lossless codecs to Kdenlive rendering profiles. I am starting with yuv codec: f=avi -acodec pcm_s16le -vcodec rawvideo Kdenlive produces an AVI with mpeg4 codec. When running ffmpeg by hand ... ffmpeg -i untitled.avi -f avi -acodec pcm_s16le -vcodec rawvideo test.avi FFmpeg version SVN-r13582, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --prefix=/usr --libdir=${prefix}/lib --shlibdir= ${prefix}/lib --bindir=${prefix}/bin --incdir=${prefix}/include/ffmpeg --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaad --mandir=${prefix}/share/man --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-libamr-nb --enable-libamr-wb --enable-x11grab --enable-libgsm --enable-libx264 --enable-liba52 --enable-libtheora --extra-cflags=-Wall -g -fPIC -DPIC --cc=ccache cc --enable-swscale --enable-libdc1394 --enable-nonfree --disable-mmx --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libschroedinger --disable-encoder=libschroedinger --disable-altivec --disable-armv5te --disable-armv6 --disable-vis libavutil version: 49.7.0 libavcodec version: 51.58.0 libavformat version: 52.16.0 libavdevice version: 52.0.0 libavfilter version: 0.0.0 built on Oct 22 2008 13:31:17, gcc: 4.3.2 Input #0, avi, from 'untitled.avi': Duration: 00:00:08.04, start: 0.000000, bitrate: 746 kb/s Stream #0.0: Video: mpeg4, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 25.00 tb(r) Stream #0.1: Audio: mp2, 48000 Hz, stereo, 64 kb/s File 'test.avi' already exists. Overwrite ? [y/N] y Output #0, avi, to 'test.avi': Stream #0.0: Video: rawvideo, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25.00 tb(c) Stream #0.1: Audio: pcm_s16le, 48000 Hz, stereo, 1536 kb/s Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1 is this an MLT bug? |
From: j-b-m <j-...@us...> - 2008-10-28 12:05:47
|
On Saturday 25 October 2008 06.56:51 Dan Dennedy wrote: > problems with alignment/synchronization. This is not proving easy to > fix in the least; even hacks have proven unsuitable thus far. Ok, so I will try to workaround that issue in Kdenlive. I think I will create several copies of the same producer, one copy for each track. That way, the transition will never happen between the same producer... This will probably increase MLT's projects footprint but seems to me like a good compromise if there is no easy way to fix the issue in MLT... regards jb |
From: <j-...@us...> - 2008-10-27 23:58:48
|
Revision: 1208 http://mlt.svn.sourceforge.net/mlt/?rev=1208&view=rev Author: j-b-m Date: 2008-10-27 23:58:39 +0000 (Mon, 27 Oct 2008) Log Message: ----------- producer_avformat.c: Fix crash / corruption when changing audio or video index Modified Paths: -------------- trunk/mlt/src/modules/avformat/producer_avformat.c Modified: trunk/mlt/src/modules/avformat/producer_avformat.c =================================================================== --- trunk/mlt/src/modules/avformat/producer_avformat.c 2008-10-27 05:28:01 UTC (rev 1207) +++ trunk/mlt/src/modules/avformat/producer_avformat.c 2008-10-27 23:58:39 UTC (rev 1208) @@ -719,6 +719,7 @@ // Fetch the width, height and aspect ratio AVCodecContext *codec_context = context->streams[ index ]->codec; mlt_properties_set_int( properties, "_video_index", index ); + mlt_properties_set_data( properties, "video_codec", NULL, 0, NULL, NULL ); mlt_properties_set_int( properties, "width", codec_context->width ); mlt_properties_set_int( properties, "height", codec_context->height ); mlt_properties_set_double( properties, "aspect_ratio", av_q2d( codec_context->sample_aspect_ratio ) ); @@ -1098,6 +1099,12 @@ mlt_properties_set_int( properties, "audio_index", index ); } + // Update the audio properties if the index changed + if ( index > -1 && index != mlt_properties_get_int( properties, "_audio_index" ) ) { + mlt_properties_set_int( properties, "_audio_index", index ); + mlt_properties_set_data( properties, "audio_codec", NULL, 0, NULL, NULL ); + } + // Deal with audio context if ( context != NULL && index > -1 ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Dan D. <da...@de...> - 2008-10-27 23:42:05
|
On Mon, Oct 27, 2008 at 12:46 PM, j-b-m <j-...@us...> wrote: > Hi! > > There is a problem when changing the audio index of a producer on the fly. > Patch below fixes the issue. I am not sure if the "audio_resample" and > "audio_buffer" should be cleared too, but it seems to work correctly with the > patch. > Ah, good. Thanks. We need to clear the video_codec as well. Can you add that line to the producer_set_up_video() and commit it please? -- +-DRD-+ |
From: Jean-Michel P. <jm...@po...> - 2008-10-27 19:48:13
|
Le vendredi 24 octobre 2008 à 11:57 -0700, Dan Dennedy a écrit : > mlt++ depends on mlt. Therefore, the CXXFLAGS are based on the mlt > configuration, not your prefix argument. The prefix argument applies > to mlt++'s configuration and installation. The MLT configuration is > described primarily by pkg-config, not mlt-config, which is > deprecated. Recently, mlt++'s configure script was switched from > mlt-config to pkg-config. Finally, pkg-config depends upon the > environment variable PKG_CONFIG_PATH if you did not install mlt to a > standard location. > Okay, I understand what is going on. There was an old pkg-config file in /usr/local/something. This file was read first and therefore returning wrong path. I removed it ... Kind regards, JMP |
From: j-b-m <j-...@us...> - 2008-10-27 19:36:15
|
Hi! There is a problem when changing the audio index of a producer on the fly. Patch below fixes the issue. I am not sure if the "audio_resample" and "audio_buffer" should be cleared too, but it seems to work correctly with the patch. regards jb Index: producer_avformat.c =================================================================== --- producer_avformat.c (revision 1207) +++ producer_avformat.c (working copy) @@ -1098,6 +1098,12 @@ mlt_properties_set_int( properties, "audio_index", index ); } + // Update the audio properties if the index changed + if ( index > -1 && index != mlt_properties_get_int( properties, "_audio_index" ) ) { + mlt_properties_set_int( properties, "_audio_index", index ); + mlt_properties_set_data( properties, "audio_codec", NULL, 0, NULL, NULL ); + } + // Deal with audio context if ( context != NULL && index > -1 ) { |
From: Mads B. D. <ma...@ch...> - 2008-10-27 07:24:32
|
mandag 27 Oktober 2008 skrev Dan Dennedy: > On Sun, Oct 26, 2008 at 2:20 AM, Mads Bondo Dydensborg > OK. Please > find attached the first try (or step) in removing these for mlt++. > > If you can agree with the approach, the next step will be to change some > > const/non-const in mlt. > > > > Points of note: > > - This patch removes all const->non-const warnings in kdenlive when calling > > mlt++ > > - I have only changed interfaces that are used by Kdenlive - so, I have sort > > of only made explicit what the compiler already does > > hmm, I am not content on leaving it inconsistent, but I suppose I can > take it the rest of the way from your contribution. The reason I have not changed more is solely because I am afraid to break something. When I only change something the compiler complains about, its because I am pretty sure that the usage is probably right, and it really only is because const was not used in the declaration. I don't mind changing "all" char * to const char *, that looks like a const char * to me, if you think that it is safe to do. Please bear in mind, that I have no code that uses the other interfaces in MLT, so I do not know if I break code that relies on Mlt. > > > - If kdenlive passes a const char* to a char* param in mlt++, I have changed > > it to const in mlt++ > > - Where mlt++ passes consts to non-consts in mlt, I have used a const_cast and > > static_cast. I will try to get rid of these in the next revision, but I have > > not looked at mlt yet. If I can't get rid of them, I would assume something > > is wrong in the way kdenlive uses the interface. > > Yeah, this is really ugly, where C++ rears its ugly head IMO: > > static_cast<void*>( const_cast<char*>( id ) ) > > I realize its "politically correct" as far as C++ is concerned, but > this is a binding to a C interface, so a C style cast is highly > justifiable and preferred by me for readability. I will try to remove all these casts for "full" patch (both mlt and mlt++). const_cast and static_cast have the great attribute, that they are highly "grep'able" - but I will change to classic C casts for the full patch. Will work on a new revision soon - done in a couple of days, probably Regards Mads -- Mads Bondo Dydensborg. ma...@ch... If you aim the gun at your foot and pull the trigger, it's UNIX's job to ensure reliable delivery of the bullet to where you aimed the gun (in this case, Mr. Foot). - Terry Lambert, FreeBSD-Hackers mailing list. |