diff --git a/inc/ALSACapture.h b/inc/ALSACapture.h index a314855..2169211 100755 --- a/inc/ALSACapture.h +++ b/inc/ALSACapture.h @@ -11,8 +11,7 @@ ** ** -------------------------------------------------------------------------*/ -#ifndef ALSA_CAPTURE -#define ALSA_CAPTURE +#pragma once #include @@ -63,6 +62,5 @@ class ALSACapture : public DeviceInterface snd_pcm_format_t m_fmt; }; -#endif diff --git a/inc/ServerMediaSubsession.h b/inc/BaseServerMediaSubsession.h similarity index 98% rename from inc/ServerMediaSubsession.h rename to inc/BaseServerMediaSubsession.h index 43b8bf6..8a757dc 100755 --- a/inc/ServerMediaSubsession.h +++ b/inc/BaseServerMediaSubsession.h @@ -3,7 +3,7 @@ ** support, and with no warranty, express or implied, as to its usefulness for ** any purpose. ** -** ServerMediaSubsession.h +** BaseServerMediaSubsession.h ** ** -------------------------------------------------------------------------*/ @@ -22,7 +22,7 @@ #include -#include "DeviceSource.h" +#include "V4L2DeviceSource.h" #include "logger.h" #ifdef HAVE_ALSA diff --git a/inc/DeviceInterface.h b/inc/DeviceInterface.h index 40bb94e..5139e43 100755 --- a/inc/DeviceInterface.h +++ b/inc/DeviceInterface.h @@ -8,8 +8,7 @@ ** -------------------------------------------------------------------------*/ -#ifndef DEVICE_INTERFACE -#define DEVICE_INTERFACE +#pragma once // --------------------------------- @@ -31,4 +30,3 @@ class DeviceInterface }; -#endif diff --git a/inc/DeviceSourceFactory.h b/inc/DeviceSourceFactory.h index fa72f7a..5867ac5 100644 --- a/inc/DeviceSourceFactory.h +++ b/inc/DeviceSourceFactory.h @@ -13,7 +13,7 @@ #include -#include "DeviceSource.h" +#include "V4L2DeviceSource.h" #include "H264_V4l2DeviceSource.h" class DeviceSourceFactory { diff --git a/inc/H264_V4l2DeviceSource.h b/inc/H264_V4l2DeviceSource.h index efa7ee8..ba61392 100644 --- a/inc/H264_V4l2DeviceSource.h +++ b/inc/H264_V4l2DeviceSource.h @@ -10,11 +10,10 @@ ** -------------------------------------------------------------------------*/ -#ifndef H264_V4L2_DEVICE_SOURCE -#define H264_V4L2_DEVICE_SOURCE +#pragma once // project -#include "DeviceSource.h" +#include "V4L2DeviceSource.h" // --------------------------------- // H264 V4L2 FramedSource @@ -72,4 +71,3 @@ class H265_V4L2DeviceSource : public H26X_V4L2DeviceSource std::string m_vps; }; -#endif diff --git a/inc/MulticastServerMediaSubsession.h b/inc/MulticastServerMediaSubsession.h index 4ff5987..d41327d 100644 --- a/inc/MulticastServerMediaSubsession.h +++ b/inc/MulticastServerMediaSubsession.h @@ -9,7 +9,7 @@ #pragma once -#include "ServerMediaSubsession.h" +#include "BaseServerMediaSubsession.h" // ----------------------------------------- // ServerMediaSubsession for Multicast diff --git a/inc/UnicastServerMediaSubsession.h b/inc/UnicastServerMediaSubsession.h index 6a343a5..dbce5da 100644 --- a/inc/UnicastServerMediaSubsession.h +++ b/inc/UnicastServerMediaSubsession.h @@ -9,7 +9,7 @@ #pragma once -#include "ServerMediaSubsession.h" +#include "BaseServerMediaSubsession.h" // ----------------------------------------- // ServerMediaSubsession for Unicast diff --git a/inc/DeviceSource.h b/inc/V4L2DeviceSource.h similarity index 76% rename from inc/DeviceSource.h rename to inc/V4L2DeviceSource.h index f3cf45f..33da442 100755 --- a/inc/DeviceSource.h +++ b/inc/V4L2DeviceSource.h @@ -3,15 +3,14 @@ ** support, and with no warranty, express or implied, as to its usefulness for ** any purpose. ** -** DeviceSource.h +** V4L2DeviceSource.h ** ** live555 source ** ** -------------------------------------------------------------------------*/ -#ifndef DEVICE_SOURCE -#define DEVICE_SOURCE +#pragma once #include #include @@ -24,28 +23,10 @@ #include #include "DeviceInterface.h" -#include "V4l2Capture.h" // ----------------------------------------- -// Video Device Capture Interface +// Video Device Source // ----------------------------------------- -class VideoCaptureAccess : public DeviceInterface -{ - public: - VideoCaptureAccess(V4l2Capture* device) : m_device(device) {} - virtual ~VideoCaptureAccess() { delete m_device; } - - virtual size_t read(char* buffer, size_t bufferSize) { return m_device->read(buffer, bufferSize); } - virtual int getFd() { return m_device->getFd(); } - virtual unsigned long getBufferSize() { return m_device->getBufferSize(); } - virtual int getWidth() { return m_device->getWidth(); } - virtual int getHeight() { return m_device->getHeight(); } - virtual int getVideoFormat() { return m_device->getFormat(); } - - protected: - V4l2Capture* m_device; -}; - class V4L2DeviceSource: public FramedSource { public: @@ -95,7 +76,7 @@ class V4L2DeviceSource: public FramedSource protected: static void* threadStub(void* clientData) { return ((V4L2DeviceSource*) clientData)->thread();}; - void* thread(); + virtual void* thread(); static void deliverFrameStub(void* clientData) {((V4L2DeviceSource*) clientData)->deliverFrame();}; void deliverFrame(); static void incomingPacketHandlerStub(void* clientData, int mask) { ((V4L2DeviceSource*) clientData)->incomingPacketHandler(); }; @@ -123,4 +104,3 @@ class V4L2DeviceSource: public FramedSource std::string m_auxLine; }; -#endif diff --git a/inc/V4l2RTSPServer.h b/inc/V4l2RTSPServer.h index f0843df..3baefff 100644 --- a/inc/V4l2RTSPServer.h +++ b/inc/V4l2RTSPServer.h @@ -17,7 +17,6 @@ #include #include -#include "ServerMediaSubsession.h" #include "UnicastServerMediaSubsession.h" #include "MulticastServerMediaSubsession.h" #include "TSServerMediaSubsession.h" diff --git a/inc/VideoCaptureAccess.h b/inc/VideoCaptureAccess.h new file mode 100755 index 0000000..ba60467 --- /dev/null +++ b/inc/VideoCaptureAccess.h @@ -0,0 +1,37 @@ +/* --------------------------------------------------------------------------- +** This software is in the public domain, furnished "as is", without technical +** support, and with no warranty, express or implied, as to its usefulness for +** any purpose. +** +** DeviceSource.h +** +** live555 source +** +** -------------------------------------------------------------------------*/ + + +#pragma once + + +#include "DeviceInterface.h" +#include "V4l2Capture.h" + +// ----------------------------------------- +// Video Device Capture Interface +// ----------------------------------------- +class VideoCaptureAccess : public DeviceInterface +{ + public: + VideoCaptureAccess(V4l2Capture* device) : m_device(device) {} + virtual ~VideoCaptureAccess() { delete m_device; } + + virtual size_t read(char* buffer, size_t bufferSize) { return m_device->read(buffer, bufferSize); } + virtual int getFd() { return m_device->getFd(); } + virtual unsigned long getBufferSize() { return m_device->getBufferSize(); } + virtual int getWidth() { return m_device->getWidth(); } + virtual int getHeight() { return m_device->getHeight(); } + virtual int getVideoFormat() { return m_device->getFormat(); } + + protected: + V4l2Capture* m_device; +}; diff --git a/src/MulticastServerMediaSubsession.cpp b/src/MulticastServerMediaSubsession.cpp index b59f211..43ce50b 100755 --- a/src/MulticastServerMediaSubsession.cpp +++ b/src/MulticastServerMediaSubsession.cpp @@ -8,7 +8,6 @@ ** -------------------------------------------------------------------------*/ #include "MulticastServerMediaSubsession.h" -#include "DeviceSource.h" // ----------------------------------------- // ServerMediaSubsession for Multicast diff --git a/src/ServerMediaSubsession.cpp b/src/ServerMediaSubsession.cpp index 5d31828..f3996f7 100755 --- a/src/ServerMediaSubsession.cpp +++ b/src/ServerMediaSubsession.cpp @@ -11,9 +11,8 @@ #include // project -#include "ServerMediaSubsession.h" +#include "BaseServerMediaSubsession.h" #include "MJPEGVideoSource.h" -#include "DeviceSource.h" // --------------------------------- // BaseServerMediaSubsession diff --git a/src/UnicastServerMediaSubsession.cpp b/src/UnicastServerMediaSubsession.cpp index f56ff05..8c69973 100755 --- a/src/UnicastServerMediaSubsession.cpp +++ b/src/UnicastServerMediaSubsession.cpp @@ -9,7 +9,6 @@ #include "UnicastServerMediaSubsession.h" -#include "DeviceSource.h" // ----------------------------------------- // ServerMediaSubsession for Unicast diff --git a/src/DeviceSource.cpp b/src/V4L2DeviceSource.cpp similarity index 99% rename from src/DeviceSource.cpp rename to src/V4L2DeviceSource.cpp index a7e26cf..3b77b0b 100644 --- a/src/DeviceSource.cpp +++ b/src/V4L2DeviceSource.cpp @@ -15,7 +15,7 @@ // project #include "logger.h" -#include "DeviceSource.h" +#include "V4L2DeviceSource.h" // --------------------------------- // V4L2 FramedSource Stats diff --git a/src/V4l2RTSPServer.cpp b/src/V4l2RTSPServer.cpp index ba99858..45a61c4 100644 --- a/src/V4l2RTSPServer.cpp +++ b/src/V4l2RTSPServer.cpp @@ -18,6 +18,7 @@ #include "V4l2Output.h" #include "DeviceSourceFactory.h" #include "V4l2RTSPServer.h" +#include "VideoCaptureAccess.h" #ifdef HAVE_ALSA #include "ALSACapture.h"