• 大小: 15.52MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-06-13
  • 语言: 其他
  • 标签: live555  rtsp  

资源简介

基于live555实现的rtsp点播客户端,并将实时视频流转存为H264文件

资源截图

代码片段和文件信息

/**********
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 2.1 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-2014 Live Networks Inc.  All rights reserved.
// Basic Hash Table implementation
// Implementation

#include “BasicHashTable.hh“
#include “strDup.hh“

#if defined(__WIN32__) || defined(_WIN32)
#else
#include 
#endif
#include 
#include 

// When there are this many entries per bucket on average rebuild
// the table to increase the number of buckets
#define REBUILD_MULTIPLIER 3

BasicHashTable::BasicHashTable(int keyType)
  : fBuckets(fStaticBuckets) fNumBuckets(SMALL_HASH_TABLE_SIZE)
    fNumEntries(0) fRebuildSize(SMALL_HASH_TABLE_SIZE*REBUILD_MULTIPLIER)
    fDownShift(28) fMask(0x3) fKeyType(keyType) {
  for (unsigned i = 0; i < SMALL_HASH_TABLE_SIZE; ++i) {
    fStaticBuckets[i] = NULL;
  }
}

BasicHashTable::~BasicHashTable() {
  // Free all the entries in the table:
  for (unsigned i = 0; i < fNumBuckets; ++i) {
    TableEntry* entry;
    while ((entry = fBuckets[i]) != NULL) {
      deleteEntry(i entry);
    }
  }

  // Also free the bucket array if it was dynamically allocated:
  if (fBuckets != fStaticBuckets) delete[] fBuckets;
}

void* BasicHashTable::Add(char const* key void* value) {
  void* oldValue;
  unsigned index;
  TableEntry* entry = lookupKey(key index);
  if (entry != NULL) {
    // There‘s already an item with this key
    oldValue = entry->value;
  } else {
    // There‘s no existing entry; create a new one:
    entry = insertNewEntry(index key);
    oldValue = NULL;
  }
  entry->value = value;

  // If the table has become too large rebuild it with more buckets:
  if (fNumEntries >= fRebuildSize) rebuild();

  return oldValue;
}

Boolean BasicHashTable::Remove(char const* key) {
  unsigned index;
  TableEntry* entry = lookupKey(key index);
  if (entry == NULL) return False; // no such entry

  deleteEntry(index entry);

  return True;
}

void* BasicHashTable::Lookup(char const* key) const {
  unsigned index;
  TableEntry* entry = lookupKey(key index);
  if (entry == NULL) return NULL; // no such entry

  return entry->value;
}

unsigned BasicHashTable::numEntries() const {
  return fNumEntries;
}

BasicHashTable::Iterator::Iterator(BasicHashTable const& table)
  : fTable(table) fNextIndex(0) 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件   37158912  2018-10-11 20:05  testRTSPClient\ipch\testrtspclient-77444536\testrtspclient-707ae854.ipch

     文件       7664  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\BasicHashTable.cpp

     文件      10241  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\BasicTaskScheduler.cpp

     文件       7512  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\BasicTaskScheduler0.cpp

     文件       2437  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\BasicUsageEnvironment.cpp

     文件     319972  2014-08-05 21:47  testRTSPClient\live555\BasicUsageEnvironment\BasicUsageEnvironment.lib

     文件       2622  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\BasicUsageEnvironment0.cpp

     文件       6416  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\DelayQueue.cpp

     文件       3475  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\include\BasicHashTable.hh

     文件       3196  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\include\BasicUsageEnvironment.hh

     文件       3712  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\include\BasicUsageEnvironment0.hh

     文件        354  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\include\BasicUsageEnvironment_version.hh

     文件       4650  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\include\DelayQueue.hh

     文件       2195  2014-07-13 20:08  testRTSPClient\live555\BasicUsageEnvironment\include\HandlerSet.hh

     文件       2887  2014-07-13 20:08  testRTSPClient\live555\groupsock\GroupEId.cpp

     文件      19319  2014-07-13 20:08  testRTSPClient\live555\groupsock\Groupsock.cpp

     文件     484968  2014-08-05 21:47  testRTSPClient\live555\groupsock\groupsock.lib

     文件      26173  2014-07-30 11:49  testRTSPClient\live555\groupsock\GroupsockHelper.cpp

     文件       2814  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\GroupEId.hh

     文件       6704  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\Groupsock.hh

     文件       5052  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\GroupsockHelper.hh

     文件        294  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\groupsock_version.hh

     文件       1122  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\IOHandlers.hh

     文件       4619  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\NetAddress.hh

     文件       3226  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\NetCommon.h

     文件       3844  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\NetInterface.hh

     文件       3455  2014-07-13 20:08  testRTSPClient\live555\groupsock\include\TunnelEncaps.hh

     文件      14677  2014-07-13 20:08  testRTSPClient\live555\groupsock\inet.c

     文件       2012  2014-07-13 20:08  testRTSPClient\live555\groupsock\IOHandlers.cpp

     文件       8848  2014-07-13 20:08  testRTSPClient\live555\groupsock\NetAddress.cpp

............此处省略388个文件信息

评论

共有 条评论