Hello again.
I have a small patch that I think can safely be applied.
The bug appears when applying a composite transition with a picture on the
lowest track. If the parameter "fill" is set to 1 for the transition (because
you want to rescale the picture to the screen size), the image is not
correctly resized if it's aspect ration is exactly the same as the normalised
ratio.
You can see in the lines 750 and 755 of transition_composite.c that we check
if the picture should be resized horizontally or vertically, but if the ratio
is the same as the normalised one, none of the condition ever comes true, so
no rescaling is applied.
Simple patch attached.
Regards
jb

On Thursday 20 April 2006 07:31, Dan Dennedy wrote:
> Thank you for working with us. I have flagged your other email regarding
> image format request handling in the image producers as something I need to
> followup on. I have been swamped with the recent Kino release. I will
> attend to these soon.
>
Ok, nice.
By the way I noticed all my problems can be solved by setting
the "terminate_on_pause" property to 1 on the libdv consumer. This is done by
default for the avformat consumer. Maybe this should also be the case for the
libdv consumer ?
regards
jb

Thank you for working with us. I have flagged your other email regarding image
format request handling in the image producers as something I need to
followup on. I have been swamped with the recent Kino release. I will attend
to these soon.
On Wednesday 19 April 2006 17:40, jb wrote:
> Hello.
>
> I have some troubles regarding the dv producer.
> When I try to create a file through this producer (libdv), at the end of
> the producer's playing time, it doesn't fire the "consumer-stopped" event,
> but continues to write the last frame to file forever...
>
> I managed to get around the problem by listening the "consumer-frame-show"
> event and check when the speed goes down to zero. At that point I stop the
> consumer. This is where the second problem comes:
> Stopping the libdv consumer deletes the dv file (in facts it leaves just
> the last frame in the file). I found that the line 137 of consumer_libdv.c
> (consumer_stop) was responsible for that:
> mlt_properties_set_data( properties, "output_file", NULL, 0, NULL, NULL );
>
> That line is supposed to " Close the output file :-) " from the comment,
> but it looks more like it resets the file pointer to the beginning,
> destroying all of its content. By the way this "file closing" line is not
> present in the consumer_avformat.c
>
> Commenting out that line fixes the file deletion bug.
>
> Minimal patch attached.
> regards
> Jean-Baptiste

Hello.
I have some troubles regarding the dv producer.
When I try to create a file through this producer (libdv), at the end of the
producer's playing time, it doesn't fire the "consumer-stopped" event, but
continues to write the last frame to file forever...
I managed to get around the problem by listening the "consumer-frame-show"
event and check when the speed goes down to zero. At that point I stop the
consumer. This is where the second problem comes:
Stopping the libdv consumer deletes the dv file (in facts it leaves just the
last frame in the file). I found that the line 137 of consumer_libdv.c
(consumer_stop) was responsible for that:
mlt_properties_set_data( properties, "output_file", NULL, 0, NULL, NULL );
That line is supposed to " Close the output file :-) " from the comment, but
it looks more like it resets the file pointer to the beginning, destroying
all of its content. By the way this "file closing" line is not present in the
consumer_avformat.c
Commenting out that line fixes the file deletion bug.
Minimal patch attached.
regards
Jean-Baptiste