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

Commit 6f8530cb authored by Byeongjo Park's avatar Byeongjo Park Committed by Automerger Merge Worker
Browse files

VT: ASessionDescription: Added SDPStringFactory. am: c70c27d1

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/952479

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I74feed602b5334276c6a28f0d4ead819df2f9841
parents d2e75ec2 c70c27d1
Loading
Loading
Loading
Loading
+59 −0
Original line number Original line Diff line number Diff line
@@ -345,5 +345,64 @@ bool ASessionDescription::parseNTPRange(
    return *npt2 > *npt1;
    return *npt2 > *npt1;
}
}


// static
void ASessionDescription::SDPStringFactory(AString &sdp,
    const char *ip, bool isAudio, unsigned port, unsigned payloadType,
    unsigned as, const char *codec, const char *fmtp, int32_t width, int32_t height)
{
    bool isIPv4 = (AString(ip).find("::") == -1) ? true : false;
    sdp.clear();
    sdp.append("v=0\r\n");

    sdp.append("a=range:npt=now-\r\n");

    sdp.append("m=");
    sdp.append(isAudio ? "audio " : "video ");
    sdp.append(port);
    sdp.append(" RTP/AVP ");
    sdp.append(payloadType);
    sdp.append("\r\n");

    sdp.append("c= IN IP");
    if(isIPv4)
     sdp.append("4 ");
    else
     sdp.append("6 ");
    sdp.append(ip);
    sdp.append("\r\n");

    sdp.append("b=AS:");
    sdp.append(as > 0 ? as : 960);
    sdp.append("\r\n");

    sdp.append("a=rtpmap:");
    sdp.append(payloadType);
    sdp.append(" ");
    sdp.append(codec);
    sdp.append("/");
    sdp.append(isAudio ? "8000" : "90000");
    sdp.append("\r\n");

    if(fmtp != NULL) {
        sdp.append("a=fmtp:");
        sdp.append(payloadType);
        sdp.append(" ");
        sdp.append(fmtp);
        sdp.append("\r\n");
    }

    if(width > 0 && height > 0) {
        sdp.append("a=framesize:");
        sdp.append(payloadType);
        sdp.append(" ");
        sdp.append(width);
        sdp.append("-");
        sdp.append(height);
        sdp.append("\r\n");
    }

    ALOGV("SDPStringFactory => %s", sdp.c_str());
}

}  // namespace android
}  // namespace android
+3 −0
Original line number Original line Diff line number Diff line
@@ -63,6 +63,9 @@ struct ASessionDescription : public RefBase {
    // i.e. we have a fixed duration, otherwise this is live streaming.
    // i.e. we have a fixed duration, otherwise this is live streaming.
    static bool parseNTPRange(const char *s, float *npt1, float *npt2);
    static bool parseNTPRange(const char *s, float *npt1, float *npt2);


    static void SDPStringFactory(AString &sdp, const char *ip, bool isAudio, unsigned port,
        unsigned payloadType, unsigned as, const char *codec, const char *fmtp = NULL,
        int32_t width = 0, int32_t height = 0);
protected:
protected:
    virtual ~ASessionDescription();
    virtual ~ASessionDescription();