Changed cmake for Qt5

This commit is contained in:
Jonathan Thomas
2013-11-17 15:12:08 -06:00
parent d8175effdf
commit 4f8d27a147
8 changed files with 79 additions and 124 deletions

View File

@@ -36,7 +36,7 @@
#include <iostream>
#include <fstream>
#include <omp.h>
#include <qdir.h>
#include <qt5/QtCore/qdir.h>
#include <stdio.h>
#include <stdlib.h>
#include <tr1/memory>

View File

@@ -37,7 +37,7 @@
#include <iostream>
#include <fstream>
#include <omp.h>
#include <qdir.h>
#include <qt5/QtCore/qdir.h>
#include <stdio.h>
#include <sstream>
#include <unistd.h>

View File

@@ -41,8 +41,11 @@
#ifndef VIDEOPLAYER_H
#define VIDEOPLAYER_H
#include <QtGui/QMovie>
#include <QtGui/QWidget>
#include <qt5/QtGui/qmovie.h>
#include <qt5/QtWidgets/qwidget.h>
// #include <QtGui/QMovie>
// #include <QtGui/QWidget>
class QAbstractButton;
class QAbstractVideoSurface;

View File

@@ -43,7 +43,8 @@
#include "videowidgetsurface.h"
#include <QtGui/QWidget>
//#include <QtGui/QWidget>
#include <qt5/QtWidgets/qwidget.h>
class QAbstractVideoSurface;

View File

@@ -41,10 +41,16 @@
#ifndef VIDEOWIDGETSURFACE_H
#define VIDEOWIDGETSURFACE_H
#include <QtCore/QRect>
#include <QtGui/QImage>
#include <QtMultimedia/QAbstractVideoSurface>
#include <QtMultimedia/QVideoFrame>
#include <qt5/QtCore/qrect.h>
#include <qt5/QtGui/qimage.h>
#include <qt5/QtMultimedia/qabstractvideosurface.h>
#include <qt5/QtMultimedia/qvideoframe.h>
//#include <QtCore/QRect>
//#include <QtGui/QImage>
//#include <QtMultimedia/QAbstractVideoSurface>
//#include <QtMultimedia/QVideoFrame>
#include <iostream>
using namespace std;

View File

