From 6bae338739062fc71936269745fd3433bf0c32e1 Mon Sep 17 00:00:00 2001 From: ddennedy Date: Mon, 12 Jan 2004 04:00:05 +0000 Subject: [PATCH] doc updates and better control of pixbuf composite property propogation git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@59 d19143bc-622f-0410-bfdd-b5b2a6649095 --- docs/services.txt | 113 ++++++++++++++++++++++++++++++-- mlt/docs/services.txt | 113 ++++++++++++++++++++++++++++++-- mlt/src/modules/gtk2/producer_pixbuf.c | 18 ++++-- src/modules/gtk2/producer_pixbuf.c | 18 ++++-- 4 files changed, 240 insertions(+), 22 deletions(-) diff --git a/docs/services.txt b/docs/services.txt index 791c5aa..74979ca 100644 --- a/docs/services.txt +++ b/docs/services.txt @@ -99,6 +99,7 @@ Producers Dependencies mainconcept dv sdk and libdv. + "dv_sdk" installed parallel to mlt. Known Bugs @@ -129,6 +130,7 @@ Producers Dependencies mainconcept mpeg sdk. + "mpeg_sdk_demo" installed parallel to mlt. Known Bugs @@ -143,7 +145,7 @@ Producers Constructor Argument - 'markup' - a string containing Pango markup see: + string file - a text file containing Pango markup, see: http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html - requires xml-like encoding special chars: <, > ( and '&' and '"' ?) @@ -151,10 +153,17 @@ Producers timecode in - in point timecode out - out point + + Mutable Properties + int video_standard - enum mlt_video_standard from mlt_frame.h PAL = 0, NTSC = 1 this determines proper pixel aspect ratio + string markup - a string containing Pango markup see: + http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html + - requires xml-like encoding special chars: <, > ( and '&' and '"' ?) + int fgcolor - an rgba color specification of the text (i.e. 0xrrggbbaa) int bgcolor - an rgba color of the background rectangle int align - paragraph alignment: 0 = left, 1 = center, 2 = right @@ -173,7 +182,7 @@ Producers Read Only Properties - string resource - "pango" + string resource - the text/markup file or "pango" if no file Dependencies @@ -205,10 +214,18 @@ Producers timecode in - in point timecode out - out point + + Mutable Properties + int video_standard - enum mlt_video_standard from mlt_frame.h PAL = 0, NTSC = 1 this determines proper pixel aspect ratio double ttl - how long (seconds) to repeat each picture in file sequences + int x - the horizontal offset from the left edge of the frame + int y - the vertical offset from the top edge of the frame + double mix - the opacity factor to apply to the second frame + (used in addition to alpha channel). + Read Only Properties @@ -285,32 +302,96 @@ Transitions composite Description + + An alpha-channel based compositor for two frames. + Constructor Argument - Initialisation Properties + + none + + Mutable Properties + + int x - the horizontal offset from the left edge of the frame + int y - the vertical offset from the top edge of the frame + double mix - the opacity factor to apply to the second frame + (used in addition to alpha channel). + Read Only Properties + + none + Dependencies + + none + Known Bugs + Need to add field-based rendering. + luma Description + + A generic dissolve and wipe transition processor. It gets its name + from how it uses a grayscale "map" file. As the luma value varies + over time, a threshold filter is applied to the map to determine + what parts of frame A vs. frame B to show. It only reads PGM + files, but it does handle 16 bit PGM. This performs field-based + rendering. + Constructor Argument - Initialisation Properties + + string file - the luma map file name. If not supplied, a dissolve. + + Mutable Properties + + string filename - same as above + double softness - only when using a luma map, how soft to make the + edges between A and B. 0.0 = no softness. 1.0 = + too soft. + Read Only Properties + + none + Dependencies + + none + Known Bugs + The luma map must be the same size as the B frame. + Consumers --------- bluefish Description + + BlueFish444 audio and video output module. + Constructor Argument + + int video_standard - 0 = PAL, 1 = NTSC + Initialisation Properties + + int video_standard - see above + Read Only Properties + + none + Dependencies + + BlueVelvet SDK installed parallel to mlt in "bluefish." + Known Bugs + + If mlt crashes, you must reload the BlueDriver kernel module + due to unreleased DMA buffers. + Needs an argument or property for multi-card address. ffmpeg @@ -323,8 +404,30 @@ Consumers sdl Description + + Simple DirectMedia Layer audio and video output module. + Constructor Argument - Initialisation Properties + + string video_standard - "PAL" (default), "NTSC", or "WxH" + + Mutable Properties + + double volume - audio level factor + int video_off - if 1, disable video output + int audio_off - if 1, disable audio output + int scale_overlay - if 1, resample video from source pixel aspect + ratio to square pixels. + Read Only Properties + + none + Dependencies + + libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE + Known Bugs + + ? + diff --git a/mlt/docs/services.txt b/mlt/docs/services.txt index 791c5aa..74979ca 100644 --- a/mlt/docs/services.txt +++ b/mlt/docs/services.txt @@ -99,6 +99,7 @@ Producers Dependencies mainconcept dv sdk and libdv. + "dv_sdk" installed parallel to mlt. Known Bugs @@ -129,6 +130,7 @@ Producers Dependencies mainconcept mpeg sdk. + "mpeg_sdk_demo" installed parallel to mlt. Known Bugs @@ -143,7 +145,7 @@ Producers Constructor Argument - 'markup' - a string containing Pango markup see: + string file - a text file containing Pango markup, see: http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html - requires xml-like encoding special chars: <, > ( and '&' and '"' ?) @@ -151,10 +153,17 @@ Producers timecode in - in point timecode out - out point + + Mutable Properties + int video_standard - enum mlt_video_standard from mlt_frame.h PAL = 0, NTSC = 1 this determines proper pixel aspect ratio + string markup - a string containing Pango markup see: + http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html + - requires xml-like encoding special chars: <, > ( and '&' and '"' ?) + int fgcolor - an rgba color specification of the text (i.e. 0xrrggbbaa) int bgcolor - an rgba color of the background rectangle int align - paragraph alignment: 0 = left, 1 = center, 2 = right @@ -173,7 +182,7 @@ Producers Read Only Properties - string resource - "pango" + string resource - the text/markup file or "pango" if no file Dependencies @@ -205,10 +214,18 @@ Producers timecode in - in point timecode out - out point + + Mutable Properties + int video_standard - enum mlt_video_standard from mlt_frame.h PAL = 0, NTSC = 1 this determines proper pixel aspect ratio double ttl - how long (seconds) to repeat each picture in file sequences + int x - the horizontal offset from the left edge of the frame + int y - the vertical offset from the top edge of the frame + double mix - the opacity factor to apply to the second frame + (used in addition to alpha channel). + Read Only Properties @@ -285,32 +302,96 @@ Transitions composite Description + + An alpha-channel based compositor for two frames. + Constructor Argument - Initialisation Properties + + none + + Mutable Properties + + int x - the horizontal offset from the left edge of the frame + int y - the vertical offset from the top edge of the frame + double mix - the opacity factor to apply to the second frame + (used in addition to alpha channel). + Read Only Properties + + none + Dependencies + + none + Known Bugs + Need to add field-based rendering. + luma Description + + A generic dissolve and wipe transition processor. It gets its name + from how it uses a grayscale "map" file. As the luma value varies + over time, a threshold filter is applied to the map to determine + what parts of frame A vs. frame B to show. It only reads PGM + files, but it does handle 16 bit PGM. This performs field-based + rendering. + Constructor Argument - Initialisation Properties + + string file - the luma map file name. If not supplied, a dissolve. + + Mutable Properties + + string filename - same as above + double softness - only when using a luma map, how soft to make the + edges between A and B. 0.0 = no softness. 1.0 = + too soft. + Read Only Properties + + none + Dependencies + + none + Known Bugs + The luma map must be the same size as the B frame. + Consumers --------- bluefish Description + + BlueFish444 audio and video output module. + Constructor Argument + + int video_standard - 0 = PAL, 1 = NTSC + Initialisation Properties + + int video_standard - see above + Read Only Properties + + none + Dependencies + + BlueVelvet SDK installed parallel to mlt in "bluefish." + Known Bugs + + If mlt crashes, you must reload the BlueDriver kernel module + due to unreleased DMA buffers. + Needs an argument or property for multi-card address. ffmpeg @@ -323,8 +404,30 @@ Consumers sdl Description + + Simple DirectMedia Layer audio and video output module. + Constructor Argument - Initialisation Properties + + string video_standard - "PAL" (default), "NTSC", or "WxH" + + Mutable Properties + + double volume - audio level factor + int video_off - if 1, disable video output + int audio_off - if 1, disable audio output + int scale_overlay - if 1, resample video from source pixel aspect + ratio to square pixels. + Read Only Properties + + none + Dependencies + + libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE + Known Bugs + + ? + diff --git a/mlt/src/modules/gtk2/producer_pixbuf.c b/mlt/src/modules/gtk2/producer_pixbuf.c index 3bfe553..84ed6e6 100644 --- a/mlt/src/modules/gtk2/producer_pixbuf.c +++ b/mlt/src/modules/gtk2/producer_pixbuf.c @@ -217,9 +217,12 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "height", this->height ); // Set the compositing properties - mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); - mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); - mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + if ( mlt_properties_get( producer_props, "x" ) != NULL ) + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + if ( mlt_properties_get( producer_props, "y" ) != NULL ) + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + if ( mlt_properties_get( producer_props, "mix" ) != NULL ) + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); // if picture sequence pass the image and alpha data without destructor mlt_properties_set_data( properties, "image", this->image, 0, NULL, NULL ); @@ -301,9 +304,12 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "height", this->height ); // Set the compositing properties - mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); - mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); - mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + if ( mlt_properties_get( producer_props, "x" ) != NULL ) + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + if ( mlt_properties_get( producer_props, "y" ) != NULL ) + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + if ( mlt_properties_get( producer_props, "mix" ) != NULL ) + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); // Pass alpha and image on properties with or without destructor this->image = image; diff --git a/src/modules/gtk2/producer_pixbuf.c b/src/modules/gtk2/producer_pixbuf.c index 3bfe553..84ed6e6 100644 --- a/src/modules/gtk2/producer_pixbuf.c +++ b/src/modules/gtk2/producer_pixbuf.c @@ -217,9 +217,12 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "height", this->height ); // Set the compositing properties - mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); - mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); - mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + if ( mlt_properties_get( producer_props, "x" ) != NULL ) + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + if ( mlt_properties_get( producer_props, "y" ) != NULL ) + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + if ( mlt_properties_get( producer_props, "mix" ) != NULL ) + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); // if picture sequence pass the image and alpha data without destructor mlt_properties_set_data( properties, "image", this->image, 0, NULL, NULL ); @@ -301,9 +304,12 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "height", this->height ); // Set the compositing properties - mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); - mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); - mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + if ( mlt_properties_get( producer_props, "x" ) != NULL ) + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + if ( mlt_properties_get( producer_props, "y" ) != NULL ) + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + if ( mlt_properties_get( producer_props, "mix" ) != NULL ) + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); // Pass alpha and image on properties with or without destructor this->image = image; -- 1.7.4.4