Skip to content

Commit

Permalink
Fix aspect ratio conversion for videos in the slide show generator
Browse files Browse the repository at this point in the history
As reported here:
https://forum.shotcut.org/t/slideshow-generator-cant-do-padding-of-videos/41889

This is a regression caused by preserving metadata in the XML - which
caused the producer to not probe when opened and "aspect_ratio" is never
calculated. This uses the new "meta.media.aspect_ratio" property.
  • Loading branch information
bmatherly committed Dec 9, 2023
1 parent 3d78c7d commit 9e0c1de
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/widgets/slideshowgeneratorwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,10 @@ void SlideshowGeneratorWidget::attachAffineFilter(SlideshowConfig &config, Mlt::
double destDar = MLT.profile().dar();
double sourceW = producer->get_double("meta.media.width");
double sourceH = producer->get_double("meta.media.height");
double sourceAr = producer->get_double("aspect_ratio");
double sourceAr = producer->get_double("meta.media.aspect_ratio");
if (!sourceAr) {
sourceAr = producer->get_double("aspect_ratio");
}
double sourceDar = destDar;
if (sourceW && sourceH && sourceAr) {
sourceDar = sourceW * sourceAr / sourceH;
Expand Down Expand Up @@ -387,7 +390,10 @@ void SlideshowGeneratorWidget::attachBlurFilter(SlideshowConfig &config, Mlt::Pr
double destDar = MLT.profile().dar();
double sourceW = producer->get_double("meta.media.width");
double sourceH = producer->get_double("meta.media.height");
double sourceAr = producer->get_double("aspect_ratio");
double sourceAr = producer->get_double("meta.media.aspect_ratio");
if (!sourceAr) {
sourceAr = producer->get_double("aspect_ratio");
}
double sourceDar = destDar;
if ( sourceW && sourceH && sourceAr ) {
sourceDar = sourceW * sourceAr / sourceH;
Expand Down

0 comments on commit 9e0c1de

Please sign in to comment.