OOOggCommentDump.cpp

Go to the documentation of this file.
00001 //===========================================================================
00002 //Copyright (C) 2004 Zentaro Kavanagh
00003 //
00004 //Redistribution and use in source and binary forms, with or without
00005 //modification, are permitted provided that the following conditions
00006 //are met:
00007 //
00008 //- Redistributions of source code must retain the above copyright
00009 //  notice, this list of conditions and the following disclaimer.
00010 //
00011 //- Redistributions in binary form must reproduce the above copyright
00012 //  notice, this list of conditions and the following disclaimer in the
00013 //  documentation and/or other materials provided with the distribution.
00014 //
00015 //- Neither the name of Zentaro Kavanagh nor the names of contributors 
00016 //  may be used to endorse or promote products derived from this software 
00017 //  without specific prior written permission.
00018 //
00019 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00020 //``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00021 //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00022 //PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
00023 //CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00024 //EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00025 //PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00026 //PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00027 //LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00028 //NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00029 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00030 //===========================================================================
00031 
00032 
00033 // OOOggCommentDump.cpp : Defines the entry point for the console application.
00034 //
00035 
00036 #include "stdafx.h"
00037 #include <libOOOgg/libOOOgg.h>
00038 #include <libOOOgg/dllstuff.h>
00039 #include <VorbisComments.h>
00040 #include "FileComments.h"
00041 #include "StreamCommentInfo.h"
00042 
00043 #include <iostream>
00044 
00045 
00046 #include <fstream>
00047 
00049 //unsigned long bytePos;
00050 //VorbisComments gComments;
00051 //
00052 //bool pageCB(OggPage* inOggPage) {
00053 //
00054 //      for (unsigned long i = 0; i < inOggPage->numPackets(); i++) {
00055 //              OggPacket* locPacket = NULL;
00056 //              locPacket = inOggPage->getPacket(i);
00057 //              if (strncmp((const char*)locPacket->packetData(), "\003vorbis", 7) == 0) {
00058 //                      //Comment Packet
00059 //
00060 //                      bool locIsOK = gComments.parseOggPacket(locPacket, 7);
00061 //                      cout<<"Vorbis Comments"<<endl;
00062 //                      cout<<gComments.toString();
00063 //              } else if ((strncmp((char*)locPacket->packetData(), "\201theora", 7)) == 0) {
00064 //                      bool locIsOK = gComments.parseOggPacket(locPacket, 7);
00065 //                      cout<<"Theora Comments"<<endl;
00066 //                      cout<<gComments.toString();
00067 //
00068 //              }
00069 //      }
00070 //      
00071 //      return true;
00072 //}
00073 
00074 #ifdef WIN32
00075 int __cdecl _tmain(int argc, _TCHAR* argv[])
00076 #else
00077 int main(int argc, char * argv[])
00078 #endif
00079 {
00080 
00081 
00082         //This program just dumps the pages out of a file in ogg format.
00083         // Currently does not error checking. Check your command line carefully !
00084         // USAGE :: OOOggCommentDump <OggFile>
00085         //
00086         
00087 
00088         
00089         if (argc < 2) {
00090                 cout<<"Usage : OOOggCommentDump <filename>"<<endl;
00091         } else {
00092 
00093                 FileComments locFileComments;
00094                 StreamCommentInfo* locStreamInfo = NULL;
00095                 locFileComments.loadFile(argv[1]);
00096                 for (unsigned long i = 0; i < locFileComments.streamCount(); i++) {
00097                         locStreamInfo = locFileComments.getStreamComment(i);
00098 
00099                         cout<<"Stream "<<locStreamInfo->majorStreamNo()<<":"<<locStreamInfo->minorStreamNo()<<endl;
00100                         cout<<"Starts "<<locStreamInfo->pageStart()<<endl;
00101                         cout<<locStreamInfo->comments()->toString()<<endl<<endl;
00102 
00103                 }
00104         }
00105 
00106 
00107         return 0;
00108 }

Generated on Tue Feb 15 14:54:23 2005 for oggdsf by  doxygen 1.3.9