Update to version 2
This commit is contained in:
@@ -33,8 +33,8 @@ namespace CAPS {
|
||||
//*****************************************************************************
|
||||
|
||||
struct Steim1Frame {
|
||||
u_int32_t nibble_word;
|
||||
u_int32_t sample_word[15];
|
||||
u_int32_t nibbleWord;
|
||||
u_int32_t sampleWord[15];
|
||||
};
|
||||
|
||||
//*****************************************************************************
|
||||
@@ -43,42 +43,44 @@ struct Steim1Frame {
|
||||
|
||||
template<typename T>
|
||||
class Steim1Encoder: public Encoder {
|
||||
private:
|
||||
MSEEDFormat *format;
|
||||
int frame_count;
|
||||
int bp;
|
||||
int fp;
|
||||
int spw;
|
||||
int32_t last_sample;
|
||||
int32_t buf[5];
|
||||
u_int32_t nibble_word;
|
||||
MSEEDEncoderPacket<Steim1Frame> current_packet;
|
||||
|
||||
void update_spw(int bp);
|
||||
void store(int32_t value);
|
||||
void init_packet();
|
||||
void finish_packet();
|
||||
void update_packet();
|
||||
|
||||
MSEEDEncoderPacket<Steim1Frame> get_packet() {
|
||||
return format->get_packet<Steim1Frame>(_clk.get_time(bp),
|
||||
_clk.correction(), _timingQuality);
|
||||
}
|
||||
|
||||
void queue_packet(MSEEDEncoderPacket<Steim1Frame> &pckt);
|
||||
|
||||
int number_of_frames(const MSEEDEncoderPacket<Steim1Frame> &packet) {
|
||||
return (packet.datalen >> 6);
|
||||
}
|
||||
|
||||
public:
|
||||
Steim1Encoder(MSEEDFormat *format, int freqn, int freqd)
|
||||
: Encoder(freqn, freqd), format(format), frame_count(0),
|
||||
bp(0), fp(0), spw(4), last_sample(0), nibble_word(0) {}
|
||||
: Encoder(freqn, freqd), _format(format), _frameCount(0)
|
||||
, _bp(0), _fp(0), _spw(4), _lastSample(0), _nibbleWord(0) {}
|
||||
virtual ~Steim1Encoder();
|
||||
|
||||
virtual void flush();
|
||||
virtual void push(void *value);
|
||||
virtual int type() const { return DE_STEIM1; }
|
||||
|
||||
private:
|
||||
void updateSpw(int bp);
|
||||
void store(int32_t value);
|
||||
void initPacket();
|
||||
void updatePacket();
|
||||
void finishPacket();
|
||||
|
||||
MSEEDEncoderPacket<Steim1Frame> getPacket() {
|
||||
return _format->getPacket<Steim1Frame>(_clk.getTime(_bp),
|
||||
_clk.correction(), _timingQuality);
|
||||
}
|
||||
|
||||
void queuePacket(MSEEDEncoderPacket<Steim1Frame> &pckt);
|
||||
|
||||
int numberOfFrames(const MSEEDEncoderPacket<Steim1Frame> &packet) {
|
||||
return (packet.datalen >> 6);
|
||||
}
|
||||
|
||||
private:
|
||||
MSEEDFormat *_format;
|
||||
int _frameCount;
|
||||
int _bp;
|
||||
int _fp;
|
||||
int _spw;
|
||||
int32_t _lastSample;
|
||||
int32_t _buf[5];
|
||||
u_int32_t _nibbleWord;
|
||||
MSEEDEncoderPacket<Steim1Frame> _currentPacket;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user