http://www.kdenlive.org/mantis/view.php?id=1687
svn path=/trunk/kdenlive/; revision=4650
/*Mlt::Producer parentProd(producer->parent());
Mlt::Service service(parentProd.get_service());
mlt_service_lock(service.get_service());*/
/*Mlt::Producer parentProd(producer->parent());
Mlt::Service service(parentProd.get_service());
mlt_service_lock(service.get_service());*/
+ int ow = width;
+ int oh = height;
mlt_image_format format = mlt_image_rgb24a;
mlt_image_format format = mlt_image_rgb24a;
- uint8_t *data = frame->get_image(format, width, height, 0);
- QImage image((uchar *)data, width, height, QImage::Format_ARGB32);
+ uint8_t *data = frame->get_image(format, ow, oh, 0);
+ QImage image((uchar *)data, ow, oh, QImage::Format_ARGB32);
//mlt_service_unlock(service.get_service());
if (!image.isNull()) {
//mlt_service_unlock(service.get_service());
if (!image.isNull()) {
- p = image.rgbSwapped();
+ if (ow > (2 * width)) {
+ // there was a scaling problem, do it manually
+ QImage scaled = image.scaled(width, height);
+ p = scaled.rgbSwapped();
+ } else p = image.rgbSwapped();
int frame_height = imageHeight;
uint8_t *data = frame->get_image(format, frame_width, frame_height, 0);
QImage image((uchar *)data, frame_width, frame_height, QImage::Format_ARGB32);
int frame_height = imageHeight;
uint8_t *data = frame->get_image(format, frame_width, frame_height, 0);
QImage image((uchar *)data, frame_width, frame_height, QImage::Format_ARGB32);
- QPixmap pix(frame_width, frame_height);
- pix = QPixmap::fromImage(image.rgbSwapped());
+ if (frame_width > (2 * width)) {
+ // there was a scaling problem, do it manually
+ QImage scaled = image.scaled(width, imageHeight);
+ pix = QPixmap::fromImage(scaled.rgbSwapped());
+ } else pix = QPixmap::fromImage(image.rgbSwapped());
} else
pix.fill(Qt::black);
} else
pix.fill(Qt::black);