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