mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-24 05:02:10 +00:00
FS-7503 FS-7514: A bunch of stuff:
Get filehandles working with video in some cases (if using vlc://):
mod_conference for play and record video (will record the canvas in mix mode or floor holder in non-mix mode)
regular playback app should be able to play vlc streams
Add no-minimize-encoding member flag so particilar memebers can opt out of that setting and still get their own encoded stream (for bw related needs)
TODO:
mod_vlc is a mess. Find a way to merge video_context and file_context. They are very similar and they are intertwined and messy.
Find out why vlc creates messed up mp4 files that don't play everywhere
Get VLC so it can record aac, mp4x webm
This commit is contained in:
@@ -1851,7 +1851,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_write(_In_ switch_file_handle_t
|
||||
\param len the amount of data to write from the buffer
|
||||
\return SWITCH_STATUS_SUCCESS with len adjusted to the bytes written if successful
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_file_write_video(_In_ switch_file_handle_t *fh, void *data, switch_size_t *len);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_file_write_video(_In_ switch_file_handle_t *fh, switch_frame_t *frame);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_file_read_video(switch_file_handle_t *fh, switch_frame_t *frame);
|
||||
|
||||
/*!
|
||||
\brief Seek a position in a file
|
||||
@@ -1890,6 +1891,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_get_string(_In_ switch_file_han
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_file_close(_In_ switch_file_handle_t *fh);
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_file_truncate(switch_file_handle_t *fh, int64_t offset);
|
||||
SWITCH_DECLARE(switch_bool_t) switch_core_file_has_video(switch_file_handle_t *fh);
|
||||
|
||||
|
||||
///\}
|
||||
|
||||
@@ -325,6 +325,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_lock_unlock(switch_core_s
|
||||
SWITCH_DECLARE(void) switch_core_session_stop_media(switch_core_session_t *session);
|
||||
SWITCH_DECLARE(switch_media_flow_t) switch_core_session_media_flow(switch_core_session_t *session, switch_media_type_t type);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_media_get_vid_params(switch_core_session_t *session, switch_vid_params_t *vid_params);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_media_set_video_file(switch_core_session_t *session, switch_file_handle_t *fh);
|
||||
|
||||
SWITCH_END_EXTERN_C
|
||||
#endif
|
||||
|
||||
@@ -280,9 +280,9 @@ struct switch_file_interface {
|
||||
/*! function to write from the file */
|
||||
switch_status_t (*file_write) (switch_file_handle_t *, void *data, switch_size_t *len);
|
||||
/*! function to seek to a certian position in the file */
|
||||
switch_status_t (*file_read_video) (switch_file_handle_t *, void *data, switch_size_t *len);
|
||||
switch_status_t (*file_read_video) (switch_file_handle_t *, switch_frame_t *frame);
|
||||
/*! function to write from the file */
|
||||
switch_status_t (*file_write_video) (switch_file_handle_t *, void *data, switch_size_t *len);
|
||||
switch_status_t (*file_write_video) (switch_file_handle_t *, switch_frame_t *frame);
|
||||
/*! function to seek to a certian position in the file */
|
||||
switch_status_t (*file_seek) (switch_file_handle_t *, unsigned int *cur_pos, int64_t samples, int whence);
|
||||
/*! function to set meta data */
|
||||
|
||||
@@ -1756,7 +1756,8 @@ typedef enum {
|
||||
SWITCH_FILE_WRITE_APPEND = (1 << 15),
|
||||
SWITCH_FILE_WRITE_OVER = (1 << 16),
|
||||
SWITCH_FILE_NOMUX = (1 << 17),
|
||||
SWITCH_FILE_BREAK_ON_CHANGE = (1 << 18)
|
||||
SWITCH_FILE_BREAK_ON_CHANGE = (1 << 18),
|
||||
SWITCH_FILE_FLAG_VIDEO = (1 << 19)
|
||||
} switch_file_flag_enum_t;
|
||||
typedef uint32_t switch_file_flag_t;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user