Merge "media: Add experimental support for RTCP feedback."

This commit is contained in:
George Joseph
2017-01-27 07:04:52 -06:00
committed by Gerrit Code Review
9 changed files with 151 additions and 2 deletions

View File

@@ -127,6 +127,8 @@ enum ast_frame_type {
* directly into bridges.
*/
AST_FRAME_BRIDGE_ACTION_SYNC,
/*! RTCP feedback */
AST_FRAME_RTCP,
};
#define AST_FRAME_DTMF AST_FRAME_DTMF_END

View File

@@ -121,7 +121,7 @@ enum ast_trans_cost_table {
*
* As a minimum, a translator should supply name, srcfmt and dstfmt,
* the required buf_size (in bytes) and buffer_samples (in samples),
* and a few callbacks (framein, frameout, sample).
* and a few callbacks (framein, frameout, feedback, sample).
* The outbuf is automatically prepended by AST_FRIENDLY_OFFSET
* spare bytes so generic routines can place data in there.
*
@@ -159,6 +159,10 @@ struct ast_translator {
/*!< Output frame callback. Generate a frame
* with outbuf content. */
void (*feedback)(struct ast_trans_pvt *pvt, struct ast_frame *feedback);
/*!< Feedback frame callback. Handle
* input frame. */
void (*destroy)(struct ast_trans_pvt *pvt);
/*!< cleanup private data, if needed
* (often unnecessary). */
@@ -316,7 +320,9 @@ void ast_translator_free_path(struct ast_trans_pvt *tr);
/*!
* \brief translates one or more frames
* Apply an input frame into the translator and receive zero or one output frames. Consume
* determines whether the original frame should be freed
* determines whether the original frame should be freed. In case the frame type is
* AST_FRAME_RTCP, the frame is not translated but passed to the translator codecs
* via the feedback callback, and a pointer to ast_null_frame is returned after that.
* \param path tr translator structure to use for translation
* \param f frame to translate
* \param consume Whether or not to free the original frame