#include <liveMedia.hh>#include <BasicUsageEnvironment.hh>Include dependency graph for MPEG2TransportStreamIndexer.cpp:

Go to the source code of this file.
Functions | |
| void | afterPlaying (void *clientData) |
| void | usage () |
| int | main (int argc, char const **argv) |
Variables | |
| UsageEnvironment * | env |
| char const * | programName |
| void afterPlaying | ( | void * | clientData | ) |
| int main | ( | int | argc, | |
| char const ** | argv | |||
| ) |
Definition at line 37 of file MPEG2TransportStreamIndexer.cpp.
References afterPlaying(), FileSink::createNew(), MPEG2IFrameIndexFromTransportStream::createNew(), ByteStreamFileSource::createNew(), BasicUsageEnvironment::createNew(), BasicTaskScheduler::createNew(), TaskScheduler::doEventLoop(), env, exit, inputFileName, NULL, outputFileName, programName, MediaSink::startPlaying(), UsageEnvironment::taskScheduler(), TRANSPORT_PACKET_SIZE, and usage().
00037 { 00038 // Begin by setting up our usage environment: 00039 TaskScheduler* scheduler = BasicTaskScheduler::createNew(); 00040 env = BasicUsageEnvironment::createNew(*scheduler); 00041 00042 // Parse the command line: 00043 programName = argv[0]; 00044 if (argc != 2) usage(); 00045 00046 char const* inputFileName = argv[1]; 00047 // Check whether the input file name ends with ".ts": 00048 int len = strlen(inputFileName); 00049 if (len < 4 || strcmp(&inputFileName[len-3], ".ts") != 0) { 00050 *env << "ERROR: input file name \"" << inputFileName 00051 << "\" does not end with \".ts\"\n"; 00052 usage(); 00053 } 00054 00055 // Open the input file (as a 'byte stream file source'): 00056 FramedSource* input 00057 = ByteStreamFileSource::createNew(*env, inputFileName, TRANSPORT_PACKET_SIZE); 00058 if (input == NULL) { 00059 *env << "Failed to open input file \"" << inputFileName << "\" (does it exist?)\n"; 00060 exit(1); 00061 } 00062 00063 // Create a filter that indexes the input Transport Stream data: 00064 FramedSource* indexer 00065 = MPEG2IFrameIndexFromTransportStream::createNew(*env, input); 00066 00067 // The output file name is the same as the input file name, except with suffix ".tsx": 00068 char* outputFileName = new char[len+2]; // allow for trailing x\0 00069 sprintf(outputFileName, "%sx", inputFileName); 00070 00071 // Open the output file (for writing), as a 'file sink': 00072 MediaSink* output = FileSink::createNew(*env, outputFileName); 00073 if (output == NULL) { 00074 *env << "Failed to open output file \"" << outputFileName << "\"\n"; 00075 exit(1); 00076 } 00077 00078 // Start playing, to generate the output index file: 00079 *env << "Writing index file \"" << outputFileName << "\"..."; 00080 output->startPlaying(*indexer, afterPlaying, NULL); 00081 00082 env->taskScheduler().doEventLoop(); // does not return 00083 00084 return 0; // only to prevent compiler warning 00085 }
| void usage | ( | ) |
Definition at line 31 of file MPEG2TransportStreamIndexer.cpp.
References env, exit, and programName.
Referenced by main().
00031 { 00032 *env << "usage: " << programName << " <transport-stream-file-name>\n"; 00033 *env << "\twhere <transport-stream-file-name> ends with \".ts\"\n"; 00034 exit(1); 00035 }
Definition at line 28 of file MPEG2TransportStreamIndexer.cpp.
Referenced by GroupsockLookupTable::AddNew(), afterPlaying(), announceStream(), AVIFileSink::AVIFileSink(), awaitConfigInfo(), badDataSize(), BasicUDPSource::BasicUDPSource(), checkForAuxSDPLine(), checkForPacketArrival(), checkInterPacketGaps(), chooseRandomIPv4SSMAddress(), Medium::close(), continueAfterDESCRIBE(), continueAfterOPTIONS(), continueAfterPLAY(), continueAfterSETUP(), createClient(), DummySink::createNew(), ourRTSPClient::createNew(), DynamicRTSPServer::createNew(), WAVAudioFileSource::createNew(), WAVAudioFileServerMediaSubsession::createNew(), VP8VideoRTPSource::createNew(), VP8VideoRTPSink::createNew(), VorbisAudioRTPSource::createNew(), VorbisAudioRTPSink::createNew(), EndianSwap24::createNew(), EndianSwap16::createNew(), HostFromNetworkOrder16::createNew(), NetworkFromHostOrder16::createNew(), PCMFromuLawAudioSource::createNew(), uLawFromPCMAudioSource::createNew(), TCPStreamSink::createNew(), T140TextRTPSink::createNew(), StreamReplicator::createNew(), SIPClient::createNew(), SimpleRTPSource::createNew(), SimpleRTPSink::createNew(), ServerMediaSession::createNew(), RTSPServerSupportingHTTPStreaming::createNew(), RTSPServer::createNew(), RTSPClient::createNew(), RTCPInstance::createNew(), QuickTimeGenericRTPSource::createNew(), QuickTimeFileSink::createNew(), QCELPDeinterleaver::createNew(), RawQCELPRTPSource::createNew(), QCELPAudioRTPSource::createNew(), ProxyServerMediaSession::createNew(), MPEG4VideoStreamFramer::createNew(), MPEG4VideoStreamDiscreteFramer::createNew(), MPEG4VideoFileServerMediaSubsession::createNew(), MPEG4LATMAudioRTPSource::createNew(), MPEG4GenericRTPSource::createNew(), MPEG4GenericRTPSink::createNew(), MPEG4ESVideoRTPSource::createNew(), MPEG4ESVideoRTPSink::createNew(), MPEG2TransportUDPServerMediaSubsession::createNew(), MPEG2TransportStreamTrickModeFilter::createNew(), MPEG2TransportStreamIndexFile::createNew(), MPEG2TransportStreamFromPESSource::createNew(), MPEG2TransportStreamFromESSource::createNew(), MPEG2TransportStreamFramer::createNew(), MPEG2TransportFileServerMediaSubsession::createNew(), MPEG2IFrameIndexFromTransportStream::createNew(), MPEG1or2VideoStreamFramer::createNew(), MPEG1or2VideoStreamDiscreteFramer::createNew(), MPEG1or2VideoRTPSource::createNew(), MPEG1or2VideoRTPSink::createNew(), MPEG1or2VideoFileServerMediaSubsession::createNew(), MPEG1or2FileServerDemux::createNew(), MPEG1or2Demux::createNew(), MPEG1or2AudioStreamFramer::createNew(), MPEG1or2AudioRTPSource::createNew(), MPEG1or2AudioRTPSink::createNew(), MP3Transcoder::createNew(), MP3FileSource::createNew(), MP3AudioFileServerMediaSubsession::createNew(), MP3ADUTranscoder::createNew(), MP3ADURTPSource::createNew(), MP3ADURTPSink::createNew(), MP3ADUdeinterleaver::createNew(), MP3ADUinterleaver::createNew(), MP3FromADUSource::createNew(), ADUFromMP3Source::createNew(), MediaSession::createNew(), MatroskaFileServerDemux::createNew(), MatroskaFile::createNew(), JPEGVideoRTPSource::createNew(), JPEGVideoRTPSink::createNew(), H264VideoStreamFramer::createNew(), H264VideoStreamDiscreteFramer::createNew(), H264VideoRTPSource::createNew(), H264VideoRTPSink::createNew(), H264VideoFileSink::createNew(), H264VideoFileServerMediaSubsession::createNew(), H263plusVideoStreamFramer::createNew(), H263plusVideoRTPSource::createNew(), H263plusVideoRTPSink::createNew(), H263plusVideoFileServerMediaSubsession::createNew(), H261VideoRTPSource::createNew(), GSMAudioRTPSink::createNew(), FileSink::createNew(), DVVideoStreamFramer::createNew(), DVVideoRTPSource::createNew(), DVVideoRTPSink::createNew(), DVVideoFileServerMediaSubsession::createNew(), DeviceSource::createNew(), DarwinInjector::createNew(), ByteStreamMultiFileSource::createNew(), ByteStreamMemoryBufferSource::createNew(), ByteStreamFileSource::createNew(), BasicUDPSource::createNew(), BasicUDPSink::createNew(), AVIFileSink::createNew(), AMRDeinterleaver::createNew(), RawAMRRTPSource::createNew(), AMRAudioRTPSource::createNew(), AMRAudioRTPSink::createNew(), AMRAudioFileSource::createNew(), AMRAudioFileSink::createNew(), AMRAudioFileServerMediaSubsession::createNew(), ADTSAudioFileSource::createNew(), ADTSAudioFileServerMediaSubsession::createNew(), AC3AudioStreamFramer::createNew(), AC3AudioRTPSource::createNew(), AC3AudioRTPSink::createNew(), AC3AudioFileServerMediaSubsession::createNew(), createNewSMS(), deregisterSocket(), SocketLookupTable::Fetch(), GroupsockLookupTable::Fetch(), getBufferSize(), MP3ADUinterleaverBase::getInputSource(), getMPEG1or2TimeCode(), _Tables::getOurTables(), getReceiveBufferSize(), getSendBufferSize(), getSourcePort(), groupsockPriv(), increaseBufferTo(), increaseReceiveBufferTo(), increaseSendBufferTo(), GroupsockLookupTable::Lookup(), ServerMediaSession::lookupByName(), RTSPServer::lookupByName(), RTSPClient::lookupByName(), RTPSource::lookupByName(), RTPSink::lookupByName(), RTCPInstance::lookupByName(), MediaSource::lookupByName(), MediaSink::lookupByName(), MediaSession::lookupByName(), Medium::lookupByName(), FramedSource::lookupByName(), DarwinInjector::lookupByName(), lookupSocketDescriptor(), main(), MatroskaFileServerDemux::MatroskaFileServerDemux(), Medium::Medium(), MPEG1or2FileServerDemux::MPEG1or2FileServerDemux(), MPEG1or2ProgramStreamFileDuration(), MPEG2TransportStreamIndexFile::MPEG2TransportStreamIndexFile(), MPEG4GenericRTPSink::MPEG4GenericRTPSink(), MultiFramedRTPSource::MultiFramedRTPSource(), OpenInputFile(), OpenOutputFile(), openURL(), operator<<(), ourIPAddress(), MediaLookupTable::ourMedia(), RTSPClient::parseRTSPURL(), SIPClient::parseSIPURL(), play(), printQOSData(), QuickTimeFileSink::QuickTimeFileSink(), readSocket(), reclaimGroupsockPriv(), removeSocketDescription(), RTCPInstance::RTCPInstance(), RTSPServer::RTSPServer(), scheduleNextQOSMeasurement(), sessionAfterPlaying(), setBufferTo(), setReceiveBufferTo(), setSendBufferTo(), setupDatagramSocket(), setupNextSubsession(), RTSPServer::setUpOurSocket(), setupStreams(), setupStreamSocket(), shutdown(), shutdownStream(), signalHandlerShutdown(), SIPClient::SIPClient(), socketErr(), socketHashTable(), socketJoinGroup(), socketJoinGroupSSM(), startReplicaFileSink(), startReplicaUDPSink(), subsessionByeHandler(), ClientTrickPlayState::updateStateOnScaleChange(), usage(), waitUntilSocketIsReadable(), WAVAudioFileSource::WAVAudioFileSource(), writeSocket(), and StreamClientState::~StreamClientState().
| char const* programName |
1.5.2