FS-7500: add video_write_overlay and stop_video_write_overlay

Use it to add an image to the write stream to see a recording banner on video echoed back to you during recording.
ARGS: <file> [<position>] [<opacity 0-255>]

POSITIONS:
left-top
left-mid
left-bot
center-top
center-mid
center-bot
right-top
right-mid
right-bot

<extension name="example">
  <condition field="destination_number" expression="^overlay$">
    <action application="answer"/>
    <action application="video_write_overlay" data="/path/to/img.png"/>
    <action application="record" data="/data/file.mp4"/>
    <action application="stop_video_write_overlay"/>
   </condition>
</extension>
This commit is contained in:
Anthony Minessale
2015-05-15 15:28:45 -05:00
committed by Michael Jerris
parent e8f2366bdf
commit 81ef7703bd
5 changed files with 177 additions and 5 deletions
+7
View File
@@ -41,6 +41,7 @@
#define SWITCH_IVR_H
#include <switch.h>
#include <switch_core_video.h>
#include "switch_json.h"
SWITCH_BEGIN_EXTERN_C struct switch_unicast_conninfo {
@@ -1003,6 +1004,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_kill_uuid(const char *uuid, switch_ca
SWITCH_DECLARE(switch_status_t) switch_ivr_blind_transfer_ack(switch_core_session_t *session, switch_bool_t success);
SWITCH_DECLARE(switch_status_t) switch_ivr_record_session_mask(switch_core_session_t *session, const char *file, switch_bool_t on);
SWITCH_DECLARE(switch_status_t) switch_ivr_stop_video_write_overlay_session(switch_core_session_t *session);
SWITCH_DECLARE(switch_status_t) switch_ivr_video_write_overlay_session(switch_core_session_t *session, const char *img_path,
switch_img_position_t pos, uint8_t alpha);
/** @} */
SWITCH_END_EXTERN_C
+5 -3
View File
@@ -489,6 +489,7 @@ typedef enum {
SWITCH_ABC_TYPE_TAP_NATIVE_WRITE,
SWITCH_ABC_TYPE_CLOSE,
SWITCH_ABC_TYPE_READ_VIDEO_PING,
SWITCH_ABC_TYPE_WRITE_VIDEO_PING,
SWITCH_ABC_TYPE_STREAM_VIDEO_PING,
SWITCH_ABC_TYPE_VIDEO_PATCH
} switch_abc_type_t;
@@ -1736,9 +1737,10 @@ typedef enum {
SMBF_ONE_ONLY = (1 << 15),
SMBF_MASK = (1 << 16),
SMBF_READ_VIDEO_PING = (1 << 17),
SMBF_READ_VIDEO_STREAM = (1 << 18),
SMBF_WRITE_VIDEO_STREAM = (1 << 19),
SMBF_VIDEO_PATCH = (1 << 20)
SMBF_WRITE_VIDEO_PING = (1 << 18),
SMBF_READ_VIDEO_STREAM = (1 << 19),
SMBF_WRITE_VIDEO_STREAM = (1 << 20),
SMBF_VIDEO_PATCH = (1 << 21)
} switch_media_bug_flag_enum_t;
typedef uint32_t switch_media_bug_flag_t;