[Interest] "Activate your 10-day Qt 6 evaluation now"

David M. Cotter dave at kjams.com
Mon Aug 30 18:41:58 CEST 2021


I have an app heavily dependent on Multimedia.

it took me about a week and a half total

i created a header "Qt6Bridge.h" that defines a bunch of stuff one way or another depending on qt5 or qt6 (have to keep qt5 build alive until Qt6 has all the functionality in need).

eg:

#ifndef _H_Qt6Bridge
#define _H_Qt6Bridge

#if _QT_
#include "CFUtils.h"
#include <QAudioOutput>

#if _QT6_
	#include <QList>
	#include <QVideoFrameFormat>
	#include <QAudioDevice>
	#include <QVideoSink>
	#include <QAudioSink>
	#include <QCameraDevice>
	#include <QMediaDevices>
	#include <QMediaMetaData>

	typedef QVideoFrameFormat		QtVideoFrameFormat;
	typedef QVideoFrameFormat::PixelFormat	QtVideoFramePixFormat;

	typedef	QVideoSink			QtAbstractVideoSurface;

	#define	getVideoSurface()		videoSink()
	#define	getAvailableVideoDevices()	QMediaDevices::videoInputs()
	#define setMediaSoure			setSource
	#define QMediaPlayer_PlaybackState	QMediaPlayer::PlaybackState
	#define getPlaybackState()		playbackState()

	// ------------------------
	typedef	QAudioDevice			QtAudioDevice;

	typedef QAudioDevice::Mode		QtAudioDeviceMode;
	#define	QtAudioDeviceMode_Input		QAudioDevice::Input
	#define	QtAudioDeviceMode_Output	QAudioDevice::Output

	QList<QAudioDevice>			getAvailableAudioDevices(QtAudioDeviceMode ioMode);
	#define	getDefaultAudioDevice()		QMediaDevices::defaultAudioOutput()

	#define	QAudioFormat_SampleType		QAudioFormat::SampleFormat
	#define	getSampleType()			sampleFormat()
	#define	getSupportedSampleTypes()	supportedSampleFormats()
	#define bitsPerSample()			bytesPerSample() * 8

	typedef QAudioSink			QtAudioSink;

	namespace QSound {
		void	play(const QString& path);
	};

	// ------------------------
	typedef	QCameraDevice			QtCameraDevice;

	// ------------------------
	#define	getDeviceName()			description()

#else	//	_QT6_
	#include <QVideoSurfaceFormat>
	#include <QAudioDeviceInfo>
	#include <QAbstractVideoSurface>
	#include <QCameraInfo>
	#include <QSound>

	typedef QVideoSurfaceFormat		QtVideoFrameFormat;
	typedef QVideoFrame::PixelFormat	QtVideoFramePixFormat;

	typedef	QAbstractVideoSurface		QtAbstractVideoSurface;

	#define	getVideoSurface()		videoSurface()
	#define	getAvailableVideoDevices()	QCameraInfo::availableCameras()
	#define setMediaSoure			setMedia
	#define QMediaPlayer_PlaybackState	QMediaPlayer::State
	#define getPlaybackState()		state()

	// ------------------------
	typedef	QAudioDeviceInfo		QtAudioDevice;

	typedef QAudio::Mode			QtAudioDeviceMode;
	#define QtAudioDeviceMode_Input		QAudio::AudioInput
	#define QtAudioDeviceMode_Output	QAudio::AudioOutput

	#define	getAvailableAudioDevices(_type)	QAudioDeviceInfo::availableDevices(_type)
	#define	getDefaultAudioDevice()		QAudioDeviceInfo::defaultOutputDevice()

	#define	QAudioFormat_SampleType		QAudioFormat::SampleType
	#define	getSampleType()			sampleType()
	#define	getSupportedSampleTypes()	supportedSampleTypes()
	#define bitsPerSample()			sampleSize()

	typedef QAudioOutput			QtAudioSink;
	// ------------------------
	typedef	QCameraInfo			QtCameraDevice;

	// ------------------------
	#define	getDeviceName()			deviceName()
#endif	//	!_QT6_

#endif	//	_QT_
#endif	// _H_Qt6Bridge

I also had to write my own "QVideoFrame_fromImage()" cuz that func no longer exists

the rest was working around the fact that you can't multiplex video frames any more:
https://bugreports.qt.io/browse/QTBUG-95127
https://bugreports.qt.io/browse/QTBUG-95542

and i'm waiting still on the ability to get predictable audio samples from the decoder:
https://bugreports.qt.io/browse/QTBUG-95766



> On Aug 30, 2021, at 9:30 AM, Nuno Santos <nuno.santos at imaginando.pt> wrote:
> 
> Thiago,
> 
> Thanks for the clarification.
> 
> I was convinced that qmake was not available anymore. My bad! :/
> 
> Still, I think 10 days of evaluation is a really short period of time.
> 
> I would love to hear feedback from people who have started porting their software to Qt 6 and how the effort of such migration.
> 
> Regards,
> 
> Nuno
> 
>> On 30 Aug 2021, at 17:16, Thiago Macieira <thiago.macieira at intel.com> wrote:
>> 
>> On Monday, 30 August 2021 04:22:52 PDT Nuno Santos wrote:
>>> I would say that taking into account the fact that Qt has a new building
>>> system and qmake is not available anymore, porting an existing project
>>> takes much more than 10 days.
>> 
>> That's incorrect. qmake is still available.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210830/0ef1976f/attachment.html>


More information about the Interest mailing list