Skip to content
Snippets Groups Projects
Commit bb7256a5 authored by Stepan Salenikovich's avatar Stepan Salenikovich
Browse files

Revert "directrenderer: Use smart ptr for frame"

This reverts commit 12aa1880.

Change-Id: I922d974ae4441f19e023b813582caca2f443d024
parent 12aa1880
No related branches found
No related tags found
No related merge requests found
......@@ -72,15 +72,13 @@ void Video::DirectRenderer::stopRendering ()
emit stopped();
}
void Video::DirectRenderer::onNewFrame(const std::shared_ptr<std::vector<unsigned char> >& frame, int w, int h)
void Video::DirectRenderer::onNewFrame(const QByteArray& frame)
{
if (!isRendering()) {
return;
}
Video::Renderer::d_ptr->m_pSize.setWidth(w);
Video::Renderer::d_ptr->m_pSize.setHeight(h);
Video::Renderer::d_ptr->m_iFrame = frame;
Video::Renderer::d_ptr->m_pFrame = const_cast<char*>(frame.data());
emit frameUpdated();
}
......
......@@ -18,8 +18,6 @@
#ifndef VIDEO_DIRECT_RENDERER_H
#define VIDEO_DIRECT_RENDERER_H
#include <memory>
//Base
#include <QtCore/QObject>
#include "typedefs.h"
......@@ -53,7 +51,7 @@ public:
//Getter
virtual ColorSpace colorSpace() const override;
void onNewFrame(const std::shared_ptr<std::vector<unsigned char> >& frame, int w, int h);
void onNewFrame(const QByteArray& frame);
public Q_SLOTS:
virtual void startRendering() override;
......
......@@ -23,7 +23,6 @@
#include <QtCore/QSize>
#include <atomic>
#include <memory>
class QMutex;
......@@ -45,7 +44,6 @@ public:
char* m_pFrame ;
QByteArray m_Content ;
unsigned int m_FrameSize ;
std::shared_ptr<std::vector<unsigned char> > m_iFrame;
private:
Video::Renderer* q_ptr;
......
......@@ -213,9 +213,9 @@ void VideoRendererManagerPrivate::startedDecoding(const QString& id, const QStri
m_hRenderers[rid] = r;
m_hRendererIds[r]=rid;
DBus::VideoManager::instance().registerSinkTarget(id, [this, id, width, height] (std::shared_ptr<std::vector<unsigned char> >& frame, int w, int h) {
DBus::VideoManager::instance().registerSinkTarget(id, [this, id, width, height] (const unsigned char* frame) {
static_cast<Video::DirectRenderer*>(m_hRenderers[id.toLatin1()])->onNewFrame(
frame, w, h
QByteArray::fromRawData(reinterpret_cast<const char *>(frame), width*height)
);
});
......@@ -244,9 +244,9 @@ void VideoRendererManagerPrivate::startedDecoding(const QString& id, const QStri
#ifdef ENABLE_LIBWRAP
DBus::VideoManager::instance().registerSinkTarget(id, [this, id, width, height] (std::shared_ptr<std::vector<unsigned char> >& frame, int w, int h) {
DBus::VideoManager::instance().registerSinkTarget(id, [this, id, width, height] (const unsigned char* frame) {
static_cast<Video::DirectRenderer*>(m_hRenderers[id.toLatin1()])->onNewFrame(
frame, w, h
QByteArray::fromRawData(reinterpret_cast<const char *>(frame), width*height)
);
});
......
......@@ -196,14 +196,14 @@ public Q_SLOTS: // METHODS
#endif
}
void registerSinkTarget(const QString &sinkID, std::function<void(std::shared_ptr<std::vector<unsigned char> >&, int, int)>&& cb)
void registerSinkTarget(const QString &sinkID, std::function<void(uint8_t*)>&& cb)
{
#ifdef ENABLE_VIDEO
DRing::registerSinkTarget(sinkID.toStdString(), std::move(cb));
#endif
}
void registerSinkTarget(const QString &sinkID, std::function<void(std::shared_ptr<std::vector<unsigned char> >&, int, int)>& cb)
void registerSinkTarget(const QString &sinkID, std::function<void(uint8_t*)>& cb)
{
#ifdef ENABLE_VIDEO
DRing::registerSinkTarget(sinkID.toStdString(), std::move(cb));
......
......@@ -66,9 +66,11 @@ QSize Video::Renderer::size() const
return d_ptr->m_pSize;
}
const std::shared_ptr<std::vector<unsigned char> >& Video::Renderer::currentFrame() const
const QByteArray& Video::Renderer::currentFrame() const
{
return d_ptr->m_iFrame;
if (d_ptr->m_pFrame && d_ptr->m_FrameSize)
d_ptr->m_Content.setRawData(d_ptr->m_pFrame,d_ptr->m_FrameSize);
return d_ptr->m_Content;
}
/*****************************************************************************
......
......@@ -18,8 +18,6 @@
#ifndef VIDEO_ABSTRACT_RENDERER_H
#define VIDEO_ABSTRACT_RENDERER_H
#include <memory>
//Base
#include <QtCore/QObject>
#include <typedefs.h>
......@@ -76,7 +74,7 @@ public:
//Getters
virtual bool isRendering () const;
virtual const std::shared_ptr<std::vector<unsigned char> >& currentFrame () const;
virtual const QByteArray& currentFrame () const;
virtual QSize size () const;
virtual QMutex* mutex () const;
virtual ColorSpace colorSpace () const = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment