#include "AVIFileSink.hh"#include "InputFile.hh"#include "OutputFile.hh"#include "GroupsockHelper.hh"Include dependency graph for AVIFileSink.cpp:

Go to the source code of this file.
Data Structures | |
| class | SubsessionBuffer |
| class | AVISubsessionIOState |
Defines | |
| #define | fourChar(x, y, z, w) ( ((w)<<24)|((z)<<16)|((y)<<8)|(x) ) |
| #define | addFileHeader(tag, name) |
| #define | addFileHeader1(name) |
| #define | addFileHeaderEnd |
| #define | AVIF_HASINDEX 0x00000010 |
| #define | AVIF_MUSTUSEINDEX 0x00000020 |
| #define | AVIF_ISINTERLEAVED 0x00000100 |
| #define | AVIF_TRUSTCKTYPE 0x00000800 |
| #define | AVIF_WASCAPTUREFILE 0x00010000 |
| #define | AVIF_COPYRIGHTED 0x00020000 |
| #define | AVI_MASTER_INDEX_SIZE 256 |
Functions | |
| addFileHeader (RIFF, AVI) | |
| addFileHeader (LIST, hdrl) | |
| while ((subsession=iter.next())!=NULL) | |
| iter | reset () |
| addFileHeader1 (avih) | |
| addFileHeader (LIST, strl) | |
| addFileHeader1 (strh) | |
| if (fCurrentIOState->fIsVideo) | |
| addFileHeader1 (strf) | |
| addFileHeader1 (JUNK) | |
| if (fJunkNumber==0) | |
| addFileHeader (LIST, movi) | |
Variables | |
| size = addFileHeader_hdrl() | |
| size = addFileHeader_movi() | |
| fRIFFSizePosition = headerSizePosn | |
| fRIFFSizeValue = size-ignoredSize | |
| addFileHeaderEnd | |
| size = addFileHeader_avih() | |
| unsigned | subsessionCount = 0 |
| MediaSubsessionIterator | iter (fInputSession) |
| MediaSubsession * | subsession |
| fJunkNumber | |
| size = addFileHeader_JUNK() | |
| addFileHeaderEnd | |
| unsigned | usecPerFrame = fMovieFPS == 0 ? 0 : 1000000/fMovieFPS |
| size = addWord(usecPerFrame) | |
| fAVIHMaxBytesPerSecondPosition = (unsigned)TellFile64(fOutFid) | |
| size = addWord(0) | |
| size = addWord(0) | |
| size = addWord(AVIF_TRUSTCKTYPE|AVIF_HASINDEX|AVIF_ISINTERLEAVED) | |
| fAVIHFrameCountPosition = (unsigned)TellFile64(fOutFid) | |
| size = addWord(0) | |
| size = addWord(0) | |
| size = addWord(fNumSubsessions) | |
| size = addWord(fBufferSize) | |
| size = addWord(fMovieWidth) | |
| size = addWord(fMovieHeight) | |
| size = addZeroWords(4) | |
| addFileHeaderEnd | |
| size = addFileHeader_strh() | |
| size = addFileHeader_strf() | |
| fJunkNumber = 0 | |
| size = addFileHeader_JUNK() | |
| addFileHeaderEnd | |
| size | |
| size = addWord(fCurrentIOState->fAVICodecHandlerType) | |
| size = addWord(0) | |
| size = addWord(0) | |
| size = addWord(0) | |
| size = addWord(fCurrentIOState->fAVIScale) | |
| size = addWord(fCurrentIOState->fAVIRate) | |
| size = addWord(0) | |
| fCurrentIOState | fSTRHFrameCountPosition = (unsigned)TellFile64(fOutFid) |
| size = addWord(0) | |
| size = addWord(fBufferSize) | |
| size = addWord((unsigned)-1) | |
| size = addWord(fCurrentIOState->fAVISize) | |
| size = addWord(0) | |
| addFileHeaderEnd | |
| fMoviSizePosition = headerSizePosn | |
| fMoviSizeValue = size-ignoredSize | |
| addFileHeaderEnd | |
| #define addFileHeader | ( | tag, | |||
| name | ) |
Value:
unsigned AVIFileSink::addFileHeader_##name() { \ add4ByteString("" #tag ""); \ unsigned headerSizePosn = (unsigned)TellFile64(fOutFid); addWord(0); \ add4ByteString("" #name ""); \ unsigned ignoredSize = 8;/*don't include size of tag or size fields*/ \ unsigned size = 12
Definition at line 538 of file AVIFileSink.cpp.
| #define addFileHeader1 | ( | name | ) |
Value:
unsigned AVIFileSink::addFileHeader_##name() { \ add4ByteString("" #name ""); \ unsigned headerSizePosn = (unsigned)TellFile64(fOutFid); addWord(0); \ unsigned ignoredSize = 8;/*don't include size of name or size fields*/ \ unsigned size = 8
Definition at line 546 of file AVIFileSink.cpp.
| #define addFileHeaderEnd |
Value:
Definition at line 553 of file AVIFileSink.cpp.
| #define AVI_MASTER_INDEX_SIZE 256 |
| #define AVIF_COPYRIGHTED 0x00020000 |
Definition at line 601 of file AVIFileSink.cpp.
| #define AVIF_HASINDEX 0x00000010 |
Definition at line 596 of file AVIFileSink.cpp.
| #define AVIF_ISINTERLEAVED 0x00000100 |
Definition at line 598 of file AVIFileSink.cpp.
| #define AVIF_MUSTUSEINDEX 0x00000020 |
Definition at line 597 of file AVIFileSink.cpp.
| #define AVIF_TRUSTCKTYPE 0x00000800 |
Definition at line 599 of file AVIFileSink.cpp.
| #define AVIF_WASCAPTUREFILE 0x00010000 |
Definition at line 600 of file AVIFileSink.cpp.
| #define fourChar | ( | x, | |||
| y, | |||||
| z, | |||||
| w | ) | ( ((w)<<24)|((z)<<16)|((y)<<8)|(x) ) |
Definition at line 26 of file AVIFileSink.cpp.
Referenced by QuickTimeFileSink::addAtom_hdlr2(), SubsessionIOState::afterGettingFrame(), AVISubsessionIOState::setAVIstate(), SubsessionIOState::setQTstate(), and SubsessionIOState::useFrame().
| addFileHeader | ( | LIST | , | |
| movi | ||||
| ) |
| addFileHeader | ( | LIST | , | |
| strl | ||||
| ) |
| addFileHeader | ( | LIST | , | |
| hdrl | ||||
| ) |
| addFileHeader | ( | RIFF | , | |
| AVI | ||||
| ) |
| addFileHeader1 | ( | JUNK | ) |
| addFileHeader1 | ( | strf | ) |
| addFileHeader1 | ( | strh | ) |
| addFileHeader1 | ( | avih | ) |
| if | ( | fJunkNumber | = = 0 |
) |
Definition at line 693 of file AVIFileSink.cpp.
References AVIFileSink::addHalfWord(), AVIFileSink::addWord(), AVIFileSink::addZeroWords(), AVI_MASTER_INDEX_SIZE, AVISubsessionIOState::fAVISubsessionTag, AVIFileSink::fCurrentIOState, and size.
00693 { 00694 size += addHalfWord(4); // wLongsPerEntry 00695 size += addHalfWord(0); // bIndexSubType + bIndexType 00696 size += addWord(0); // nEntriesInUse ##### 00697 size += addWord(fCurrentIOState->fAVISubsessionTag); // dwChunkId 00698 size += addZeroWords(2); // dwReserved 00699 size += addZeroWords(AVI_MASTER_INDEX_SIZE*4); 00700 } else {
| else if | ( | fCurrentIOState-> | fIsVideo | ) |
Definition at line 644 of file AVIFileSink.cpp.
References AVIFileSink::addHalfWord(), AVIFileSink::fMovieHeight, AVIFileSink::fMovieWidth, and size.
Referenced by DummySink::afterGettingFrame(), MPEG4VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG1or2VideoStreamDiscreteFramer::afterGettingFrame1(), MPEG1or2Demux::handleClosure(), MP3HuffmanDecode(), RTPReceptionStats::noteIncomingPacket(), and SubsessionIOState::useFrameForHinting().
00644 { 00645 size += addHalfWord(fMovieWidth); 00646 size += addHalfWord(fMovieHeight); 00647 } else {
| iter reset | ( | ) |
| while | ( | (subsession=iter.next())! | = NULL |
) |
Definition at line 573 of file AVIFileSink.cpp.
References AVIFileSink::fCurrentIOState, MediaSubsession::mediumName(), MediaSubsession::miscPtr, NULL, AVISubsessionIOState::setAVIstate(), size, subsession, and subsessionCount.
Referenced by NetAddressList::NetAddressList().
00573 { 00574 fCurrentIOState = (AVISubsessionIOState*)(subsession->miscPtr); 00575 if (fCurrentIOState == NULL) continue; 00576 if (strcmp(subsession->mediumName(), "video") != 0) continue; 00577 00578 fCurrentIOState->setAVIstate(subsessionCount++); 00579 size += addFileHeader_strl(); 00580 }
Definition at line 712 of file AVIFileSink.cpp.
Definition at line 688 of file AVIFileSink.cpp.
Definition at line 625 of file AVIFileSink.cpp.
Definition at line 618 of file AVIFileSink.cpp.
Definition at line 594 of file AVIFileSink.cpp.
Definition at line 563 of file AVIFileSink.cpp.
| fAVIHFrameCountPosition = (unsigned)TellFile64(fOutFid) |
Definition at line 610 of file AVIFileSink.cpp.
| fAVIHMaxBytesPerSecondPosition = (unsigned)TellFile64(fOutFid) |
Definition at line 606 of file AVIFileSink.cpp.
| fJunkNumber = 0 |
Definition at line 623 of file AVIFileSink.cpp.
Definition at line 592 of file AVIFileSink.cpp.
| fMoviSizePosition = headerSizePosn |
Definition at line 710 of file AVIFileSink.cpp.
| fMoviSizeValue = size-ignoredSize |
Definition at line 711 of file AVIFileSink.cpp.
| fRIFFSizePosition = headerSizePosn |
Definition at line 561 of file AVIFileSink.cpp.
| fRIFFSizeValue = size-ignoredSize |
Definition at line 562 of file AVIFileSink.cpp.
| fCurrentIOState fSTRHFrameCountPosition = (unsigned)TellFile64(fOutFid) |
Definition at line 638 of file AVIFileSink.cpp.
| MediaSubsessionIterator iter(fInputSession) |
Referenced by AVIFileSink::AVIFileSink(), beginQOSMeasurement(), checkForPacketArrival(), checkInterPacketGaps(), closeMediaSinks(), QuickTimeFileSink::completeOutputFile(), AVIFileSink::completeOutputFile(), continueAfterDESCRIBE(), QuickTimeFileSink::continuePlaying(), AVIFileSink::continuePlaying(), RTSPServer::RTSPClientSession::handleCmd_SETUP(), RTSPServer::RTSPClientSession::handleCmd_withinSession(), MatroskaDemux::handleEndOfFile(), MatroskaFile::handleEndOfTrackHeaderParsing(), RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handlePLAYResponse(), MediaSession::initiateByMediaType(), HandlerSet::lookupHandler(), QuickTimeFileSink::onSourceClosure1(), AVIFileSink::onSourceClosure1(), ourIPAddress(), Groupsock::outputToAllMembersExcept(), printQOSData(), QuickTimeFileSink::QuickTimeFileSink(), RTCPMemberDatabase::reapOldMembers(), HashTable::RemoveNext(), RTPReceptionStatsDB::reset(), DarwinInjector::setDestination(), setupStreams(), shutdownStream(), BasicTaskScheduler::SingleStep(), subsessionAfterPlaying(), AVIFileSink::~AVIFileSink(), QuickTimeFileSink::~QuickTimeFileSink(), and RTCPInstance::~RTCPInstance().
| size = addWord(0) |
Definition at line 643 of file AVIFileSink.cpp.
| size = addWord(fCurrentIOState->fAVISize) |
Definition at line 642 of file AVIFileSink.cpp.
| size = addWord((unsigned)-1) |
Definition at line 641 of file AVIFileSink.cpp.
| size = addWord(fBufferSize) |
Definition at line 640 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 639 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 637 of file AVIFileSink.cpp.
| size = addWord(fCurrentIOState->fAVIRate) |
Definition at line 636 of file AVIFileSink.cpp.
| size = addWord(fCurrentIOState->fAVIScale) |
Definition at line 635 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 634 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 633 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 632 of file AVIFileSink.cpp.
| size = addWord(fCurrentIOState->fAVICodecHandlerType) |
Definition at line 631 of file AVIFileSink.cpp.
Initial value:
add4ByteString(fCurrentIOState->fIsVideo ? "vids" : fCurrentIOState->fIsAudio ? "auds" : "????")
Definition at line 628 of file AVIFileSink.cpp.
| size = addFileHeader_JUNK() |
Definition at line 624 of file AVIFileSink.cpp.
| size = addFileHeader_strf() |
Definition at line 622 of file AVIFileSink.cpp.
| size = addFileHeader_strh() |
Definition at line 621 of file AVIFileSink.cpp.
| size = addZeroWords(4) |
Definition at line 617 of file AVIFileSink.cpp.
| size = addWord(fMovieHeight) |
Definition at line 616 of file AVIFileSink.cpp.
| size = addWord(fMovieWidth) |
Definition at line 615 of file AVIFileSink.cpp.
| size = addWord(fBufferSize) |
Definition at line 614 of file AVIFileSink.cpp.
| size = addWord(fNumSubsessions) |
Definition at line 613 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 612 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 611 of file AVIFileSink.cpp.
| size = addWord(AVIF_TRUSTCKTYPE|AVIF_HASINDEX|AVIF_ISINTERLEAVED) |
Definition at line 609 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 608 of file AVIFileSink.cpp.
| size = addWord(0) |
Definition at line 607 of file AVIFileSink.cpp.
| size = addWord(usecPerFrame) |
Definition at line 605 of file AVIFileSink.cpp.
| size = addFileHeader_JUNK() |
Definition at line 593 of file AVIFileSink.cpp.
| size = addFileHeader_avih() |
Definition at line 566 of file AVIFileSink.cpp.
| size = addFileHeader_movi() |
Definition at line 560 of file AVIFileSink.cpp.
| size = addFileHeader_hdrl() |
Definition at line 559 of file AVIFileSink.cpp.
Referenced by QuickTimeFileSink::addArbitraryString(), QuickTimeFileSink::addAtom_hdlr2(), MP3FrameParams::computeSideInfoSize(), if(), MatroskaFileParser::lookForNextBlock(), MatroskaFileParser::lookForNextTrack(), MatroskaFileParser::parseCues(), MatroskaFileParser::parseEBMLIdAndSize(), MatroskaFileParser::parseEBMLVal_binary(), MatroskaFileParser::parseEBMLVal_float(), MatroskaFileParser::parseEBMLVal_string(), MatroskaFileParser::parseEBMLVal_unsigned(), MatroskaFileParser::parseEBMLVal_unsigned64(), MatroskaFileParser::parseStartOfFile(), MatroskaFileParser::parseTrack(), MPEG4GenericRTPSource::processSpecialHeader(), MPEG1or2DemuxedServerMediaSubsession::seekStreamSource(), MatroskaFileParser::skipHeader(), SocketDescriptor::tcpReadHandler1(), ClientTrickPlayState::updateStateOnPlayChange(), and while().
Definition at line 572 of file AVIFileSink.cpp.
Referenced by QuickTimeFileSink::addAtom_hdlr2(), ServerMediaSession::addSubsession(), AVIFileSink::AVIFileSink(), AVISubsessionIOState::AVISubsessionIOState(), beginQOSMeasurement(), checkForPacketArrival(), checkInterPacketGaps(), closeMediaSinks(), QuickTimeFileSink::completeOutputFile(), AVIFileSink::completeOutputFile(), RTSPClient::constructSubsessionURL(), continueAfterDESCRIBE(), continueAfterSETUP(), QuickTimeFileSink::continuePlaying(), AVIFileSink::continuePlaying(), DummySink::createNew(), ServerMediaSession::duration(), ServerMediaSession::generateSDPDescription(), RTSPServer::RTSPClientSession::handleCmd_PAUSE(), RTSPServer::RTSPClientSession::handleCmd_PLAY(), RTSPServer::RTSPClientSession::handleCmd_SETUP(), RTSPServer::RTSPClientSession::handleCmd_withinSession(), RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming::handleHTTPCmd_StreamingGET(), RTSPClient::handlePLAYResponse(), RTSPClient::handleSETUPResponse(), MediaSession::initializeWithSDP(), MediaSession::initiateByMediaType(), QuickTimeFileSink::onRTCPBye(), AVIFileSink::onRTCPBye(), QuickTimeFileSink::onSourceClosure1(), AVIFileSink::onSourceClosure1(), operator<<(), printQOSData(), QuickTimeFileSink::QuickTimeFileSink(), RTSPServer::RTSPClientSession::reclaimStreamStates(), RTSPClient::sendPauseCommand(), RTSPClient::sendPlayCommand(), RTSPClient::sendRecordCommand(), RTSPClient::sendRequest(), RTSPClient::sendSetupCommand(), RTSPClient::sendTeardownCommand(), DarwinInjector::setDestination(), setupStreams(), setupSubsession(), shutdownStream(), subsessionAfterPlaying(), subsessionByeHandler(), SubsessionIOState::SubsessionIOState(), ServerMediaSession::testScaleFactor(), while(), AVIFileSink::~AVIFileSink(), and QuickTimeFileSink::~QuickTimeFileSink().
| unsigned subsessionCount = 0 |
| unsigned usecPerFrame = fMovieFPS == 0 ? 0 : 1000000/fMovieFPS |
Definition at line 604 of file AVIFileSink.cpp.
1.5.2