Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.StreamRecorder / StreamRecorder / StreamRecorderEnums.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 namespace Tizen.Multimedia
18 {
19     /// <summary>
20     /// Enumeration for Audio Codec.
21     /// </summary>
22     public enum StreamRecorderAudioCodec
23     {
24         /// <summary>
25         /// AMR codec.
26         /// </summary>
27         Amr = 0,
28         /// <summary>
29         /// AAC codec.
30         /// </summary>
31         Aac,
32         /// <summary>
33         /// PCM codec.
34         /// </summary>
35         Pcm
36     }
37
38     /// <summary>
39     /// Enumeration for the file container format.
40     /// </summary>
41     public enum StreamRecorderFileFormat
42     {
43         /// <summary>
44         /// 3GP file format.
45         /// </summary>
46         ThreeGp,
47         /// <summary>
48         /// MP4 file format.
49         /// </summary>
50         Mp4,
51         /// <summary>
52         /// AMR file format.
53         /// </summary>
54         Amr,
55         /// <summary>
56         /// ADTS file format.
57         /// </summary>
58         Adts,
59         /// <summary>
60         /// WAV file format.
61         /// </summary>
62         Wav
63     }
64
65     /// <summary>
66     /// Enumeration for the recorder notify type.
67     /// </summary>
68     public enum StreamRecorderNotify
69     {
70         /// <summary>
71         /// None.
72         /// </summary>
73         None = 0,
74         /// <summary>
75         /// State changed noti.
76         /// </summary>
77         StateChanged
78     }
79
80     /// <summary>
81     /// Enumeration for the recording limit type.
82     /// </summary>
83     public enum StreamRecordingLimitType
84     {
85         /// <summary>
86         /// Time limit in seconds of recording file
87         /// </summary>
88         Time,
89         /// <summary>
90         /// Size limit in KB(KiloBytes) of recording file.
91         /// </summary>
92         Size
93     }
94
95     /// <summary>
96     /// Enumeration for stream recorder states.
97     /// </summary>
98     public enum StreamRecorderState
99     {
100         /// <summary>
101         /// Stream recorder is not created.
102         /// </summary>
103         None,
104         /// <summary>
105         /// Stream recorder is created, but not prepared.
106         /// </summary>
107         Created,
108         /// <summary>
109         /// Stream recorder is ready to record.
110         /// </summary>
111         Prepared,
112         /// <summary>
113         /// Stream recorder is recording pushed packet.
114         /// </summary>
115         Recording,
116         /// <summary>
117         /// Stream recorder is paused.
118         /// </summary>
119         Paused
120     }
121
122     /// <summary>
123     /// Enumeration for video codec.
124     /// </summary>
125     public enum StreamRecorderVideoCodec
126     {
127         /// <summary>
128         /// H263 codec.
129         /// </summary>
130         H263,
131         /// <summary>
132         /// MPEG4 codec.
133         /// </summary>
134         Mpeg4
135     }
136
137     /// <summary>
138     /// Enumeration for source type.
139     /// </summary>
140     public enum StreamRecorderSourceType
141     {
142         /// <summary>
143         /// Video source
144         /// </summary>
145         Video,
146         /// <summary>
147         /// Audio source
148         /// </summary>
149         Audio,
150         /// <summary>
151         /// Audio/Video both
152         /// </summary>
153         VideoAudio
154     }
155
156     /// <summary>
157     /// Enumeration for video source format.
158     /// </summary>
159     public enum StreamRecorderVideoSourceFormat
160     {
161         /// <summary>
162         /// Nv12 Video source format
163         /// </summary>
164         Nv12,
165         /// <summary>
166         /// Nv21 video source format
167         /// </summary>
168         Nv21,
169         /// <summary>
170         /// I420 video source format
171         /// </summary>
172         I420
173     }
174
175     /// <summary>
176     /// Enumeration for stream recorder failure error.
177     /// </summary>
178     public enum StreamRecorderErrorCode
179     {
180         /// <summary>
181         /// Sucessful.
182         /// </summary>
183         None = StreamRecorderError.None,
184         /// <summary>
185         /// Internal error.
186         /// </summary>
187         InvalidParameter = StreamRecorderError.InvalidParameter,
188         /// <summary>
189         /// Internal error.
190         /// </summary>
191         InvalidOperation = StreamRecorderError.InvalidOperation,
192         /// <summary>
193         /// Out of memory.
194         /// </summary>
195         OutOfMemory = StreamRecorderError.OutOfMemory
196     }
197 }