You've already forked libopenshot
mirror of
https://github.com/OpenShot/libopenshot.git
synced 2026-03-02 08:53:52 -08:00
Changed cmake for Qt5
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -43,7 +43,8 @@
|
||||
|
||||
#include "videowidgetsurface.h"
|
||||
|
||||
#include <QtGui/QWidget>
|
||||
//#include <QtGui/QWidget>
|
||||
#include <qt5/QtWidgets/qwidget.h>
|
||||
|
||||
class QAbstractVideoSurface;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
77
src/Main.cpp
77
src/Main.cpp
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user