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
23class V4L2DeviceSource;
24
25// ---------------------------------
26// BaseServerMediaSubsession
27// ---------------------------------
28class 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