live
liveMedia
MatroskaFileServerMediaSubsession.hh
Go to the documentation of this file.
1
/**********
2
This library is free software; you can redistribute it and/or modify it under
3
the terms of the GNU Lesser General Public License as published by the
4
Free Software Foundation; either version 3 of the License, or (at your
5
option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)
6
7
This library is distributed in the hope that it will be useful, but WITHOUT
8
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
10
more details.
11
12
You should have received a copy of the GNU Lesser General Public License
13
along with this library; if not, write to the Free Software Foundation, Inc.,
14
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
**********/
16
// "liveMedia"
17
// Copyright (c) 1996-2024 Live Networks, Inc. All rights reserved.
18
// A 'ServerMediaSubsession' object that creates new, unicast, "RTPSink"s
19
// on demand, from a track within a Matroska file.
20
// C++ header
21
22
#ifndef _MATROSKA_FILE_SERVER_MEDIA_SUBSESSION_HH
23
#define _MATROSKA_FILE_SERVER_MEDIA_SUBSESSION_HH
24
25
#ifndef _FILE_SERVER_MEDIA_SUBSESSION_HH
26
#include "
FileServerMediaSubsession.hh
"
27
#endif
28
#ifndef _MATROSKA_FILE_SERVER_DEMUX_HH
29
#include "
MatroskaFileServerDemux.hh
"
30
#endif
31
32
class
MatroskaFileServerMediaSubsession
:
public
FileServerMediaSubsession
{
33
public
:
34
static
MatroskaFileServerMediaSubsession
*
35
createNew
(
MatroskaFileServerDemux
& demux,
MatroskaTrack
* track);
36
37
protected
:
38
MatroskaFileServerMediaSubsession
(
MatroskaFileServerDemux
& demux,
MatroskaTrack
* track);
39
// called only by createNew(), or by subclass constructors
40
virtual
~MatroskaFileServerMediaSubsession
();
41
42
protected
:
// redefined virtual functions
43
virtual
float
duration
()
const
;
44
virtual
void
seekStreamSource
(
FramedSource
* inputSource,
double
& seekNPT,
double
streamDuration, u_int64_t& numBytes);
45
virtual
FramedSource
*
createNewStreamSource
(
unsigned
clientSessionId,
46
unsigned
& estBitrate);
47
virtual
RTPSink
*
createNewRTPSink
(
Groupsock
* rtpGroupsock,
unsigned
char
rtpPayloadTypeIfDynamic,
FramedSource
* inputSource);
48
49
protected
:
50
MatroskaFileServerDemux
&
fOurDemux
;
51
MatroskaTrack
*
fTrack
;
52
unsigned
fNumFiltersInFrontOfTrack
;
53
};
54
55
#endif
FileServerMediaSubsession.hh
MatroskaFileServerDemux.hh
FileServerMediaSubsession
Definition:
FileServerMediaSubsession.hh:32
FramedSource
Definition:
FramedSource.hh:31
Groupsock
Definition:
Groupsock.hh:78
MatroskaFileServerDemux
Definition:
MatroskaFileServerDemux.hh:32
MatroskaFileServerMediaSubsession
Definition:
MatroskaFileServerMediaSubsession.hh:32
MatroskaFileServerMediaSubsession::createNew
static MatroskaFileServerMediaSubsession * createNew(MatroskaFileServerDemux &demux, MatroskaTrack *track)
MatroskaFileServerMediaSubsession::fTrack
MatroskaTrack * fTrack
Definition:
MatroskaFileServerMediaSubsession.hh:51
MatroskaFileServerMediaSubsession::fOurDemux
MatroskaFileServerDemux & fOurDemux
Definition:
MatroskaFileServerMediaSubsession.hh:50
MatroskaFileServerMediaSubsession::fNumFiltersInFrontOfTrack
unsigned fNumFiltersInFrontOfTrack
Definition:
MatroskaFileServerMediaSubsession.hh:52
MatroskaFileServerMediaSubsession::MatroskaFileServerMediaSubsession
MatroskaFileServerMediaSubsession(MatroskaFileServerDemux &demux, MatroskaTrack *track)
MatroskaFileServerMediaSubsession::createNewStreamSource
virtual FramedSource * createNewStreamSource(unsigned clientSessionId, unsigned &estBitrate)
MatroskaFileServerMediaSubsession::~MatroskaFileServerMediaSubsession
virtual ~MatroskaFileServerMediaSubsession()
MatroskaFileServerMediaSubsession::createNewRTPSink
virtual RTPSink * createNewRTPSink(Groupsock *rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource *inputSource)
MatroskaFileServerMediaSubsession::seekStreamSource
virtual void seekStreamSource(FramedSource *inputSource, double &seekNPT, double streamDuration, u_int64_t &numBytes)
MatroskaFileServerMediaSubsession::duration
virtual float duration() const
MatroskaTrack
Definition:
MatroskaFile.hh:141
RTPSink
Definition:
RTPSink.hh:36
Generated on Tue Jun 25 2024 22:52:35 for live by
1.9.5