RTP Audio System  2.0.0
decoderinterface.h
Go to the documentation of this file.
00001 // ##########################################################################
00002 // ####                                                                  ####
00003 // ####                      RTP Audio Server Project                    ####
00004 // ####                    ============================                  ####
00005 // ####                                                                  ####
00006 // #### Decoder Interface                                                ####
00007 // ####                                                                  ####
00008 // ####           Copyright (C) 1999-2012 by Thomas Dreibholz            ####
00009 // ####                                                                  ####
00010 // #### Contact:                                                         ####
00011 // ####    EMail: dreibh@iem.uni-due.de                                  ####
00012 // ####    WWW:   https://www.nntb.no/~dreibh/rtpaudio                ####
00013 // ####                                                                  ####
00014 // #### ---------------------------------------------------------------- ####
00015 // ####                                                                  ####
00016 // #### This program is free software: you can redistribute it and/or    ####
00017 // #### modify it under the terms of the GNU General Public License as   ####
00018 // #### published by the Free Software Foundation, either version 3 of   ####
00019 // #### the License, or (at your option) any later version.              ####
00020 // ####                                                                  ####
00021 // #### This program is distributed in the hope that it will be useful,  ####
00022 // #### but WITHOUT ANY WARRANTY; without even the implied warranty of   ####
00023 // #### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    ####
00024 // #### GNU General Public License for more details.                     ####
00025 // ####                                                                  ####
00026 // #### You should have received a copy of the GNU General Public        ####
00027 // #### License along with this program.  If not, see                    ####
00028 // #### <http://www.gnu.org/licenses/>.                                  ####
00029 // ####                                                                  ####
00030 // ##########################################################################
00031 // $Id: decoderinterface.h 1293 2011-12-19 14:59:28Z dreibh $
00032 
00033 
00034 #ifndef DECODERINTERFACE_H
00035 #define DECODERINTERFACE_H
00036 
00037 
00038 #include "tdsystem.h"
00039 #include "sourcestateinfo.h"
00040 #include "mediainfo.h"
00041 
00042 
00050 struct DecoderPacket
00051 {
00055    void* Buffer;
00056 
00060    cardinal Length;
00061 
00065    card16 SequenceNumber;
00066 
00070    card32 TimeStamp;
00071 
00075    card8 PayloadType;
00076 
00080    bool Marker;
00081 
00082 
00086    SourceStateInfo** SSIArray;
00087 
00088 
00095    cardinal Layer;
00096 
00101    cardinal Layers;
00102 };
00103 
00104 
00105 
00113 class DecoderInterface
00114 {
00115    // ====== Decoder type ===================================================
00116    public:
00122    virtual const card16 getTypeID() const = 0;
00123 
00129    virtual const char* getTypeName() const = 0;
00130 
00131 
00132    // ====== Initialization/Clean-up ========================================
00137    virtual void activate() = 0;
00138 
00143    virtual void deactivate() = 0;
00144 
00149    virtual void reset() = 0;
00150 
00151 
00152    // ====== Check next packet ==============================================
00160    virtual bool checkNextPacket(DecoderPacket* packet) = 0;
00161 
00162 
00163    // ====== Decode next packet =============================================
00169    virtual void handleNextPacket(const DecoderPacket* decoderPacket) = 0;
00170 
00171 
00172    // ====== Status functions ===============================================
00178    virtual void getMediaInfo(MediaInfo& mediaInfo) const = 0;
00179 
00186    virtual card8 getErrorCode() const = 0;
00187 
00193    virtual card64 getPosition() const = 0;
00194 
00200    virtual card64 getMaxPosition() const = 0;
00201 };
00202 
00203 
00204 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines