CAF state bug fix
[platform/framework/native/media.git] / src / FMedia_VideoStreamInfoImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file                        FMediaVideoStreamInfo.h
20  * @brief                       This is the header file for the %VideoStreamInfo class.
21  *
22  * This header file contains the declarations of the %VideoStreamInfo class.
23  */
24
25 #ifndef _FMEDIA_INTERNAL_VIDEOSTREAMINFO_IMPL_H_
26 #define _FMEDIA_INTERNAL_VIDEOSTREAMINFO_IMPL_H_
27
28 #include <FBaseObject.h>
29 #include <FBaseFloat.h>
30 #include <FMediaTypes.h>
31
32 namespace Tizen { namespace Media
33 {
34
35 class VideoStreamInfo;
36
37 //
38 // @class     VideoStreamInfo
39 // @brief     This class provides methods to get video information.
40 //
41 // This class provides methods to get video stream information, such as codec type, video width or height, bit rate,
42 // and frame rate.
43 //
44
45 class  _VideoStreamInfoImpl
46         : public Tizen::Base::Object
47 {
48 public:
49         //
50         // This is the destructor for this class.
51         //
52         //
53         virtual ~_VideoStreamInfoImpl(void);
54
55 public:
56         //
57         //      Gets the encoding type of a video.
58         //
59         //      @return             The value of the encoding type
60         //
61         CodecType GetCodecType(void) const;
62
63         //
64         //      Gets the width of a video.
65         //
66         //      @return             The value of the video width
67         //
68         int GetWidth(void) const;
69
70         //
71         //      Gets the height of a video.
72         //
73         //      @return             The value of the video height
74         //
75         int GetHeight(void) const;
76
77         //
78         //      Gets the bit rate of a video.
79         //
80         //      @return             The video bit rate in bits per second (bps)
81         //
82         int GetBitRate(void) const;
83
84         //
85         //      Gets the frame rate of a video.
86         //
87         //      @return             The video frame rate
88         //
89         float GetFrameRate(void) const;
90
91         //
92         // @see @ref Tizen::Media::VideoStreamInfo::Equals()
93         //
94         virtual bool Equals(const Object& obj) const;
95
96         //
97         // @see @ref Tizen::Media::VideoStreamInfo::GetHashCode()
98         //
99         virtual int GetHashCode(void) const;
100
101 private:
102         //
103         // Initializes this instance of VideoStreamInfo with the specified parameters.
104         //
105         // @param [in]  codecType       The value of the encoding type
106         // @param [in]  width           The value of the video width
107         // @param [in]  height          The value of the video height
108         // @param [in]  bitrate         The video bit rate in bits per second (bps)
109         // @param [in]  frameRate       The video frame rate
110         //
111         _VideoStreamInfoImpl(CodecType codecType, int width, int height, int bitrate, float frameRate);
112         _VideoStreamInfoImpl(const _VideoStreamInfoImpl& rhs);
113         _VideoStreamInfoImpl& operator =(const _VideoStreamInfoImpl& rhs);
114
115 private:
116         int __width;
117         int __height;
118         int __bitrate;
119         CodecType __codecType;
120         float __frameRate;
121         friend class VideoStreamInfo;
122 };
123
124 }}//Tizen::Media
125
126
127 #endif