OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- File List
- Globals

rfc2435.h
Go to the documentation of this file.
1 /*
2 * RFC2435 JPEG transport for uncompressed video
3 *
4 * Open Phone Abstraction Library
5 *
6 * Copyright (C) 2010 Post Increment
7 *
8 * The contents of this file are subject to the Mozilla Public License
9 * Version 1.0 (the "License"); you may not use this file except in
10 * compliance with the License. You may obtain a copy of the License at
11 * http://www.mozilla.org/MPL/
12 *
13 * Software distributed under the License is distributed on an "AS IS"
14 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
15 * the License for the specific language governing rights and limitations
16 * under the License.
17 *
18 * The Original Code is Open Phone Abstraction Library.
19 *
20 * The Initial Developer of the Original Code is Post Increment
21 *
22 * Contributor(s): ______________________________________.
23 *
24 * $Revision: 25004 $
25 * $Author: rjongbloed $
26 * $Date: 2011-01-04 23:26:51 -0600 (Tue, 04 Jan 2011) $
27 */
28
29 #ifndef OPAL_CODEC_RFC2435_H
30 #define OPAL_CODEC_RFC2435_H
31
32 #ifdef P_USE_PRAGMA
33 #pragma interface
34 #endif
35
36 #include <ptlib.h>
37
38 #include <opal/buildopts.h>
39
40 #if OPAL_RFC2435
41
42 #include <ptclib/random.h>
43
44 #include <opal/transcoders.h>
45 #include <codec/opalplugin.h>
46 #include <codec/vidcodec.h>
47
48 #include <jpeglib.h>
49
50 #define OPAL_RFC2435_JPEG "RFC2435_JPEG"
51 extern const OpalVideoFormat & GetOpalRFC2435_JPEG();
52 #define OpalRFC2435_JPEG GetOpalRFC2435_JPEG()
53
54
56
57 class OpalRFC2435Encoder : public OpalVideoTranscoder
58 {
59 PCLASSINFO(OpalRFC2435Encoder, OpalVideoTranscoder);
60 public:
61 OpalRFC2435Encoder();
62 bool ConvertFrames(const RTP_DataFrame & input, RTP_DataFrameList & output);
63
64 public:
65 struct jpeg_compress_struct m_jpegCompressor;
66 };
67
69
70 class OpalRFC2435Decoder : public OpalVideoTranscoder
71 {
72 PCLASSINFO(OpalRFC2435Decoder, OpalVideoTranscoder);
73 public:
74 OpalRFC2435Decoder();
75
76 bool ConvertFrames(const RTP_DataFrame & input, RTP_DataFrameList & output);
77 };
78
80
81 #define OPAL_REGISTER_RFC2435_JPEG() \
82 OPAL_REGISTER_TRANSCODER(OpalRFC2435Decoder, OpalRFC2435_JPEG, OpalYUV420P); \
83 OPAL_REGISTER_TRANSCODER(OpalRFC2435Encoder, OpalYUV420P, OpalRFC2435_JPEG);
84
86
87 #endif // OPAL_RFC2435
88
89 #endif // OPAL_CODEC_RFC2435_H