Changeset 3327 for pjproject/trunk/pjmedia/include/pjmedia/port.h
- Timestamp:
- Sep 30, 2010 4:23:27 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/include/pjmedia/port.h
r3292 r3327 38 38 @subsection The Media Port 39 39 A media port (represented with pjmedia_port "class") provides a generic 40 and extensible framework for implementing media terminations. A media 40 and extensible framework for implementing media elements. Media element 41 itself could be a media source, sink, or processing element. A media 41 42 port interface basically has the following properties: 42 43 - media port information (pjmedia_port_info) to describe the 43 44 media port properties (sampling rate, number of channels, etc.), 44 - pointer to function to acquire frames from the port (<tt>get_frame() 45 </tt> interface), which will be called by #pjmedia_port_get_frame() 46 public API, and 47 - pointer to function to store frames to the port (<tt>put_frame()</tt> 48 interface) which will be called by #pjmedia_port_put_frame() public 49 API. 50 51 Media ports are passive "objects". Applications (or other PJMEDIA 52 components) must actively calls #pjmedia_port_get_frame() or 53 #pjmedia_port_put_frame() from/to the media port in order to retrieve/ 54 store media frames. 45 - optional pointer to function to acquire frames from the port (the 46 <tt>get_frame() </tt> interface), which will be called by 47 #pjmedia_port_get_frame() public API, and 48 - optional pointer to function to store frames to the port (the 49 <tt>put_frame()</tt> interface) which will be called by 50 #pjmedia_port_put_frame() public API. 51 52 The <tt>get_frame()</tt> and <tt>put_frame()</tt> interface of course 53 would only need to be implemented if the media port emits and/or takes 54 media frames respectively. 55 56 Media ports are passive "objects". By default, there is no worker thread 57 to run the media flow. Applications (or other PJMEDIA 58 components, as explained in @ref PJMEDIA_PORT_CLOCK) must actively call 59 #pjmedia_port_get_frame() or #pjmedia_port_put_frame() from/to the media 60 port in order to retrieve/store media frames. 55 61 56 62 Some media ports (such as @ref PJMEDIA_CONF and @ref PJMEDIA_RESAMPLE_PORT) 57 may be interconnected with each other, while some 63 may be interconnected with (or encapsulate) other port, to perform the 64 combined task of the ports, while some 58 65 others represent the ultimate source/sink termination for the media. 66 Interconnection means the upstream media port will call <tt>get_frame()</tt> 67 and <tt>put_frame()</tt> to its downstream media port. For this to happen, 68 the media ports need to have the same format, where format is defined as 69 combination of sample format, clock rate, channel count, bits per sample, 70 and samples per frame for audio media. 59 71 60 72
Note: See TracChangeset
for help on using the changeset viewer.