asterisk/main
Joshua Colp 6cc890b880 channel: Add support for writing to a specific stream.
This change adds an ast_write_stream function which allows
writing a frame to a specific media stream. It also moves
ast_write() to using this underneath by writing media
frames provided to it to the default streams of the channel.
Existing functionality (such as audiohooks, framehooks, etc)
are limited to being applied to the default stream only.

Unit tests have also been added which test the behavior of
both non-multistream and multistream channels to confirm that
the write() and write_stream() callbacks are invoked
appropriately.

ASTERISK-26793

Change-Id: I4df20d1b65bd4d787fce0b4b478e19d2dfea245c
2017-02-23 18:31:15 +00:00
..
editline BuildSystem: Avoid 'ar cru' and use 'ar cr' instead. 2016-06-07 09:32:11 +02:00
stdtime Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
.gitignore build-system: Allow building with static pjproject 2016-03-01 09:30:43 -07:00
Makefile build: Execute ldconfig to build cache. 2017-02-21 05:25:13 -06:00
abstract_jb.c abstract/fixed/adpative jitter buffer: disallow frame re-inserts 2017-01-17 17:08:53 -06:00
acl.c acl.c: Improve ast_ouraddrfor() diagnostic messages. 2016-12-22 12:25:15 -06:00
adsi.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
alaw.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
aoc.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
app.c main/app.c: Memory corruption from early format destruction. 2017-01-24 14:05:05 -06:00
ast_expr2.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
ast_expr2.fl Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
ast_expr2.h Allow the REALTIME() function to report errors back to the caller. 2012-07-11 17:16:50 +00:00
ast_expr2.y Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
ast_expr2f.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
asterisk.c PJPROJECT logging: Fix detection of max supported log level. 2017-01-24 11:25:19 -06:00
asterisk.dynamics Fix error loading res_monitor. 2014-04-23 15:02:39 +00:00
asterisk.exports.in pjproject_bundled: Various fixes discovered during testing of OSes 2016-05-03 07:56:18 -05:00
astfd.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
astmm.c cli: Fix various CLI documentation and completion issues 2017-02-13 11:33:15 -05:00
astobj2.c astobj2.c: Add excessive ref count trap. 2017-01-24 14:17:05 -06:00
astobj2_container.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
astobj2_container_private.h Astobj2: Allow reference debugging to be enabled/disabled by config. 2015-04-27 18:37:26 -04:00
astobj2_hash.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
astobj2_private.h Astobj2: Allow reference debugging to be enabled/disabled by config. 2015-04-27 18:37:26 -04:00
astobj2_rbtree.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
audiohook.c audiohooks: Muting a hook can mute underlying frames 2017-02-01 17:00:26 -06:00
autochan.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
autoservice.c Frame deferral: Revert API refactoring. 2017-02-02 13:02:03 -06:00
backtrace.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
bridge.c cli: Fix various CLI documentation and completion issues 2017-02-13 11:33:15 -05:00
bridge_after.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
bridge_basic.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
bridge_channel.c main/bridge_channel: Fix channel reference leak on video source 2016-11-04 15:50:41 -05:00
bridge_roles.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
bucket.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
buildinfo.c fix a few small things found by using sparse 2008-10-30 16:49:02 +00:00
callerid.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
ccss.c cli: Fix various CLI documentation and completion issues 2017-02-13 11:33:15 -05:00
cdr.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
cel.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
channel.c channel: Add support for writing to a specific stream. 2017-02-23 18:31:15 +00:00
channel_internal_api.c channel: Add support for writing to a specific stream. 2017-02-23 18:31:15 +00:00
chanvars.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
cli.c cli: Fix various CLI documentation and completion issues 2017-02-13 11:33:15 -05:00
codec.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
codec_builtin.c codec_opus: Fix warning when Opus negotiated but codec_opus not loaded. 2016-11-16 14:56:18 -05:00
config.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
config_options.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
core_local.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
core_unreal.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
crypt.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
cygload.c Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
data.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
datastore.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
db.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
devicestate.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
dial.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
dns.c Add support for older name resolving version libraries like openBSD 2016-11-20 09:19:18 +11:00
dns_core.c Add support for older name resolving version libraries like openBSD 2016-11-20 09:19:18 +11:00
dns_naptr.c Add support for older name resolving version libraries like openBSD 2016-11-20 09:19:18 +11:00
dns_query_set.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
dns_recurring.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
dns_srv.c Add support for older name resolving version libraries like openBSD 2016-11-20 09:19:18 +11:00
dns_system_resolver.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
dns_test.c dns: Fix build when TEST_FRAMEWORK is not defined. 2015-04-10 13:32:24 +00:00
dns_tlsa.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
dnsmgr.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
dsp.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
ecdisa.h Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
endpoints.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
enum.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
event.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
features.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
features_config.c Fix issue with CLI not returning to prompt after running "features show" 2016-10-20 09:53:24 +11:00
file.c file.c/__ast_file_read_dirs: Fix issues on filesystems without d_type 2016-11-15 21:21:59 -05:00
fixedjitterbuf.c abstract/fixed/adpative jitter buffer: disallow frame re-inserts 2017-01-17 17:08:53 -06:00
fixedjitterbuf.h abstract/fixed/adpative jitter buffer: disallow frame re-inserts 2017-01-17 17:08:53 -06:00
format.c ast_format: Adds an identifier for interleaved audio formats to the ast_format 2016-11-06 15:56:58 +01:00
format_cache.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
format_cap.c stream: Add media stream topology definition and API 2017-02-13 07:49:25 -07:00
format_compatibility.c T.140: Fix format ref and memory leaks. 2017-01-25 13:46:41 -06:00
frame.c Merge "media: Add experimental support for RTCP feedback." 2017-01-27 07:04:52 -06:00
framehook.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
fskmodem.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
fskmodem_float.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
fskmodem_int.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
global_datastores.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
hashtab.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
heap.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
http.c http: Ensure capath is defined on all http creations 2017-02-16 05:48:41 -06:00
image.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
indications.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
io.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
iostream.c openssl 1.1 support: use OPENSSL_VERSION_NUMBER 2017-02-03 10:28:14 +02:00
jitterbuf.c abstract/fixed/adpative jitter buffer: disallow frame re-inserts 2017-01-17 17:08:53 -06:00
json.c res_ari: Add support for channel variables in ARI events. 2016-11-14 13:51:56 -05:00
libasteriskpj.c PJPROJECT logging: Fix detection of max supported log level. 2017-01-24 11:25:19 -06:00
libasteriskssl.c libasteriskssl: do nothing with OpenSSL >= 1.1 2017-02-03 10:28:14 +02:00
libasteriskssl.exports.in Address OpenSSL initialization issues when using third-party libraries. 2012-01-30 21:21:16 +00:00
loader.c Fix shutdown crash caused by modules being left open. 2016-10-28 10:24:26 -05:00
lock.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
logger.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
manager.c Remove extra ast_iostream_close() calls. 2017-02-17 15:12:30 -06:00
manager_bridges.c res/ari/resource_bridges: Add the ability to manipulate the video source 2016-11-14 17:03:09 -05:00
manager_channels.c manager: Add documentation for NewConnectedLine event. 2016-10-31 14:46:54 -04:00
manager_endpoints.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
manager_mwi.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
manager_system.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
max_forwards.c Detect potential forwarding loops based on count. 2015-04-17 15:58:07 -05:00
md5.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
media_cache.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
media_index.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
message.c MESSAGE: Flush Message/ast_msg_queue channel alert pipe. 2016-12-14 11:38:06 -06:00
mixmonitor.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
named_acl.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
named_locks.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
netsock.c netsock.c: fix includes for HURD 2016-11-01 11:48:06 +02:00
netsock2.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
optional_api.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
parking.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx.c manager: Restore Originate failure behavior from Asterisk 11 2017-02-10 18:04:41 -05:00
pbx_app.c cli: Fix various CLI documentation and completion issues 2017-02-13 11:33:15 -05:00
pbx_builtins.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx_functions.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx_hangup_handler.c cli: Fix various CLI documentation and completion issues 2017-02-13 11:33:15 -05:00
pbx_ignorepat.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx_include.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx_private.h pbx: Create pbx_sw.c for management of 'struct ast_sw'. 2016-07-21 13:58:26 -04:00
pbx_sw.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx_switch.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx_timing.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pbx_variables.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
pickup.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
plc.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
poll.c Merged revisions 285268 via svnmerge from 2010-09-07 19:09:08 +00:00
presencestate.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
privacy.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
rtp_engine.c core: Cleanup some channel snapshot staging anomalies. 2017-02-10 12:05:56 -06:00
say.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
sched.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
sdp_options.c Add initial SDP options. 2017-02-17 09:23:12 -06:00
sdp_repr.c Add SDP translator and PJMEDIA implementation. 2017-02-17 09:47:47 -06:00
sdp_srtp.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
sdp_translator.c Add SDP translator and PJMEDIA implementation. 2017-02-17 09:47:47 -06:00
security_events.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
sem.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
sha1.c Doxygen Updates - janitor work 2012-09-21 17:14:59 +00:00
sip_api.c Don't make chan_sip export global symbols. 2012-10-11 15:49:02 +00:00
slinfactory.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
smoother.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
sorcery.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
sounds_index.c Replace most uses of ast_register_atexit with ast_register_cleanup. 2015-03-26 22:24:26 +00:00
srv.c srv: Fix crash when ast_srv_lookup is used and 0 records are returned. 2017-02-07 12:13:23 -06:00
stasis.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
stasis_bridges.c res/ari/resource_bridges: Add the ability to manipulate the video source 2016-11-14 17:03:09 -05:00
stasis_cache.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
stasis_cache_pattern.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
stasis_channels.c res_ari: fix memory leak for channelvars 2017-02-03 16:42:52 -05:00
stasis_endpoints.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
stasis_message.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
stasis_message_router.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
stasis_system.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
strcompat.c Add builtin roundf() for systems lacking it. 2013-01-19 20:54:07 +00:00
stream.c stream: Rename creates/destroys to allocs/frees 2017-02-16 09:10:02 -06:00
stringfields.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
strings.c ari: Implement 'debug all' and request/response logging 2017-01-23 10:25:58 -07:00
stun.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
syslog.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
taskprocessor.c taskprocessor.c: Change when high water warning logged. 2017-01-13 21:36:54 -06:00
tcptls.c tcptls.c: Add some missing allocation failure checks. 2017-02-17 17:00:24 -06:00
tdd.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
term.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
test.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
threadpool.c threadpool: Fix leak in ast_threadpool_serializer_group error path. 2016-07-13 11:47:56 -05:00
threadstorage.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
timing.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
translate.c media: Add experimental support for RTCP feedback. 2017-01-23 13:25:31 +01:00
udptl.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
ulaw.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
uri.c uri: Quiet warning about type qualifiers ignored on function return type 2014-08-21 14:42:12 +00:00
utils.c res_rtp: Fix regression when IPv6 is not available. 2016-11-30 14:18:05 -05:00
uuid.c Fix printf problems with high ascii characters after r413586 (1.8). 2014-12-17 10:23:32 +00:00
xml.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
xmldoc.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00