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

Commit 27b1c0b6 authored by Byeongjo Park's avatar Byeongjo Park Committed by Lajos Molnar
Browse files

VT: SFR: added parameters to handle RTP IP Addresses through setParameters().



Added following parameters to set ip addresses for RTP scenarios.

- rtp-param-local-ip:
  rtp-param-local-port: local ip/port to be bound a socket as per SDP negotation.

- rtp-param-remote-ip:
  rtp-param-remote-port: remote ip/port pair where to send RTP packets.

Merged-In: I8b6d8492c1a6e5eeba88d4829e4815227f083edb
Change-Id: I8b6d8492c1a6e5eeba88d4829e4815227f083edb
Signed-off-by: default avatarByeongjo Park <bjo.park@samsung.com>
Signed-off-by: default avatarKim Sungyeon <sy85.kim@samsung.com>
parent 65ff0dfa
Loading
Loading
Loading
Loading
+43 −1
Original line number Diff line number Diff line
@@ -779,6 +779,34 @@ status_t StagefrightRecorder::setParamGeoDataLatitude(
    return OK;
}

status_t StagefrightRecorder::setParamRtpLocalIp(const String8 &localIp) {
    ALOGV("setParamVideoLocalIp: %s", localIp.string());

    mLocalIp.setTo(localIp.string());
    return OK;
}

status_t StagefrightRecorder::setParamRtpLocalPort(int32_t localPort) {
    ALOGV("setParamVideoLocalPort: %d", localPort);

    mLocalPort = localPort;
    return OK;
}

status_t StagefrightRecorder::setParamRtpRemoteIp(const String8 &remoteIp) {
    ALOGV("setParamVideoRemoteIp: %s", remoteIp.string());

    mRemoteIp.setTo(remoteIp.string());
    return OK;
}

status_t StagefrightRecorder::setParamRtpRemotePort(int32_t remotePort) {
    ALOGV("setParamVideoRemotePort: %d", remotePort);

    mRemotePort = remotePort;
    return OK;
}

status_t StagefrightRecorder::setParameter(
        const String8 &key, const String8 &value) {
    ALOGV("setParameter: key (%s) => value (%s)", key.string(), value.string());
@@ -887,6 +915,20 @@ status_t StagefrightRecorder::setParameter(
        if (safe_strtod(value.string(), &fps)) {
            return setParamCaptureFps(fps);
        }
    } else if (key == "rtp-param-local-ip") {
        return setParamRtpLocalIp(value);
    } else if (key == "rtp-param-local-port") {
        int32_t localPort;
        if (safe_strtoi32(value.string(), &localPort)) {
            return setParamRtpLocalPort(localPort);
        }
    } else if (key == "rtp-param-remote-ip") {
        return setParamRtpRemoteIp(value);
    } else if (key == "rtp-param-remote-port") {
        int32_t remotePort;
        if (safe_strtoi32(value.string(), &remotePort)) {
            return setParamRtpRemotePort(remotePort);
        }
    } else {
        ALOGE("setParameter: failed to find key %s", key.string());
    }
@@ -1333,7 +1375,7 @@ status_t StagefrightRecorder::setupRTPRecording() {
        mVideoEncoderSource = source;
    }

    mWriter = new ARTPWriter(mOutputFd);
    mWriter = new ARTPWriter(mOutputFd, mLocalIp, mLocalPort, mRemoteIp, mRemotePort);
    mWriter->addSource(source);
    mWriter->setListener(mListener);

+8 −0
Original line number Diff line number Diff line
@@ -138,6 +138,10 @@ private:
    int32_t mLongitudex10000;
    int32_t mStartTimeOffsetMs;
    int32_t mTotalBitRate;
    String8 mLocalIp;
    String8 mRemoteIp;
    int32_t mLocalPort;
    int32_t mRemotePort;

    int64_t mDurationRecordedUs;
    int64_t mStartedRecordingUs;
@@ -219,6 +223,10 @@ private:
    status_t setParamMovieTimeScale(int32_t timeScale);
    status_t setParamGeoDataLongitude(int64_t longitudex10000);
    status_t setParamGeoDataLatitude(int64_t latitudex10000);
    status_t setParamRtpLocalIp(const String8 &localIp);
    status_t setParamRtpLocalPort(int32_t localPort);
    status_t setParamRtpRemoteIp(const String8 &remoteIp);
    status_t setParamRtpRemotePort(int32_t remotePort);
    void clipVideoBitRate();
    void clipVideoFrameRate();
    void clipVideoFrameWidth();