mediastreamer2
2.12.1
|
Video streaming API - Easily run video streams from camera capture or static picture files to RTP. More...
Typedefs | |
typedef VideoStream | VideoPreview |
Functions | |
VideoStream * | video_stream_new2 (const char *ip, int loc_rtp_port, int loc_rtcp_port) |
int | video_stream_start_from_io (VideoStream *stream, RtpProfile *profile, const char *rem_rtp_ip, int rem_rtp_port, const char *rem_rtcp_ip, int rem_rtcp_port, int payload_type, const MSMediaStreamIO *io) |
MSFilter * | video_stream_get_source_filter (const VideoStream *stream) |
MSFilter * | video_stream_change_source_filter (VideoStream *stream, MSWebCam *cam, MSFilter *filter, bool_t keep_previous_source) |
This functions changes the source filter for the passed video stream. More... | |
MSFilter * | video_stream_change_camera_keep_previous_source (VideoStream *stream, MSWebCam *cam) |
This is the same function as video_stream_change_source_filter() called with keep_source=1, but the new filter will be created from the MSWebcam that is passed as argument. More... | |
void | video_stream_send_fir (VideoStream *stream) |
void | video_stream_send_vfu (VideoStream *stream) |
MSFilter * | video_stream_stop_keep_source (VideoStream *stream) |
void | video_stream_set_sent_video_size (VideoStream *stream, MSVideoSize vsize) |
MSVideoSize | video_stream_get_sent_video_size (const VideoStream *stream) |
MSVideoSize | video_stream_get_received_video_size (const VideoStream *stream) |
float | video_stream_get_sent_framerate (const VideoStream *stream) |
float | video_stream_get_received_framerate (const VideoStream *stream) |
const char * | video_stream_get_default_video_renderer (void) |
int | video_stream_get_camera_sensor_rotation (VideoStream *stream) |
Gets the camera sensor rotation. More... | |
bool_t | video_stream_is_decoding_error_to_be_reported (VideoStream *stream, uint32_t ms) |
void | video_stream_decoding_error_reported (VideoStream *stream) |
void | video_stream_decoding_error_recovered (VideoStream *stream) |
void | video_stream_set_preview_size (VideoStream *stream, MSVideoSize vsize) |
void | video_stream_set_fps (VideoStream *stream, float fps) |
void | audio_stream_link_video (AudioStream *stream, VideoStream *video) |
void | audio_stream_unlink_video (AudioStream *stream, VideoStream *video) |
void | video_stream_use_video_preset (VideoStream *stream, const char *preset) |
MSFilter * | video_stream_open_remote_play (VideoStream *stream, const char *filename) |
MSFilter * | video_stream_open_remote_record (VideoStream *stream, const char *filename) |
MSFilter * | video_preview_stop_reuse_source (VideoPreview *stream) |
RtpSession * | ms_create_duplex_rtp_session (const char *local_ip, int loc_rtp_port, int loc_rtcp_port) |
void | audio_stream_set_audio_route (AudioStream *stream, MSAudioRoute route) |
Video streaming API - Easily run video streams from camera capture or static picture files to RTP.
typedef VideoStream VideoPreview |
Small API to display a local preview window.
VideoStream* video_stream_new2 | ( | const char * | ip, |
int | loc_rtp_port, | ||
int | loc_rtcp_port | ||
) |
Creates a VideoStream object listening on a RTP port for a dedicated address.
loc_ip | the local ip to listen for RTP packets. Can be ::, O.O.O.O or any ip4/6 addresses | |
[in] | loc_rtp_port | the local UDP port to listen for RTP packets. |
[in] | loc_rtcp_port | the local UDP port to listen for RTCP packets |
int video_stream_start_from_io | ( | VideoStream * | stream, |
RtpProfile * | profile, | ||
const char * | rem_rtp_ip, | ||
int | rem_rtp_port, | ||
const char * | rem_rtcp_ip, | ||
int | rem_rtcp_port, | ||
int | payload_type, | ||
const MSMediaStreamIO * | io | ||
) |
Start a video stream according to the specified VideoStreamIO.
[in] | stream | VideoStream object previously created with video_stream_new(). |
[in] | profile | RtpProfile object holding the PayloadType that can be used during the video session. |
[in] | rem_rtp_ip | The remote IP address where to send the encoded video to. |
[in] | rem_rtp_port | The remote port where to send the encoded video to. |
[in] | rem_rtcp_ip | The remote IP address for RTCP. |
[in] | rem_rtcp_port | The remote port for RTCP. |
[in] | payload_type | The payload type number used to send the video stream. A valid PayloadType must be available at this index in the profile. |
[in] | io | A VideoStreamIO describing the input/output of the video stream. |
MSFilter* video_stream_get_source_filter | ( | const VideoStream * | stream | ) |
Returns the current video stream source filter. Be careful, this source will be destroyed if the stream is stopped.
MSFilter* video_stream_change_source_filter | ( | VideoStream * | stream, |
MSWebCam * | cam, | ||
MSFilter * | filter, | ||
bool_t | keep_previous_source | ||
) |
This functions changes the source filter for the passed video stream.
This is quite the same function as video_stream_change_camera, but this one allows you to pass the source filter that is created for the camera and reuse it. This gives you the ability to switch rapidly between two streams, whereas re-creating them each time would be costly (especially with webcams).
Example usage:
video_stream_start(stream, profile, [...], noWebcamDevice); // We manage the sources for the stream ourselves: MSFilter* noWebCamFilter = video_stream_get_source_filter(stream); MSFilter* frontCamFilter = ms_web_cam_create_reader(frontCamDevice); sleep(1); video_stream_change_source_filter(stream, frontCamDevice, frontCamFilter, TRUE); // will keep the previous filter sleep(1); video_stream_change_source_filter(stream, noWebcamDevice, noWebCamFilter, TRUE); // keep the previous filter sleep(1) video_stream_stop_keep_source(stream); ms_filter_destroy(noWebCamFilter); ms_filter_destroy(frontCamFilter);
stream | the video stream to modify |
cam | the camera that you want to set as the new source |
cam_filter | the filter for this camera. It can be obtained with ms_web_cam_create_reader(cam) |
This is the same function as video_stream_change_source_filter() called with keep_source=1, but the new filter will be created from the MSWebcam that is passed as argument.
stream | the video stream |
cam | the MSWebcam from which the new source filter should be created. |
void video_stream_send_fir | ( | VideoStream * | stream | ) |
Asks the video stream to send a Full-Intra Request.
[in] | stream | The videostream object. |
void video_stream_send_vfu | ( | VideoStream * | stream | ) |
Asks the video stream to generate a Video Fast Update (generally after receiving a Full-Intra Request.
[in] | stream | The videostream object. |
MSFilter* video_stream_stop_keep_source | ( | VideoStream * | stream | ) |
Stop the video stream, but does not destroy the source of the video. This function can be use in conjunction with video_stream_change_source_filter() to allow manual management of the source filters for a video stream.
stream | the stream to stop |
void video_stream_set_sent_video_size | ( | VideoStream * | stream, |
MSVideoSize | vsize | ||
) |
Try to set the size of the video that is sent. Since this relies also on the bitrate specified, make sure to set the payload bitrate accordingly with rtp_profile_get_payload and normal_bitrate value otherwise the best possible resolution will be taken instead of the requested one.
[in] | stream | The videostream for which to get the sent video size. |
[in] | vsize | The sent video size wished. |
MSVideoSize video_stream_get_sent_video_size | ( | const VideoStream * | stream | ) |
Gets the size of the video that is sent.
[in] | stream | The videostream for which to get the sent video size. |
MSVideoSize video_stream_get_received_video_size | ( | const VideoStream * | stream | ) |
Gets the size of the video that is received.
[in] | stream | The videostream for which to get the received video size. |
float video_stream_get_sent_framerate | ( | const VideoStream * | stream | ) |
Gets the framerate of the video that is sent.
[in] | stream | The videostream. |
float video_stream_get_received_framerate | ( | const VideoStream * | stream | ) |
Gets the framerate of the video that is received.
[in] | stream | The videostream. |
const char* video_stream_get_default_video_renderer | ( | void | ) |
Returns the name of the video display filter on the current platform.
int video_stream_get_camera_sensor_rotation | ( | VideoStream * | stream | ) |
Gets the camera sensor rotation.
This is needed on some mobile platforms to get the number of degrees the camera sensor is rotated relative to the screen.
stream | The video stream related to the operation |
bool_t video_stream_is_decoding_error_to_be_reported | ( | VideoStream * | stream, |
uint32_t | ms | ||
) |
Ask the video stream whether a decoding error should be reported (eg. to send a VFU request).
[in] | stream | The VideoStream object. |
[in] | ms | The minimum interval in milliseconds between to decoding error report. |
void video_stream_decoding_error_reported | ( | VideoStream * | stream | ) |
Tell the video stream that a decoding error has been reported.
[in] | stream | The VideoStream object. |
void video_stream_decoding_error_recovered | ( | VideoStream * | stream | ) |
Tell the video stream that a decoding error has been recovered so that new decoding can be reported sooner.
[in] | stream | The VideoStream object. |
void video_stream_set_preview_size | ( | VideoStream * | stream, |
MSVideoSize | vsize | ||
) |
Force a resolution for the preview.
[in] | stream | The VideoStream object. |
[in] | vsize | video resolution. |
void video_stream_set_fps | ( | VideoStream * | stream, |
float | fps | ||
) |
Force a resolution for the preview.
[in] | stream | The VideoStream object. |
[in] | fps | the frame rate in frame/seconds. A value of zero means "use encoder default value". |
void audio_stream_link_video | ( | AudioStream * | stream, |
VideoStream * | video | ||
) |
Link the audio stream with an existing video stream. This is necessary to enable recording of audio & video into a multimedia file.
void audio_stream_unlink_video | ( | AudioStream * | stream, |
VideoStream * | video | ||
) |
Unlink the audio stream from the video stream. This must be done if the video stream is about to be stopped.
void video_stream_use_video_preset | ( | VideoStream * | stream, |
const char * | preset | ||
) |
Set a video preset to be used for the video stream.
[in] | stream | VideoStream object |
[in] | preset | The name of the video preset to be used. |
MSFilter* video_stream_open_remote_play | ( | VideoStream * | stream, |
const char * | filename | ||
) |
Open a player to play a video file (mkv) to remote end. The player is returned as a MSFilter so that application can make usual player controls on it using the MSPlayerInterface.
MSFilter* video_stream_open_remote_record | ( | VideoStream * | stream, |
const char * | filename | ||
) |
Open a recorder to record the video coming from remote end into a mkv file. This must be done before the stream is started.
MSFilter* video_preview_stop_reuse_source | ( | VideoPreview * | stream | ) |
Stops the video preview graph but keep the source filter for reuse. This is useful when transitioning from a preview-only to a duplex video. The filter needs to be passed to the #video_stream_start_with_source function, otherwise you should destroy it.
[in] | stream | VideoPreview object |
RtpSession* ms_create_duplex_rtp_session | ( | const char * | local_ip, |
int | loc_rtp_port, | ||
int | loc_rtcp_port | ||
) |
Create an RTP session for duplex communication.
[in] | local_ip | The local IP to bind the RTP and RTCP sockets to. |
[in] | local_rtp_port | The local port to bind the RTP socket to. |
[in] | local_rtcp_port | The local port to bind the RTCP socket to. |
void audio_stream_set_audio_route | ( | AudioStream * | stream, |
MSAudioRoute | route | ||
) |
Asks the audio playback filter to route to the selected device (currently only used for blackberry)
[in] | stream | The AudioStream object |
[in] | route | The wanted audio output device (earpiece, speaker) |