@@ -54,33 +54,39 @@ FIND_PACKAGE(SDL REQUIRED)
# Include SDL headers (needed for compile)
include_directories(${SDL_INCLUDE_DIR})
################# QT4 ###################
find_program(QT_EXECUTABLE qmake-qt4
PATHS /usr/bin
$ENV{QTDIR} )
################# QT5 ###################
set(CMAKE_AUTOMOC ON)
# Check for the qmake-qt4 executable (and use it, if it's found)
IF (QT_EXECUTABLE)
SET(QT_QMAKE_EXECUTABLE ${QT_EXECUTABLE}) # DEBUB, WORK-AROUND: Force the use of QT4 (when multiple versions are installed)
ENDIF (QT_EXECUTABLE)
# Find QT4 libraries
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtMultimedia REQUIRED)
# Find QT5 libraries
find_package(Qt5Widgets)
find_package(Qt5Core)
find_package(Qt5Gui)
find_package(Qt5Multimedia)
# Include Qt headers (needed for compile)
include(${QT_USE_FILE})
include_directories(${QT_INCLUDES})
add_definitions(${QT_DEFINITIONS})
include_directories(${Qt5Widgets_INCLUDE_DIRS})
include_directories(${Qt5Core_INCLUDE_DIRS})
include_directories(${Qt5Gui_INCLUDE_DIRS})
include_directories(${Qt5Multimedia_INCLUDE_DIRS})
add_definitions(${Qt5Widgets_DEFINITIONS})
add_definitions(${Qt5Core_DEFINITIONS})
add_definitions(${Qt5Gui_DEFINITIONS})
add_definitions(${Qt5Multimedia_DEFINITIONS})
# Add Multimedia library
SET(QT_LIBRARIES ${QT_LIBRARIES} ${QT_QTMULTIMEDIA_LIBRARY})
# Moc all Qt headers
FILE(GLOB QT_HEADERS "/home/jonathan/apps/libopenshot/include/Qt/*.h")
qt4_wrap_cpp (QT_MOC_FILES ${QT_HEADERS})
message('${QT_MOC_FILES}')
SET(QT_LIBRARIES ${Qt5Widgets_LIBRARIES}
${Qt5Core_LIBRARIES}
${Qt5Gui_LIBRARIES}
${Qt5Multimedia_LIBRARIES})
# Set compiler flags for Qt
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Multimedia_EXECUTABLE_COMPILE_FLAGS} ")
################# BLACKMAGIC DECKLINK ###################
# Find BlackMagic DeckLinkAPI libraries
FIND_PACKAGE(BlackMagic)
@@ -143,10 +149,10 @@ SET ( OPENSHOT_SOURCE_FILES
Timeline.cpp
# Qt Video Player
${QT_MOC_FILES}
Qt/videoplayer.cpp
Qt/videowidget.cpp
Qt/videowidgetsurface.cpp
#${QT_MOC_FILES}
#Qt/videoplayer.cpp
#Qt/videowidget.cpp
#Qt/videowidgetsurface.cpp
# Third Party JSON Parser
../thirdparty/jsoncpp/src/lib_json/json_reader.cpp

View File

@@ -33,10 +33,7 @@
#include "../include/OpenShot.h"
#include "../include/Json.h"
#include <omp.h>
#include <qt4/QtCore/qdir.h>
#include <qt4/QtMultimedia/qvideoframe.h>
#include <qt4/QtMultimedia/qvideosurfaceformat.h>
#include <QtGui/QApplication>
using namespace openshot;
using namespace tr1;
@@ -44,78 +41,6 @@ using namespace tr1;
int main(int argc, char* argv[])
{
// Start Qt Application
QApplication app(argc, argv);\
// Init video player widget
VideoPlayer player;
player.showMaximized();
// Prepare video surface
VideoWidgetSurface * videoWidget = new VideoWidgetSurface(&player);
QSize videoSize(1280, 720); // supplement with your video dimensions
// look at VideoWidgetSurface::supportedPixelFormats for supported formats
QVideoSurfaceFormat format( videoSize, QVideoFrame::Format_ARGB32);
// Get test frame
FFmpegReader r2("/home/jonathan/Videos/sintel_trailer-720p.mp4");
r2.Open();
tr1::shared_ptr<Frame> frame = r2.GetFrame(600);
// Get image
tr1::shared_ptr<Magick::Image> image = r2.GetFrame(300)->GetImage();
// Create Qt Video Frame
QVideoFrame aFrame(32 * image->size().width() * image->size().height(), QSize(image->size().width(), image->size().height()), 32 * image->size().width(), QVideoFrame::Format_ARGB32);
// Get a reference to the internal videoframe buffer
aFrame.map(QAbstractVideoBuffer::WriteOnly);
uchar *pixels = aFrame.bits();
// Copy pixel data from ImageMagick to Qt
Magick::Blob my_blob_1;
image->write(&my_blob_1); // or PNG img1.write(&my_blob_1); const QByteArray imageData1((char*)(my_blob_1.data()),my_blob_1.length());
pixels = (uchar*)(my_blob_1.data()),my_blob_1.length();
//memcpy(pixels, my_blob_1.data(), my_blob_1.length());
// Get a list of pixels from source image
// const Magick::PixelPacket *pixel_packets = frame->GetPixels();
//
// // Fill the AVFrame with RGB image data
// int source_total_pixels = image->size().width() * image->size().height();
// for (int packet = 0, row = 0; packet < source_total_pixels; packet++, row+=4)
// {
// // Update buffer (which is already linked to the AVFrame: pFrameRGB)
// // Each color needs to be 8 bit (so I'm bit shifting the 16 bit ints)
// pixels[row] = 255;
// pixels[row+1] = 255;
// pixels[row+2] = pixel_packets[packet].green >> 8;
// pixels[row+3] = pixel_packets[packet].blue >> 8;
// //pixels[row] = qRgb(pixel_packets[packet].red, pixel_packets[packet].green, pixel_packets[packet].blue);
// }
aFrame.unmap();
// Start video player (which sets format's size)
videoWidget->start(format);
// Display frame
videoWidget->present(aFrame);
// Start Qt App
return app.exec();
// FFmpegReader r2("/home/jonathan/Videos/sintel_trailer-720p.mp4");
// r2.Open();

View File

@@ -60,23 +60,37 @@ FIND_PACKAGE(SDL REQUIRED)
# Include SDL headers (needed for compile)
include_directories(${SDL_INCLUDE_DIR})
################# QT4 ###################
find_program(QT_EXECUTABLE qmake-qt4
PATHS /usr/bin
$ENV{QTDIR} )
################# QT5 ###################
set(CMAKE_AUTOMOC ON)
# Check for the qmake-qt4 executable (and use it, if it's found)
IF (QT_EXECUTABLE)
SET(QT_QMAKE_EXECUTABLE ${QT_EXECUTABLE}) # DEBUB, WORK-AROUND: Force the use of QT4 (when multiple versions are installed)
ENDIF (QT_EXECUTABLE)
# Find QT4 libraries
FIND_PACKAGE(Qt4 REQUIRED)
# Find QT5 libraries
find_package(Qt5Widgets)
find_package(Qt5Core)
find_package(Qt5Gui)
find_package(Qt5Multimedia)
# Include Qt headers (needed for compile)
include(${QT_USE_FILE})
include_directories(${QT_INCLUDES})
add_definitions(${QT_DEFINITIONS})
include_directories(${Qt5Widgets_INCLUDE_DIRS})
include_directories(${Qt5Core_INCLUDE_DIRS})
include_directories(${Qt5Gui_INCLUDE_DIRS})
include_directories(${Qt5Multimedia_INCLUDE_DIRS})
add_definitions(${Qt5Widgets_DEFINITIONS})
add_definitions(${Qt5Core_DEFINITIONS})
add_definitions(${Qt5Gui_DEFINITIONS})
add_definitions(${Qt5Multimedia_DEFINITIONS})
# Add Multimedia library
SET(QT_LIBRARIES ${Qt5Widgets_LIBRARIES}
${Qt5Core_LIBRARIES}
${Qt5Gui_LIBRARIES}
${Qt5Multimedia_LIBRARIES})
# Set compiler flags for Qt
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Multimedia_EXECUTABLE_COMPILE_FLAGS} ")
################# BLACKMAGIC DECKLINK ###################
# Find BlackMagic DeckLinkAPI libraries