Re: [Development] Requesting a repository for Lottie-Qt implementation

2019-01-09 Thread Frederik Gladhorn
Hi,

Thanks for pointing out that this alternative implementation exists.

On onsdag 9. januar 2019 17:18:50 CET Eike Hein wrote:
> Hi,
> 
> we've written one of those at KDE recently:
> 
> https://github.com/kbroulik/lottie-qml
> 
> We also submitted some patches to both Qt and Lottie to make it work
> better.
> 
> Ours is LGPLv2+ as usual, FWIW.

Which sadly makes it unsuitable for inclusion in Qt.

Our code is already written as well, so I guess we should publish it asap to 
avoid further duplication, maybe Kai wants to contribute some of his work that 
applies. I haven't seen the code that The Qt Company wrote and didn't know Kai 
did something similar.

Considering KDE also is interested in this kind of component, I'm for creating 
the repository now, so that we can compare implementations.

Now we should just clarify if the name lottie can be used, as Thiago pointed 
out.

Cheers,
Frederik


> 
> 
> 
> Cheers,
> Eike
> 
> On 1/9/19 11:23 PM, Tuukka Turunen wrote:
> >  
> > 
> > Hi,
> > 
> >  
> > 
> > I would like to request for a new repository:
> > 
> >  
> > 
> > Name of the repository: qt/qtlottie.git
> > 
> > Description: Lottie-Qt, a renderer for Bodymovin animations
> > 
> > Responsible person: Eirik Aavitsland
> > 
> > Gerrit user/email: eirik.aavitsl...@qt.io 
> > 
> >  
> > 
> > Lottie is a family of player software for a certain json-based  file
> > format for describing 2d vector graphics animations. These files are
> > created/exported directly from After Effects by a plugin called Bodymovin.
> > 
> >  
> > 
> > About Lottie: https://airbnb.design/lottie/
> > 
> >  
> > 
> > Intention is to create a Qt based player for these animations and
> > license it under GLPv3 and commercial licenses.
> > 
> >  
> > 
> > Yours,
> > 
> >  
> > 
> > Tuukka
> > 
> > 
> > ___
> > Development mailing list
> > Development@qt-project.org
> > https://lists.qt-project.org/listinfo/development
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development




___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Requesting a repository for Lottie-Qt implementation

2019-01-09 Thread Tuukka Turunen

Hi Eike,

Great, the more the merrier. After we have the repo in place, I hope you can 
also take a look into what we have in mind as approach for the player. 

Maybe one day these can be compared, perhaps combined or otherwise unified. 

Yours,

Tuukka

On 09/01/2019, 19.31, "Development on behalf of Eike Hein" 
 wrote:

Hi,

we've written one of those at KDE recently:

https://github.com/kbroulik/lottie-qml

We also submitted some patches to both Qt and Lottie to make it work
better.

Ours is LGPLv2+ as usual, FWIW.



Cheers,
Eike

On 1/9/19 11:23 PM, Tuukka Turunen wrote:
>  
> 
> Hi,
> 
>  
> 
> I would like to request for a new repository:
> 
>  
> 
> Name of the repository: qt/qtlottie.git
> 
> Description: Lottie-Qt, a renderer for Bodymovin animations
> 
> Responsible person: Eirik Aavitsland
> 
> Gerrit user/email: eirik.aavitsl...@qt.io 
> 
>  
> 
> Lottie is a family of player software for a certain json-based  file
> format for describing 2d vector graphics animations. These files are
> created/exported directly from After Effects by a plugin called Bodymovin.
> 
>  
> 
> About Lottie: https://airbnb.design/lottie/
> 
>  
> 
> Intention is to create a Qt based player for these animations and
> license it under GLPv3 and commercial licenses.
> 
>  
> 
> Yours,
> 
>  
> 
> Tuukka
> 
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development
> 
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Requesting a repository for Lottie-Qt implementation

