16.02.12 18:54, Dan Dennedy написав(ла): > 2012/2/16 Maksym Veremeyenko<ve...@m1stereo.tv>: >> 15.02.12 20:49, Dan Dennedy написав(ла): >> >>> 2012/2/14 Maksym Veremeyenko<ve...@m1stereo.tv>: >>>> >>>> Hi, >>>> >>>> data for overlay image converted from RGBA to YUV422 for each frame. >>>> attached patch save converted image of *pixbuf* producer to avoid >>>> converting >>>> it to profile format each time it require to produce resulting frame. >>>> >>>> with that patch and previous SSE2 patches it possible to put full hd logo >>>> on >>>> video without dropped frame. >>>> >>>> it is draft version with leak on exit but it could answer the question if >>>> it >>>> is a right approach for solving problem with image converted to desired >>>> format once per frame instead of once per load/format_change. >>> >>> >>> The idea is fine but not the patches. The first patch to mlt_frame is >>> rejected because they are not really needed; use >>> mlt_frame_get_alpha_mask and mlt_frame_get_image. API changes >>> including additions are not taken lightly and need strong >>> justification. These two just add confusion. >> >> problem is *mlt_frame_get_alpha_mask* function that generate fake alpha >> channel for frames without one. I had a plans to propose drop creating >> filled alpha plane with it function and just return NULL, but in the same > > That is a high impact change that requires analyzing every call to the > function, and fixing and testing its impact. if you decide to break API that will be a good chance to implement that feature and fix possible regression caused by that improvement...
> >> time fix compositing function to care about 8 variants of alpha_a, alpha_b, >> weight values... >> >> i'll have a look on mlt_frame_get_image... >> >> >>> >>> In the pixbuf patch, you should not call the convert_image virtual >>> function directly; use mlt_frame_get_image(). Unfortunately, >>> mlt_frame_set_image lacks a format parameter. I forget why. For now, >>> just set the format property. mlt_frame_get_alpha_mask() should >>> probably have an out param. I will think about breaking API because >>> there are other API changes coming in this release. For now, you will >>> have to use a computed size for the alpha. Lastly, break clone.size >>> apart into clone.image_size and clone.alpha_size for readability. >>> >> >> such code could be added to pango and possibly other producers. May be it >> possible to provide another way for storing/cached converted/scaled images >> on upper level... > > I thought about that, and it makes some sense. The upper level does > not understand when the image changes - only the producer knows this. > Of course, the producer could set a flag to indicate the image changed > or fire an event that causes the caching mechanism to flush. I will > think about it more. > what if after receiving frame consumer makes a clone with all properties and during requesting new frame sent it back, so all filters and producer could check if frame need to be updated... -- ________________________________________ Maksym Veremeyenko ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Mlt-devel mailing list Mlt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mlt-devel