WEBRTC_STATS_TYPE_CODEC = 0x0001, /**< Codec */
WEBRTC_STATS_TYPE_INBOUND_RTP = 0x0002, /**< Inbound RTP */
WEBRTC_STATS_TYPE_OUTBOUND_RTP = 0x0004, /**< Outbound RTP */
- WEBRTC_STATS_TYPE_REMOTE_INBOUND_RTP = 0x0008 /**< Remote inbound RTP */
+ WEBRTC_STATS_TYPE_REMOTE_INBOUND_RTP = 0x0008, /**< Remote inbound RTP */
+ WEBRTC_STATS_TYPE_REMOTE_OUTBOUND_RTP = 0x000F /**< Remote outbound RTP */
} webrtc_stats_type_e;
/**
WEBRTC_STATS_TYPE_CODEC | \
WEBRTC_STATS_TYPE_INBOUND_RTP | \
WEBRTC_STATS_TYPE_OUTBOUND_RTP | \
- WEBRTC_STATS_TYPE_REMOTE_INBOUND_RTP
+ WEBRTC_STATS_TYPE_REMOTE_INBOUND_RTP | \
+ WEBRTC_STATS_TYPE_REMOTE_OUTBOUND_RTP
/**
* @brief Definition for mask value used by #webrtc_stats_prop_e that represents properties of RTC stats.
*/
#define WEBRTC_STATS_REMOTE_INBOUND_RTP_STREAM 0x00004000
+/**
+ * @brief Definition for mask value used by #webrtc_stats_prop_e that represents properties of RTC remote outbound RTP stream stats.
+ * @since_tizen 7.0
+ * @remarks It corresponds with the values described in https://www.w3.org/TR/webrtc-stats/#dom-rtcremoteoutboundrtpstreamstats.
+ * @see webrtc_stats_prop_e
+ */
+#define WEBRTC_STATS_REMOTE_OUTBOUND_RTP_STREAM 0x00008000
+
/**
* @brief Enumeration for WebRTC statistics property.
* @since_tizen 7.0
WEBRTC_STATS_PROP_FIR_COUNT = WEBRTC_STATS_INBOUND_RTP_STREAM | WEBRTC_STATS_OUTBOUND_RTP_STREAM | 0x02, /**< FIR packets */
WEBRTC_STATS_PROP_PLI_COUNT = WEBRTC_STATS_INBOUND_RTP_STREAM | WEBRTC_STATS_OUTBOUND_RTP_STREAM | 0x03, /**< PLI packets */
WEBRTC_STATS_PROP_NACK_COUNT = WEBRTC_STATS_INBOUND_RTP_STREAM | WEBRTC_STATS_OUTBOUND_RTP_STREAM | 0x04, /**< NACK packets */
- WEBRTC_STATS_PROP_LOCAL_ID = WEBRTC_STATS_REMOTE_INBOUND_RTP_STREAM | 0x01, /**< Local id */
- WEBRTC_STATS_PROP_ROUND_TRIP_TIME = WEBRTC_STATS_REMOTE_INBOUND_RTP_STREAM | 0x02, /**< Round trip time */
- WEBRTC_STATS_PROP_FRACTION_LOST = WEBRTC_STATS_REMOTE_INBOUND_RTP_STREAM | 0x03, /**< Fraction lost */
+ WEBRTC_STATS_PROP_ROUND_TRIP_TIME = WEBRTC_STATS_REMOTE_INBOUND_RTP_STREAM | 0x01, /**< Round trip time */
+ WEBRTC_STATS_PROP_FRACTION_LOST = WEBRTC_STATS_REMOTE_INBOUND_RTP_STREAM | 0x02, /**< Fraction lost */
+ WEBRTC_STATS_PROP_REMOTE_TIMESTAMP = WEBRTC_STATS_REMOTE_OUTBOUND_RTP_STREAM | 0x01, /**< Remote timestamp */
+ WEBRTC_STATS_PROP_LOCAL_ID = WEBRTC_STATS_REMOTE_INBOUND_RTP_STREAM | WEBRTC_STATS_REMOTE_OUTBOUND_RTP_STREAM | 0x01, /**< Local id */
} webrtc_stats_prop_e;
/**
* @retval #WEBRTC_ERROR_INVALID_STATE Invalid state
* @pre @a webrtc state must be set to #WEBRTC_STATE_PLAYING.
* @post webrtc_stats_cb() will be invoked.
+ * @par Example
+ * @code
+ if (webrtc_foreach_stats(webrtc, WEBRTC_STATS_TYPE_ALL, __stats_cb, user_data) != WEBRTC_ERROR_NONE)
+ return error;
+ ... or ...
+ if (webrtc_foreach_stats(webrtc, WEBRTC_STATS_TYPE_INBOUND_RTP | WEBRTC_STATS_TYPE_REMOTE_OUTBOUND_RTP,
+ __stats_cb, user_data) != WEBRTC_ERROR_NONE)
+ return error;
+ * @endcode
*/
int webrtc_foreach_stats(webrtc_h webrtc, int type_mask, webrtc_stats_cb callback, void *user_data);
* "remote-timestamp" G_TYPE_DOUBLE the remote timestamp at which these statistics were sent by the remote endpoint
*/
static stats_field_s __stats_remote_outbound_rtp_stream_fields[] = {
- { "local-id", WEBRTC_STATS_PROP_NOT_EXPORTED, 0 },
- { "remote-timestamp", WEBRTC_STATS_PROP_NOT_EXPORTED, 0 },
+ { "local-id", WEBRTC_STATS_PROP_LOCAL_ID, 0 },
+ { "remote-timestamp", WEBRTC_STATS_PROP_REMOTE_TIMESTAMP, 0 },
{ NULL, 0, 0 }
};
static void __stats_remote_outbound_rtp_invoke_callback(const GstStructure *s, webrtc_stats_type_e type, stats_field_s **fields_list, promise_userdata_s *user_data)
{
- stats_userdata_s stats_userdata = { .p_userdata = user_data, .type = type, .fields_list = fields_list };
+ stats_userdata_s stats_userdata = { .p_userdata = user_data, .type = type, .fields_list = fields_list, .export = true };
RET_IF(user_data == NULL, "user_data is NULL");
LOG_DEBUG_ENTER();
} parse_stats_s;
/* Definitions below are not exported types due to the incompletion. */
-#define WEBRTC_STATS_TYPE_REMOTE_OUTBOUND_RTP 0x000F /**< Remote Outbound RTP */
#define WEBRTC_STATS_TYPE_PEER_CONNECTION 0x0010 /**< Peer Connection */
#define WEBRTC_STATS_TYPE_CSRC 0x0020 /**< CSRC */
#define WEBRTC_STATS_TYPE_DATA_CHANNEL 0x0040 /**< Data Channel */