Revision 07c11e3e src/gst/engine/codec.h

b/src/gst/engine/codec.h
65 65
    public:
66 66
        Decoder();
67 67
        virtual ~Decoder();
68
        virtual void init () = 0;
69 68
        /// Abstract Factory method that will create depayloaders corresponding to this Decoder's codec type 
70 69
        virtual RtpPay* createDepayloader() const = 0;
71 70
        virtual void adjustJitterBuffer() {}; // buy default, do nothing
......
80 79
        _GstElement *sinkElement() { return decoder_; }
81 80
};
82 81

  
83
/// Abstract child of encoder that wraps audioconvert functionality
84

  
85
class AudioConvertedEncoder : public Encoder
86
{
87
    protected:
88
        AudioConvertedEncoder();
89
        ~AudioConvertedEncoder();
90
        _GstElement *aconv_;
91

  
92
    private:
93
        _GstElement *sinkElement() { return aconv_; }
94
};
95

  
96

  
97
class AudioConvertedDecoder : public Decoder
98
{
99
    protected: 
100
        AudioConvertedDecoder();
101
        ~AudioConvertedDecoder();
102
        _GstElement *aconv_;
103
        void init();
104

  
105
    private:
106
        _GstElement *srcElement() { return aconv_; }
107
};
108 82

  
109 83
class VideoEncoder : public Encoder 
110 84
{
......
270 244
class VorbisDecoder : public Decoder
271 245
{
272 246
    public: 
247
        VorbisDecoder();
273 248
        bool adjustsBufferTime() { return true; }
274 249
        unsigned long long minimumBufferTime();
275 250
    private: 
276
        void init();
277 251
        RtpPay* createDepayloader() const;
278 252
        static const unsigned long long MIN_BUFFER_USEC = 100000;
279 253
};
280 254

  
281 255
/// Encoder that simply performs datatype conversion on raw audio.
282
class RawEncoder : public AudioConvertedEncoder 
256
class RawEncoder : public Encoder
283 257
{
284 258
    public:
285 259
        RawEncoder();
260
        ~RawEncoder();
261
        _GstElement *sinkElement() { return aconv_; }
286 262
        _GstElement *srcElement() { return aconv_; }
287 263

  
288 264
    private:
265
        _GstElement *aconv_;
289 266
        Pay* createPayloader() const;
290 267
};
291 268

  
292 269
/// Decoder that simply performs datatype conversion on raw audio.
293
class RawDecoder : public AudioConvertedDecoder
270
class RawDecoder : public Decoder
294 271
{
295 272
    public:
296 273
        RawDecoder();
274
        ~RawDecoder();
297 275

  
298 276
    private:
299 277
        RtpPay* createDepayloader() const;
278
        _GstElement *aconv_;
300 279

  
301 280
        _GstElement *sinkElement() { return aconv_; }
281
        _GstElement *srcElement() { return aconv_; }
302 282
};
303 283

  
304 284

  
305 285
/// Encoder that encodes raw audio to mpeg.
306
class LameEncoder : public AudioConvertedEncoder 
286
class LameEncoder : public Encoder
307 287
{
308 288
    public:
309 289
        LameEncoder();
310 290
        ~LameEncoder();
311 291

  
312 292
    private:
293
        _GstElement *aconv_;
313 294
        _GstElement *mp3parse_;
314 295
        Pay* createPayloader() const;
296
        _GstElement *sinkElement() { return aconv_; }
315 297
        _GstElement *srcElement() { return mp3parse_; }
316 298
        
317 299
        ///No Copy Constructor
......
322 304

  
323 305
/// Decoder that decodes mpeg to raw audio.
324 306

  
325
class MadDecoder : public AudioConvertedDecoder
307
class MadDecoder : public Decoder
326 308
{
327 309
    public:
328 310
        MadDecoder();
311
        ~MadDecoder();
329 312
    private:
313
        _GstElement *srcElement() { return aconv_; }
314
        _GstElement *aconv_;
330 315
        void init();
331 316
        RtpPay* createDepayloader() const;
332 317
};

Also available in: Unified diff