Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d014f0f authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "In "special" mode we now establish a UDP RTCP channel in addition to the" into jb-mr2-dev

parents 19c11e1c 2aea9552
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -565,7 +565,7 @@ status_t ANetworkSession::Session::writeMore() {
        mSawSendFailure = true;
    }

#if 1
#if 0
    int numBytesQueued;
    int res = ioctl(mSocket, SIOCOUTQ, &numBytesQueued);
    if (res == 0 && numBytesQueued > 50 * 1024) {
@@ -576,7 +576,7 @@ status_t ANetworkSession::Session::writeMore() {
        int64_t nowUs = ALooper::GetNowUs();

        if (mLastStallReportUs < 0ll
                || nowUs > mLastStallReportUs + 500000ll) {
                || nowUs > mLastStallReportUs + 100000ll) {
            sp<AMessage> msg = mNotify->dup();
            msg->setInt32("sessionID", mSessionID);
            msg->setInt32("reason", kWhatNetworkStall);
+7 −7
Original line number Diff line number Diff line
@@ -47,7 +47,8 @@ MediaReceiver::~MediaReceiver() {
}

ssize_t MediaReceiver::addTrack(
        RTPReceiver::TransportMode transportMode,
        RTPReceiver::TransportMode rtpMode,
        RTPReceiver::TransportMode rtcpMode,
        int32_t *localRTPPort) {
    if (mMode != MODE_UNDEFINED) {
        return INVALID_OPERATION;
@@ -74,10 +75,8 @@ ssize_t MediaReceiver::addTrack(
            97, RTPReceiver::PACKETIZATION_H264);

    status_t err = info.mReceiver->initAsync(
            transportMode,  // rtpMode
            transportMode == RTPReceiver::TRANSPORT_UDP
                ? transportMode
                : RTPReceiver::TRANSPORT_NONE,  // rtcpMode
            rtpMode,
            rtcpMode,
            localRTPPort);

    if (err != OK) {
@@ -314,13 +313,14 @@ void MediaReceiver::postAccessUnit(
    notify->post();
}

status_t MediaReceiver::notifyLateness(size_t trackIndex, int64_t latenessUs) {
status_t MediaReceiver::informSender(
        size_t trackIndex, const sp<AMessage> &params) {
    if (trackIndex >= mTrackInfos.size()) {
        return -ERANGE;
    }

    TrackInfo *info = &mTrackInfos.editItemAt(trackIndex);
    return info->mReceiver->notifyLateness(latenessUs);
    return info->mReceiver->informSender(params);
}

}  // namespace android
+3 −2
Original line number Diff line number Diff line
@@ -43,7 +43,8 @@ struct MediaReceiver : public AHandler {
            const sp<AMessage> &notify);

    ssize_t addTrack(
            RTPReceiver::TransportMode transportMode,
            RTPReceiver::TransportMode rtpMode,
            RTPReceiver::TransportMode rtcpMode,
            int32_t *localRTPPort);

    status_t connectTrack(
@@ -60,7 +61,7 @@ struct MediaReceiver : public AHandler {
    };
    status_t initAsync(Mode mode);

    status_t notifyLateness(size_t trackIndex, int64_t latenessUs);
    status_t informSender(size_t trackIndex, const sp<AMessage> &params);

protected:
    virtual void onMessageReceived(const sp<AMessage> &msg);
+22 −10
Original line number Diff line number Diff line
@@ -85,10 +85,11 @@ ssize_t MediaSender::addTrack(const sp<AMessage> &format, uint32_t flags) {

status_t MediaSender::initAsync(
        ssize_t trackIndex,
        RTPSender::TransportMode transportMode,
        const char *remoteHost,
        int32_t remoteRTPPort,
        RTPSender::TransportMode rtpMode,
        int32_t remoteRTCPPort,
        RTPSender::TransportMode rtcpMode,
        int32_t *localRTPPort) {
    if (trackIndex < 0) {
        if (mMode != MODE_UNDEFINED) {
@@ -126,12 +127,9 @@ status_t MediaSender::initAsync(
            err = mTSSender->initAsync(
                    remoteHost,
                    remoteRTPPort,
                    transportMode,  // rtpMode
                    rtpMode,
                    remoteRTCPPort,
                    (transportMode == RTPSender::TRANSPORT_UDP
                        && remoteRTCPPort >= 0)
                        ? transportMode
                        : RTPSender::TRANSPORT_NONE,  // rtcpMode
                    rtcpMode,
                    localRTPPort);

            if (err != OK) {
@@ -180,11 +178,9 @@ status_t MediaSender::initAsync(
    status_t err = info->mSender->initAsync(
            remoteHost,
            remoteRTPPort,
            transportMode,  // rtpMode
            rtpMode,
            remoteRTCPPort,
            (transportMode == RTPSender::TRANSPORT_UDP && remoteRTCPPort >= 0)
                ? transportMode
                : RTPSender::TRANSPORT_NONE,  // rtcpMode
            rtcpMode,
            localRTPPort);

    if (err != OK) {
@@ -345,6 +341,22 @@ void MediaSender::onSenderNotify(const sp<AMessage> &msg) {
            break;
        }

        case kWhatInformSender:
        {
            int64_t avgLatencyUs;
            CHECK(msg->findInt64("avgLatencyUs", &avgLatencyUs));

            int64_t maxLatencyUs;
            CHECK(msg->findInt64("maxLatencyUs", &maxLatencyUs));

            sp<AMessage> notify = mNotify->dup();
            notify->setInt32("what", kWhatInformSender);
            notify->setInt64("avgLatencyUs", avgLatencyUs);
            notify->setInt64("maxLatencyUs", maxLatencyUs);
            notify->post();
            break;
        }

        default:
            TRESPASS();
    }
+3 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ struct MediaSender : public AHandler {
        kWhatInitDone,
        kWhatError,
        kWhatNetworkStall,
        kWhatInformSender,
    };

    MediaSender(
@@ -59,10 +60,11 @@ struct MediaSender : public AHandler {
    // If trackIndex == -1, initialize for transport stream muxing.
    status_t initAsync(
            ssize_t trackIndex,
            RTPSender::TransportMode transportMode,
            const char *remoteHost,
            int32_t remoteRTPPort,
            RTPSender::TransportMode rtpMode,
            int32_t remoteRTCPPort,
            RTPSender::TransportMode rtcpMode,
            int32_t *localRTPPort);

    status_t queueAccessUnit(
Loading