UniMRCP  1.7.0
mpf_stream_descriptor.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008-2015 Arsen Chaloyan
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 #ifndef MPF_STREAM_DESCRIPTOR_H
18 #define MPF_STREAM_DESCRIPTOR_H
19 
20 /**
21  * @file mpf_stream_descriptor.h
22  * @brief MPF Stream Descriptor
23  */
24 
25 #include "mpf_codec_descriptor.h"
26 
28 
29 /** Stream capabilities declaration */
31 
32 /** Stream directions (none, send, receive, duplex) */
33 typedef enum {
34  STREAM_DIRECTION_NONE = 0x0, /**< none */
35  STREAM_DIRECTION_SEND = 0x1, /**< send (sink) */
36  STREAM_DIRECTION_RECEIVE = 0x2, /**< receive (source) */
37 
40 
41 
42 /** Stream capabilities */
44  /** Supported directions either send, receive or bidirectional stream (bitmask of mpf_stream_direction_e) */
46  /** Codec capabilities (supported codecs and named events) */
48 };
49 
50 /** Create stream capabilities */
52 
53 /** Create source stream capabilities */
54 static APR_INLINE mpf_stream_capabilities_t* mpf_source_stream_capabilities_create(apr_pool_t *pool)
55 {
57 }
58 
59 /** Create sink stream capabilities */
60 static APR_INLINE mpf_stream_capabilities_t* mpf_sink_stream_capabilities_create(apr_pool_t *pool)
61 {
63 }
64 
65 /** Clone stream capabilities */
67 
68 /** Merge stream capabilities */
69 MPF_DECLARE(apt_bool_t) mpf_stream_capabilities_merge(mpf_stream_capabilities_t *capabilities, const mpf_stream_capabilities_t *src_capabilities, apr_pool_t *pool);
70 
71 
72 /** Get reverse direction */
73 static APR_INLINE mpf_stream_direction_e mpf_stream_reverse_direction_get(mpf_stream_direction_e direction)
74 {
75  mpf_stream_direction_e rev_direction = direction;
76  if(rev_direction == STREAM_DIRECTION_SEND) {
77  rev_direction = STREAM_DIRECTION_RECEIVE;
78  }
79  else if(rev_direction == STREAM_DIRECTION_RECEIVE) {
80  rev_direction = STREAM_DIRECTION_SEND;
81  }
82  return rev_direction;
83 }
84 
85 
87 
88 #endif /* MPF_STREAM_DESCRIPTOR_H */
Definition: mpf_stream_descriptor.h:38
Definition: mpf_stream_descriptor.h:34
#define APT_END_EXTERN_C
Definition: apt.h:38
int apt_bool_t
Definition: apt.h:57
apt_bool_t mpf_stream_capabilities_merge(mpf_stream_capabilities_t *capabilities, const mpf_stream_capabilities_t *src_capabilities, apr_pool_t *pool)
mpf_codec_capabilities_t codecs
Definition: mpf_stream_descriptor.h:47
mpf_stream_capabilities_t * mpf_stream_capabilities_create(mpf_stream_direction_e directions, apr_pool_t *pool)
#define MPF_DECLARE(type)
Definition: mpf.h:40
Definition: mpf_stream_descriptor.h:43
#define APT_BEGIN_EXTERN_C
Definition: apt.h:36
mpf_stream_direction_e
Definition: mpf_stream_descriptor.h:33
mpf_stream_direction_e direction
Definition: mpf_stream_descriptor.h:45
mpf_stream_capabilities_t * mpf_stream_capabilities_clone(const mpf_stream_capabilities_t *src_capabilities, apr_pool_t *pool)
MPF Codec Descriptor.
Definition: mpf_codec_descriptor.h:99
Definition: mpf_stream_descriptor.h:35
Definition: mpf_stream_descriptor.h:36