1 | /* --------------------------------------------------------------------------- |
2 | ** This software is in the public domain, furnished "as is", without technical |
3 | ** support, and with no warranty, express or implied, as to its usefulness for |
4 | ** any purpose. |
5 | ** |
6 | ** ServerMediaSubsession.h |
7 | ** |
8 | ** -------------------------------------------------------------------------*/ |
9 | |
10 | #pragma once |
11 | |
12 | #include <sys/stat.h> |
13 | |
14 | #include <string> |
15 | #include <iomanip> |
16 | #include <iostream> |
17 | #include <fstream> |
18 | |
19 | // live555 |
20 | #include <liveMedia.hh> |
21 | |
22 | // forward declaration |
23 | class V4L2DeviceSource; |
24 | |
25 | // --------------------------------- |
26 | // BaseServerMediaSubsession |
27 | // --------------------------------- |
28 | class BaseServerMediaSubsession |
29 | { |
30 | public: |
31 | BaseServerMediaSubsession(StreamReplicator* replicator): m_replicator(replicator) {}; |
32 | |
33 | public: |
34 | static FramedSource* createSource(UsageEnvironment& env, FramedSource * videoES, const std::string& format); |
35 | static RTPSink* createSink(UsageEnvironment& env, Groupsock * rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, const std::string& format, V4L2DeviceSource* source); |
36 | char const* getAuxLine(V4L2DeviceSource* source, RTPSink* rtpSink); |
37 | |
38 | protected: |
39 | StreamReplicator* m_replicator; |
40 | }; |
41 | |
42 | |