2019-01-09 Thread Tuukka Turunen

Hi Thiago,

Lottie is the established term for a player of animations created with Adobe 
After Effects and exported with a plugin tool called Bodymovin.

Lottie is a registered trademark for many things (like nail polish, children's 
toys and food), but it is not registered as a trademark for the player of 
Bodymovin animations (or anything close to it).

See https://airbnb.io/lottie/: "Lottie is named after a German film director 
and the foremost pioneer of silhouette animation." and "Lottie is a mobile 
library for Android and iOS that parses Adobe After Effects animations exported 
as json with Bodymovin and renders them natively on mobile and on the web!"

Therefore we believe the right name for this little thing is Lottie-Qt.

Yours,

Tuukka

On 09/01/2019, 19.52, "Development on behalf of Thiago Macieira" 
 
wrote:

On Wednesday, 9 January 2019 06:23:02 PST Tuukka Turunen wrote:
> Description: Lottie-Qt, a renderer for Bodymovin animations

What's "Lottie" ? Is that an acronym? Or is it a trademark of something? If 
it's the latter, please find another name.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Coding style for lambdas with empty parameter list

2019-01-09 Thread Philippe
I like the shorter form, but keep in mind that when the return type
needs to be specified,

[] ->foo { // lambda content }

is not possible, and following is needed:

[]() -> foo { // lambda content }

Philippe

On Wed, 9 Jan 2019 19:08:46 +0100
"André Hartmann"  wrote:

> Hi all,
> 
> I recently found an inconsistency regarding empty lambda parameter lists
> between [1] and [2]. While the first states, that parentheses have to be
> written always, the latter is missing this section.
> 
> My request to syncronize both [3] lead to the conclusion, to change the rule,
> so that empty parameter lists should be written as
> 
>  [] { // lambda content }
> 
> instead
> 
>  []() { // lambda content }
> 
> If anyone has objections against this change, please vote at [3]. 
> I'll keep this commit open a while and adopt the Wiki [1] once the change
> is approved without objections.
> 
> Thanks and regards,
> André
> 
> [1] https://wiki.qt.io/Coding_Conventions#Lambdas
> [2] https://code.woboq.org/qt5/qt-creator/doc/api/coding-style.qdoc.html#772
> [3] https://codereview.qt-project.org/249192
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development


___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


[Development] Coding style for lambdas with empty parameter list

2019-01-09 Thread André Hartmann
Hi all,

I recently found an inconsistency regarding empty lambda parameter lists
between [1] and [2]. While the first states, that parentheses have to be
written always, the latter is missing this section.

My request to syncronize both [3] lead to the conclusion, to change the rule,
so that empty parameter lists should be written as

 [] { // lambda content }

instead

 []() { // lambda content }

If anyone has objections against this change, please vote at [3]. 
I'll keep this commit open a while and adopt the Wiki [1] once the change
is approved without objections.

Thanks and regards,
André

[1] https://wiki.qt.io/Coding_Conventions#Lambdas
[2] https://code.woboq.org/qt5/qt-creator/doc/api/coding-style.qdoc.html#772
[3] https://codereview.qt-project.org/249192
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Requesting a repository for Lottie-Qt implementation

2019-01-09 Thread Thiago Macieira
On Wednesday, 9 January 2019 06:23:02 PST Tuukka Turunen wrote:
> Description: Lottie-Qt, a renderer for Bodymovin animations

What's "Lottie" ? Is that an acronym? Or is it a trademark of something? If 
it's the latter, please find another name.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Requesting a repository for Lottie-Qt implementation

2019-01-09 Thread Eike Hein
Hi,

we've written one of those at KDE recently:

https://github.com/kbroulik/lottie-qml

We also submitted some patches to both Qt and Lottie to make it work
better.

Ours is LGPLv2+ as usual, FWIW.



Cheers,
Eike

On 1/9/19 11:23 PM, Tuukka Turunen wrote:
>  
> 
> Hi,
> 
>  
> 
> I would like to request for a new repository:
> 
>  
> 
> Name of the repository: qt/qtlottie.git
> 
> Description: Lottie-Qt, a renderer for Bodymovin animations
> 
> Responsible person: Eirik Aavitsland
> 
> Gerrit user/email: eirik.aavitsl...@qt.io 
> 
>  
> 
> Lottie is a family of player software for a certain json-based  file
> format for describing 2d vector graphics animations. These files are
> created/exported directly from After Effects by a plugin called Bodymovin.
> 
>  
> 
> About Lottie: https://airbnb.design/lottie/
> 
>  
> 
> Intention is to create a Qt based player for these animations and
> license it under GLPv3 and commercial licenses.
> 
>  
> 
> Yours,
> 
>  
> 
>     Tuukka
> 
> 
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development
> 
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] QAbstractVideoFilter, the pipeline and QImage

2019-01-09 Thread Jason H

>> I really want a QAbstractVideoBuffer *QVideoFrame::buffer() which I can then 
>>cast to my custom type.
 
> Sorry, but just a note.
> QAbstractVideoBuffer is an abstraction that was supposed to be an impl of 
> accessing to data, nothing more.
 
 
>> I'm trying to implement a QAbstractVideo buffer that uses cv::Mat
 
> Why you need to use cv::Mat there? 
> If needed, you could create QAbstractVideoBuffer::UserHandle and return an id 
> to access to cv's data without downloading/uploading within mapping.

Because the video frame needs to be converted to a format that OpenCV 
understands. Various OpenCV functions need particular pixel representation 
types: grayscale 8 bit, floating point, float or int array if 3,4 color 
channels. I basically want to do this conversion once, then pass that on to 
later stages in the pipeline. In general the OpenCV functions don't modify the 
frame itself, but produce information about the frame. The filters I have emit 
the results of the computation in some cases (a list of line segments for 
houghLines) while others, like sobel, create a new image. Depending on the 
pipeline, I might want multiple OpenCV representations. I generally use 
QPainter though, to draw on the frame after having gotten the information. 
 
>>  I think there should be class(es) that converts a QVideoFrame to a cv::Mat, 
>>and one that converts from cv::Mat to QVideoFrame: filters: [toMat, blur, 
>>sobel, houghLines, toVideoFrame]
 
> Is it performance wise operation to convert QVideoFrame to cv::Mat and back 
> in this case?
> (qt_imageFromVideoFrame(QVideoFrame) can convert to QImage, and should be 
> relatively fast)
 
Well, I generally don't need to convert back, though this is possible. There 
are OpenCV functions that produce an image. I'm fine with using OpenCV to 
extract info and keep the drawing in Qt (QPainter). So there's no need for me 
to convert it back. Though I will say that the OpenCV functions are _very_ 
fast, supporting multiple acceleration methods (uses Eigen). I wrote my own 
implementations of some of them purely in Qt, and the OpenCV stuff puts them to 
shame. Image saving is the only thing where Qt is faster (IMHO, empirical 
evidence not yet collected).  One other technique I use is to scale the image 
down (say by 50% or 25%) which quarters or 16ths the time respectively, if I 
don't need pixel perfect accuracy.

I would expect some way to attach cv::Mats to a frame. That way I could look 
through what mats are available, and only pay a penalty when I have to. If a 
previous filter operation already produced a 8bit gray scale, I would just use 
that, and if it doesn't exist create it. Later filters could then use it, or 
create their own.

if (!frame.containsMat(CV_8U)) frame.insertMat(CV_8U, frame.toMat(CV_8U));

cv::Mat mat =  frame.mat(CV_8U)
...
frame.insertMat(CV_8U, mat)//if I need to save (like for sobel)

WRT the "Big Picture": I'm trying to a point where I can in QML, have filters, 
which are OpenCV functions programmed to a dynamic filter pipeline.  My 
approach is working but the cost of all the conversions is very expensive. 
We're talking 50msec per frame, which gets me down into 1 filter is 15pfs 
territory, 2 filters is 5 fps, etc. My source is 25-29.97FPS. The way I've been 
doing this is copying the QVideoFrame to QImage, then using that for a Mat.If I 
can just pay the conversion penalty once, I think that would go a long way in 
helping. 

Maybe what I need to do is to make the cv::Map a QVariant and store it as 
metadata and use QVideoFrame availableMetaData()? 


 


From: Development  on behalf of Jason H 

Sent: Tuesday, January 8, 2019 6:33:14 PM
To: Jason H
Cc: Qt development mailing list
Subject: Re: [Development] QAbstractVideoFilter, the pipeline and QImage
 

I'm still plugging away at this. My life is being made difficult by not being 
able to get a pointer to the buffer. For OpenCV, some routines want a color 
image, others want an 8 bit gray scale. It would be really great if I could use 
both of these at the same time.
 
For example, take the color video frame, make it gray scale, then run 
houghLlines on it, using that information to highlight the lines in the color 
frame. I tried to do this with a simple QMap but there's no way I 
can access it, because there's no QAbstractBuffer *QVideoFrame::buffer(). I 
might be able to hack it in using QAbstractPlanarVideoBuffer, but that feels 
very hacky (plane 0= color, plane2=B) in addition sometimes the type needs to 
change from quint8s to floats.
 
I feel like I'm really off in the weeds here and would like someone to chime 
in, if I'm completely missing something or if these are shortcomings in the Qt 
API?
 
 

Sent: Monday, January 07, 2019 at 5:22 PM
From: "Jason H" 
To: "Jason H" 
Cc: "Pierre-Yves Siret" , "Qt development mailing list" 

Subject: Re: [Development] QAbstractVideoFilter, the pipeline and QImage

I'm trying 

[Development] Requesting a repository for Lottie-Qt implementation

2019-01-09 Thread Tuukka Turunen

Hi,

I would like to request for a new repository:

Name of the repository: qt/qtlottie.git
Description: Lottie-Qt, a renderer for Bodymovin animations
Responsible person: Eirik Aavitsland
Gerrit user/email: eirik.aavitsl...@qt.io

Lottie is a family of player software for a certain json-based  file format for 
describing 2d vector graphics animations. These files are created/exported 
directly from After Effects by a plugin called Bodymovin.

About Lottie: https://airbnb.design/lottie/

Intention is to create a Qt based player for these animations and license it 
under GLPv3 and commercial licenses.

Yours,

Tuukka
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Corrupted ML archive

2019-01-09 Thread André Hartmann

Thanks!

Am 09.01.19 um 11:25 schrieb Edward Welbourne:

André Hartmann (8 January 2019 14:09) wrote:

The Qt Creator archive seems broken too.

https://lists.qt-project.org/pipermail/qt-creator/2019-January/thread.html
only contains two mails, but I'm pretty sure there has been more.


Same as developer.
I've poked the sysadmins again ...

Eddy.



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] Corrupted ML archive

2019-01-09 Thread Edward Welbourne
André Hartmann (8 January 2019 14:09) wrote:
> The Qt Creator archive seems broken too.
>
> https://lists.qt-project.org/pipermail/qt-creator/2019-January/thread.html
> only contains two mails, but I'm pretty sure there has been more.

Same as developer.
I've poked the sysadmins again ...

Eddy.
___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] [Releasing] HEADS-UP: Branching from '5.12' to '5.12.1' started

2019-01-09 Thread Liang Qi
qtbase and qttools final down merges are done,

https://codereview.qt-project.org/#/c/249324/
https://codereview.qt-project.org/#/c/249362/

And also qt5 5.12->5.12.1 final down merge is done,

https://codereview.qt-project.org/#/c/249362/

—Liang

> On 8 Jan 2019, at 08:32, Jani Heikkinen  wrote:
> 
> Hi all,
> 
> Branching from '5.12' -> '5.12.1' is finally (almost) done; qtbase and 
> qttools is  still ongoing, there were some conflicts and so on manual merge + 
> normal integration is needed there. Work is ongoing and should be ready 
> today. 
> 
> So from now on '5.12.1' is for soon coming Qt 5.12.1 release and staging 
> there is restricted to release team only. And '5.12' is for Qt 5.12.2.
> 
> Target is to get Qt 5.12.1 out as soon as possible. We will create initial 
> changes files soon so please finalize those immediately to be able to proceed 
> with the release. Release blocker list here: 
> https://bugreports.qt.io/issues/?filter=20430 Please make sure all release 
> blockers are visible in the list!
> 
> We will release first snapshot for Qt 5.12.1 during this week as well
> 
> br,
> Jani
> 
> From: Development  on behalf of Jani 
> Heikkinen 
> Sent: Monday, January 7, 2019 7:37 AM
> To: Aleksey Kontsevich; ekke; developm...@lists.qt-project.org
> Subject: Re: [Development] HEADS-UP: Branching from '5.12' to   '5.12.1'  
>   started
> 
>> -Original Message-
>> From: Development  On Behalf Of
>> Aleksey Kontsevich
>> Sent: lauantai 5. tammikuuta 2019 12.23
>> To: ekke ; developm...@lists.qt-project.org
>> Subject: Re: [Development] HEADS-UP: Branching from '5.12' to '5.12.1'
>> started
>> 
>> Hi,
>> 
>> What about QTBUG-72687 and QTBUG-72227?
>> 
> QTBUG-72687 or QTBUG-72227 aren't really a release blocker, sorry.
> 
> br,
> Jani
> ___
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development
> ___
> Releasing mailing list
> releas...@qt-project.org
> https://lists.qt-project.org/listinfo/releasing

___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development


Re: [Development] QAbstractVideoFilter, the pipeline and QImage

2019-01-09 Thread Val Doroshchuk
Hi,

> I really want a QAbstractVideoBuffer *QVideoFrame::buffer() which I can then 
> cast to my custom type.


Sorry, but just a note.

QAbstractVideoBuffer is an abstraction that was supposed to be an impl of 
accessing to data, nothing more.


> I'm trying to implement a QAbstractVideo buffer that uses cv::Mat


Why you need to use cv::Mat there?

If needed, you could create QAbstractVideoBuffer::UserHandle and return an id 
to access to cv's data without downloading/uploading within mapping.


>  I think there should be class(es) that converts a QVideoFrame to a cv::Mat, 
> and one that converts from cv::Mat to QVideoFrame: filters: [toMat, blur, 
> sobel, houghLines, toVideoFrame]


Is it performance wise operation to convert QVideoFrame to cv::Mat and back in 
this case?

(qt_imageFromVideoFrame(QVideoFrame) can convert to QImage, and should be 
relatively fast)




From: Development  on behalf of Jason H 

Sent: Tuesday, January 8, 2019 6:33:14 PM
To: Jason H
Cc: Qt development mailing list
Subject: Re: [Development] QAbstractVideoFilter, the pipeline and QImage

I'm still plugging away at this. My life is being made difficult by not being 
able to get a pointer to the buffer. For OpenCV, some routines want a color 
image, others want an 8 bit gray scale. It would be really great if I could use 
both of these at the same time.

For example, take the color video frame, make it gray scale, then run 
houghLlines on it, using that information to highlight the lines in the color 
frame. I tried to do this with a simple QMap but there's no way I 
can access it, because there's no QAbstractBuffer *QVideoFrame::buffer(). I 
might be able to hack it in using QAbstractPlanarVideoBuffer, but that feels 
very hacky (plane 0= color, plane2=B) in addition sometimes the type needs to 
change from quint8s to floats.

I feel like I'm really off in the weeds here and would like someone to chime 
in, if I'm completely missing something or if these are shortcomings in the Qt 
API?


Sent: Monday, January 07, 2019 at 5:22 PM
From: "Jason H" 
To: "Jason H" 
Cc: "Pierre-Yves Siret" , "Qt development mailing list" 

Subject: Re: [Development] QAbstractVideoFilter, the pipeline and QImage
I'm trying to implement a QAbstractVideo buffer that uses cv::Mat (or my own 
custom type, CvMatVideoBuffer or ByteArrayVideoBuffer respectively), but I'm 
running into a mental block with how this should work. Only map() gives pixel 
data, I really want a QAbstractVideoBuffer *QVideoFrame::buffer() which I can 
then cast to my custom type.  Generally when I'm fighting Qt in this way, I'm 
doing something wrong.

I can convert between QImage/cv::Mat with:

cv::Mat qimage_to_mat_cpy(QImage const , bool swap)
{
return qimage_to_mat_ref(const_cast(img), swap).clone();
}


QImage mat_to_qimage_ref(cv::Mat , QImage::Format format)
{
return QImage(mat.data, mat.cols, mat.rows, static_cast(mat.step), 
format);
}

cv::Mat  qimage_to_mat_ref(QImage , int format)
{
return cv::Mat(img.height(), img.width(), format, img.bits(), 
img.bytesPerLine());
}



Is there an example of how to "properly" use Qt's video pipleline filters, 
frames, and buffers with OpenCV?  I think there should be class(es) that 
converts a QVideoFrame to a cv::Mat, and one that converts from cv::Mat to 
QVideoFrame:
filters: [toMat, blur, sobel, houghLines, toVideoFrame]

Many thanks in advance.


Sent: Monday, January 07, 2019 at 10:57 AM
From: "Jason H" 
To: "Jason H" 
Cc: "Pierre-Yves Siret" , "Qt development mailing list" 

Subject: Re: [Development] QAbstractVideoFilter, the pipeline and QImage
I have been thinking about this more, and I think we also need to convert when 
the pipeline switches between internal formats. This would allow standard 
filter tooklits to be "a thing" for Qt.

For example, if my pipeline filters are written to use QImage (because 
scanline() and pixel()) , and someone else's use cv::Mat (OpenCV), alternating 
between formats is not possible in the same pipeline. I think the panacia is to 
be able to convert not just at the end, but for any step:
[gauss, sobel, houghLines, final] -> formats: [QVideoFrame->cv::Mat, cv::Mat, 
cv::Mat->QImage, QImage->QVideoFrame] where each format step is the 
(inputFormat -> outputFormat)

Just my 0.02BTC.


Sent: Wednesday, January 02, 2019 at 12:33 PM
From: "Jason H" 
To: "Pierre-Yves Siret" 
Cc: "Qt development mailing list" 
Subject: Re: [Development] QAbstractVideoFilter, the pipeline and QImage
Thanks for pointing that out. I guess that could work. It's not as elegant as 
what I want, where everyhing presents the same way. Now each and every filter 
has to have

if (flags & QVideoFilterRunnable::LastInChain) {
   ... generate the frame for the backend per the surfaceFormat
}

As there are many surfaceFormats, that if(){} block is huge, and duplicated in 
each filter. True, I can create a "final filter" that does this to avoid all 
that boilerpate code that takes 

[Development] Qt Automotive Suite 5.12.0 released

2019-01-09 Thread Jukka Jokiniva
Hi everyone!

I am happy to announce that Qt Automotive Suite 5.12.0 has been released. 
Read more information from the blog post: 
https://blog.qt.io/blog/2019/01/09/announcing-qt-automotive-suite-5-12/

Big thanks to everyone involved!

br,
Jukka Jokiniva
Release Manager
The Qt Company



___
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development