svvitch
digital signage player
|
00001 #pragma once 00002 00003 #include "FFBaseDecoder.h" 00004 00005 00010 class FFAudioDecoder: public FFBaseDecoder 00011 { 00012 friend class FFMovieContent; 00013 private: 00014 static const int BUFFER_SIZE = AVCODEC_MAX_AUDIO_FRAME_SIZE * 3; 00015 00016 LPDIRECTSOUNDBUFFER _buffer; 00017 DWORD _bufferOffset; 00018 DWORD _bufferSize; 00019 00020 bool _running; 00021 00022 uint8_t* _data; 00023 int _dataOffset; 00024 int _len; 00025 00026 DWORD _playCursor; 00027 DWORD _writeCursor; 00028 00029 00030 FFAudioDecoder(Renderer& renderer, AVFormatContext* ic, const int streamNo); 00031 00032 virtual ‾FFAudioDecoder(); 00033 00034 00035 virtual bool isReady(); 00036 00037 void start(); 00038 00039 const UINT bufferedFrames(); 00040 00041 void decode(); 00042 00043 void writeData(); 00044 00045 void finishedPacket(); 00046 00047 bool playing(); 00048 00049 void play(); 00050 00051 void stop(); 00052 };