#include "liveMedia.hh"#include "BasicUsageEnvironment.hh"#include <stdlib.h>Include dependency graph for testMPEG1or2Splitter.cpp:

Go to the source code of this file.
Data Structures | |
| struct | sessionState_t |
Functions | |
| void | afterPlaying (void *clientData) |
| int | main (int argc, char **argv) |
Variables | |
| char const * | inputFileName = "in.mpg" |
| char const * | outputFileName_video = "out_video.mpg" |
| char const * | outputFileName_audio = "out_audio.mpg" |
| sessionState_t | sessionState |
| UsageEnvironment * | env |
| void afterPlaying | ( | void * | clientData | ) |
Definition at line 98 of file testAMRAudioStreamer.cpp.
00098 { 00099 *env << "...done reading from file\n"; 00100 00101 audioSink->stopPlaying(); 00102 Medium::close(audioSource); 00103 // Note that this also closes the input file that this source read from. 00104 00105 play(); 00106 }
| int main | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 43 of file testMPEG1or2Splitter.cpp.
References afterPlaying(), sessionState_t::audioSink, sessionState_t::audioSource, sessionState_t::baseDemultiplexor, FileSink::createNew(), MPEG1or2Demux::createNew(), ByteStreamFileSource::createNew(), BasicUsageEnvironment::createNew(), BasicTaskScheduler::createNew(), TaskScheduler::doEventLoop(), env, exit, inputFileName, MPEG1or2Demux::newAudioStream(), MPEG1or2Demux::newVideoStream(), NULL, outputFileName_audio, outputFileName_video, sessionState, MediaSink::startPlaying(), UsageEnvironment::taskScheduler(), sessionState_t::videoSink, and sessionState_t::videoSource.
00043 { 00044 // Begin by setting up our usage environment: 00045 TaskScheduler* scheduler = BasicTaskScheduler::createNew(); 00046 env = BasicUsageEnvironment::createNew(*scheduler); 00047 00048 // Open the input file as a 'byte-stream file source': 00049 ByteStreamFileSource* inputSource 00050 = ByteStreamFileSource::createNew(*env, inputFileName); 00051 if (inputSource == NULL) { 00052 *env << "Unable to open file \"" << inputFileName 00053 << "\" as a byte-stream file source\n"; 00054 exit(1); 00055 } 00056 00057 // Create a MPEG demultiplexor that reads from that source. 00058 sessionState.baseDemultiplexor = MPEG1or2Demux::createNew(*env, inputSource); 00059 00060 // Create, from this, our own sources (video and audio): 00061 sessionState.videoSource = sessionState.baseDemultiplexor->newVideoStream(); 00062 sessionState.audioSource = sessionState.baseDemultiplexor->newAudioStream(); 00063 00064 // Create the data sinks (output files): 00065 sessionState.videoSink = FileSink::createNew(*env, outputFileName_video); 00066 sessionState.audioSink = FileSink::createNew(*env, outputFileName_audio); 00067 00068 // Finally, start playing each sink. 00069 *env << "Beginning to read...\n"; 00070 sessionState.videoSink->startPlaying(*sessionState.videoSource, 00071 afterPlaying, sessionState.videoSink); 00072 sessionState.audioSink->startPlaying(*sessionState.audioSource, 00073 afterPlaying, sessionState.audioSink); 00074 00075 env->taskScheduler().doEventLoop(); // does not return 00076 00077 return 0; // only to prevent compiler warning 00078 }
Definition at line 41 of file testMPEG1or2Splitter.cpp.
| char const* inputFileName = "in.mpg" |
Definition at line 25 of file testMPEG1or2Splitter.cpp.
| char const* outputFileName_audio = "out_audio.mpg" |
| char const* outputFileName_video = "out_video.mpg" |
| struct sessionState_t sessionState |
1.5.2