• 大小: 6.44MB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2023-09-24
  • 语言: 其他
  • 标签: Live555  

资源简介

rtsp_server 为工程主目录 livelib 为live555 库目录 DynamicRTSPServer.cpp live555MediaServer.cpp为mediaServer 中文件修改 H264LiveVideoServerMediaSubsession.cpp H264LiveVideoSource.cpp 为创建对话和获取帧类 其他为平台获取帧代码和库

资源截图

代码片段和文件信息

/**********
This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 3 of the License or (at your
option) any later version. (See .)

This library is distributed in the hope that it will be useful but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
more details.

You should have received a copy of the GNU Lesser General Public License
along with this library; if not write to the Free Software Foundation Inc.
51 Franklin Street Fifth Floor Boston MA 02110-1301  USA
**********/
// Copyright (c) 1996-2017 Live Networks Inc.  All rights reserved
// A subclass of “RTSPServer“ that creates “ServerMediaSession“s on demand
// based on whether or not the specified stream name exists as a file
// Implementation
#include “H264LiveVideoServerMediaSubsession.hh“
#include “DynamicRTSPServer.hh“
#include 
#include 

DynamicRTSPServer*
DynamicRTSPServer::createNew(UsageEnvironment& env Port ourPort
     UserAuthenticationDatabase* authDatabase
     unsigned reclamationTestSeconds) {
  int ourSocket = setUpOurSocket(env ourPort);
  if (ourSocket == -1) return NULL;

  return new DynamicRTSPServer(env ourSocket ourPort authDatabase reclamationTestSeconds);
}

DynamicRTSPServer::DynamicRTSPServer(UsageEnvironment& env int ourSocket
     Port ourPort
     UserAuthenticationDatabase* authDatabase unsigned reclamationTestSeconds)
  : RTSPServerSupportingHTTPStreaming(env ourSocket ourPort authDatabase reclamationTestSeconds) {
}

DynamicRTSPServer::~DynamicRTSPServer() {
}

static ServerMediaSession* createNewSMS(UsageEnvironment& envchar const* fileName FILE* fid); // forward

ServerMediaSession* DynamicRTSPServer::lookupServerMediaSession(char const* streamName Boolean isFirstLookupInSession) 
{
    // Next check whether we already have a “ServerMediaSession“ for this file:
    ServerMediaSession* sms = RTSPServer::lookupServerMediaSession(streamName);
    Boolean smsExists = sms != NULL;

    if (sms == NULL) {
    sms = createNewSMS(envir() streamName NULL); 
    addServerMediaSession(sms);
    }

  return sms;
}

#define NEW_SMS(description) do {\
char const* descStr = description\
    “ streamed by the LIVE555 Media Server“;\
sms = ServerMediaSession::createNew(env fileName fileName descStr);\
} while(0)

static ServerMediaSession* createNewSMS(UsageEnvironment& envchar const* fileName FILE* /*fid*/) 
{
    printf(“filename =%s\n“fileName);
    if(fileName == NULL) return NULL;

    // Use the file name extension to determine the type of “ServerMediaSession“:
 //   char const* h264 = strcasestr(fileName “-stream“);

    ServerMediaSession* sms = NULL;
    Boolean const reuseSource = True;

    sms->ad

评论

共有 条评论