OPAL  Version 3.14.3
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: 29536 $
25  * $Author: rjongbloed $
26  * $Date: 2013-04-19 18:55:15 +1000 (Fri, 19 Apr 2013) $
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_config.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