Loading media/codec2/sfplugin/Codec2Buffer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -491,7 +491,7 @@ public: * align(mHeight, 64) / plane.rowSampling; } if ((maxPtr - minPtr + 1) <= planeSize) { if (minPtr == mView.data()[0] && (maxPtr - minPtr + 1) <= planeSize) { // FIXME: this is risky as reading/writing data out of bound results // in an undefined behavior, but gralloc does assume a // contiguous mapping Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +44 −0 Original line number Diff line number Diff line Loading @@ -2856,10 +2856,43 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { CHECK(msg->findInt32("payload-type", &payloadType)); int32_t rtpSeq = 0, rtpTime = 0; int64_t ntpTime = 0, recvTimeUs = 0; Parcel in; in.writeInt32(payloadType); switch (payloadType) { case ARTPSource::RTP_FIRST_PACKET: { CHECK(msg->findInt32("rtp-time", &rtpTime)); CHECK(msg->findInt32("rtp-seq-num", &rtpSeq)); CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); in.writeInt32(rtpTime); in.writeInt32(rtpSeq); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); break; } case ARTPSource::RTCP_FIRST_PACKET: { CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); break; } case ARTPSource::RTCP_SR: { CHECK(msg->findInt32("rtp-time", &rtpTime)); CHECK(msg->findInt64("ntp-time", &ntpTime)); CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); in.writeInt32(rtpTime); in.writeInt32(ntpTime >> 32); in.writeInt32(ntpTime & 0xFFFFFFFF); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); break; } case ARTPSource::RTCP_TSFB: // RTCP TSFB case ARTPSource::RTCP_PSFB: // RTCP PSFB case ARTPSource::RTP_AUTODOWN: Loading @@ -2882,6 +2915,8 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { int32_t feedbackType, bitrate; int32_t highestSeqNum, baseSeqNum, prevExpected; int32_t numBufRecv, prevNumBufRecv; int32_t latestRtpTime, jbTimeMs, rtpRtcpSrTimeGapMs; int64_t recvTimeUs; CHECK(msg->findInt32("feedback-type", &feedbackType)); CHECK(msg->findInt32("bit-rate", &bitrate)); CHECK(msg->findInt32("highest-seq-num", &highestSeqNum)); Loading @@ -2889,6 +2924,10 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { CHECK(msg->findInt32("prev-expected", &prevExpected)); CHECK(msg->findInt32("num-buf-recv", &numBufRecv)); CHECK(msg->findInt32("prev-num-buf-recv", &prevNumBufRecv)); CHECK(msg->findInt32("latest-rtp-time", &latestRtpTime)); CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); CHECK(msg->findInt32("rtp-jitter-time-ms", &jbTimeMs)); CHECK(msg->findInt32("rtp-rtcpsr-time-gap-ms", &rtpRtcpSrTimeGapMs)); in.writeInt32(feedbackType); in.writeInt32(bitrate); in.writeInt32(highestSeqNum); Loading @@ -2896,6 +2935,11 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { in.writeInt32(prevExpected); in.writeInt32(numBufRecv); in.writeInt32(prevNumBufRecv); in.writeInt32(latestRtpTime); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); in.writeInt32(jbTimeMs); in.writeInt32(rtpRtcpSrTimeGapMs); break; } case ARTPSource::RTP_CVO: Loading media/libmediaplayerservice/nuplayer/RTPSource.cpp +2 −12 Original line number Diff line number Diff line Loading @@ -395,23 +395,13 @@ void NuPlayer::RTPSource::onMessageReceived(const sp<AMessage> &msg) { CHECK(msg->findInt64("ntp-time", (int64_t *)&ntpTime)); onTimeUpdate(trackIndex, rtpTime, ntpTime); break; } int32_t firstRTCP; if (msg->findInt32("first-rtcp", &firstRTCP)) { // There won't be an access unit here, it's just a notification // that the data communication worked since we got the first // rtcp packet. ALOGV("first-rtcp"); break; } int32_t IMSRxNotice; if (msg->findInt32("rtcp-event", &IMSRxNotice)) { int32_t payloadType, feedbackType; int32_t payloadType = 0, feedbackType = 0; CHECK(msg->findInt32("payload-type", &payloadType)); CHECK(msg->findInt32("feedback-type", &feedbackType)); msg->findInt32("feedback-type", &feedbackType); sp<AMessage> notify = dupNotify(); notify->setInt32("what", kWhatIMSRxNotice); Loading media/libstagefright/CodecBase.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -40,4 +40,31 @@ void BufferChannelBase::IMemoryToSharedBuffer( buf->size = size; } status_t CodecBase::querySupportedParameters(std::vector<std::string> *names) { if (names == nullptr) { return BAD_VALUE; } names->clear(); return OK; } status_t CodecBase::describeParameter(const std::string &, CodecParameterDescriptor *) { return ERROR_UNSUPPORTED; } status_t CodecBase::subscribeToParameters(const std::vector<std::string> &names) { if (names.empty()) { return OK; } return ERROR_UNSUPPORTED; } status_t CodecBase::unsubscribeFromParameters(const std::vector<std::string> &names) { if (names.empty()) { return OK; } return ERROR_UNSUPPORTED; } } // namespace android media/libstagefright/include/media/stagefright/CodecBase.h +5 −15 Original line number Diff line number Diff line Loading @@ -252,9 +252,7 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * INVALID_OPERATION if already released; * ERROR_UNSUPPORTED if not supported. */ virtual status_t querySupportedParameters([[maybe_unused]] std::vector<std::string> *names) { return ERROR_UNSUPPORTED; } virtual status_t querySupportedParameters(std::vector<std::string> *names); /** * Fill |desc| with description of the parameter with |name|. * Loading @@ -267,10 +265,8 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * ERROR_UNSUPPORTED if not supported. */ virtual status_t describeParameter( [[maybe_unused]] const std::string &name, [[maybe_unused]] CodecParameterDescriptor *desc) { return ERROR_UNSUPPORTED; } const std::string &name, CodecParameterDescriptor *desc); /** * Subscribe to parameters in |names| and get output format change event * when they change. Loading @@ -281,10 +277,7 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * INVALID_OPERATION if already released; * ERROR_UNSUPPORTED if not supported. */ virtual status_t subscribeToParameters( [[maybe_unused]] const std::vector<std::string> &names) { return ERROR_UNSUPPORTED; } virtual status_t subscribeToParameters(const std::vector<std::string> &names); /** * Unsubscribe from parameters in |names| and no longer get * output format change event when they change. Loading @@ -295,10 +288,7 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * INVALID_OPERATION if already released; * ERROR_UNSUPPORTED if not supported. */ virtual status_t unsubscribeFromParameters( [[maybe_unused]] const std::vector<std::string> &names) { return ERROR_UNSUPPORTED; } virtual status_t unsubscribeFromParameters(const std::vector<std::string> &names); typedef CodecBase *(*CreateCodecFunc)(void); typedef PersistentSurface *(*CreateInputSurfaceFunc)(void); Loading Loading
media/codec2/sfplugin/Codec2Buffer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -491,7 +491,7 @@ public: * align(mHeight, 64) / plane.rowSampling; } if ((maxPtr - minPtr + 1) <= planeSize) { if (minPtr == mView.data()[0] && (maxPtr - minPtr + 1) <= planeSize) { // FIXME: this is risky as reading/writing data out of bound results // in an undefined behavior, but gralloc does assume a // contiguous mapping Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +44 −0 Original line number Diff line number Diff line Loading @@ -2856,10 +2856,43 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { CHECK(msg->findInt32("payload-type", &payloadType)); int32_t rtpSeq = 0, rtpTime = 0; int64_t ntpTime = 0, recvTimeUs = 0; Parcel in; in.writeInt32(payloadType); switch (payloadType) { case ARTPSource::RTP_FIRST_PACKET: { CHECK(msg->findInt32("rtp-time", &rtpTime)); CHECK(msg->findInt32("rtp-seq-num", &rtpSeq)); CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); in.writeInt32(rtpTime); in.writeInt32(rtpSeq); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); break; } case ARTPSource::RTCP_FIRST_PACKET: { CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); break; } case ARTPSource::RTCP_SR: { CHECK(msg->findInt32("rtp-time", &rtpTime)); CHECK(msg->findInt64("ntp-time", &ntpTime)); CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); in.writeInt32(rtpTime); in.writeInt32(ntpTime >> 32); in.writeInt32(ntpTime & 0xFFFFFFFF); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); break; } case ARTPSource::RTCP_TSFB: // RTCP TSFB case ARTPSource::RTCP_PSFB: // RTCP PSFB case ARTPSource::RTP_AUTODOWN: Loading @@ -2882,6 +2915,8 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { int32_t feedbackType, bitrate; int32_t highestSeqNum, baseSeqNum, prevExpected; int32_t numBufRecv, prevNumBufRecv; int32_t latestRtpTime, jbTimeMs, rtpRtcpSrTimeGapMs; int64_t recvTimeUs; CHECK(msg->findInt32("feedback-type", &feedbackType)); CHECK(msg->findInt32("bit-rate", &bitrate)); CHECK(msg->findInt32("highest-seq-num", &highestSeqNum)); Loading @@ -2889,6 +2924,10 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { CHECK(msg->findInt32("prev-expected", &prevExpected)); CHECK(msg->findInt32("num-buf-recv", &numBufRecv)); CHECK(msg->findInt32("prev-num-buf-recv", &prevNumBufRecv)); CHECK(msg->findInt32("latest-rtp-time", &latestRtpTime)); CHECK(msg->findInt64("recv-time-us", &recvTimeUs)); CHECK(msg->findInt32("rtp-jitter-time-ms", &jbTimeMs)); CHECK(msg->findInt32("rtp-rtcpsr-time-gap-ms", &rtpRtcpSrTimeGapMs)); in.writeInt32(feedbackType); in.writeInt32(bitrate); in.writeInt32(highestSeqNum); Loading @@ -2896,6 +2935,11 @@ void NuPlayer::sendIMSRxNotice(const sp<AMessage> &msg) { in.writeInt32(prevExpected); in.writeInt32(numBufRecv); in.writeInt32(prevNumBufRecv); in.writeInt32(latestRtpTime); in.writeInt32(recvTimeUs >> 32); in.writeInt32(recvTimeUs & 0xFFFFFFFF); in.writeInt32(jbTimeMs); in.writeInt32(rtpRtcpSrTimeGapMs); break; } case ARTPSource::RTP_CVO: Loading
media/libmediaplayerservice/nuplayer/RTPSource.cpp +2 −12 Original line number Diff line number Diff line Loading @@ -395,23 +395,13 @@ void NuPlayer::RTPSource::onMessageReceived(const sp<AMessage> &msg) { CHECK(msg->findInt64("ntp-time", (int64_t *)&ntpTime)); onTimeUpdate(trackIndex, rtpTime, ntpTime); break; } int32_t firstRTCP; if (msg->findInt32("first-rtcp", &firstRTCP)) { // There won't be an access unit here, it's just a notification // that the data communication worked since we got the first // rtcp packet. ALOGV("first-rtcp"); break; } int32_t IMSRxNotice; if (msg->findInt32("rtcp-event", &IMSRxNotice)) { int32_t payloadType, feedbackType; int32_t payloadType = 0, feedbackType = 0; CHECK(msg->findInt32("payload-type", &payloadType)); CHECK(msg->findInt32("feedback-type", &feedbackType)); msg->findInt32("feedback-type", &feedbackType); sp<AMessage> notify = dupNotify(); notify->setInt32("what", kWhatIMSRxNotice); Loading
media/libstagefright/CodecBase.cpp +27 −0 Original line number Diff line number Diff line Loading @@ -40,4 +40,31 @@ void BufferChannelBase::IMemoryToSharedBuffer( buf->size = size; } status_t CodecBase::querySupportedParameters(std::vector<std::string> *names) { if (names == nullptr) { return BAD_VALUE; } names->clear(); return OK; } status_t CodecBase::describeParameter(const std::string &, CodecParameterDescriptor *) { return ERROR_UNSUPPORTED; } status_t CodecBase::subscribeToParameters(const std::vector<std::string> &names) { if (names.empty()) { return OK; } return ERROR_UNSUPPORTED; } status_t CodecBase::unsubscribeFromParameters(const std::vector<std::string> &names) { if (names.empty()) { return OK; } return ERROR_UNSUPPORTED; } } // namespace android
media/libstagefright/include/media/stagefright/CodecBase.h +5 −15 Original line number Diff line number Diff line Loading @@ -252,9 +252,7 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * INVALID_OPERATION if already released; * ERROR_UNSUPPORTED if not supported. */ virtual status_t querySupportedParameters([[maybe_unused]] std::vector<std::string> *names) { return ERROR_UNSUPPORTED; } virtual status_t querySupportedParameters(std::vector<std::string> *names); /** * Fill |desc| with description of the parameter with |name|. * Loading @@ -267,10 +265,8 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * ERROR_UNSUPPORTED if not supported. */ virtual status_t describeParameter( [[maybe_unused]] const std::string &name, [[maybe_unused]] CodecParameterDescriptor *desc) { return ERROR_UNSUPPORTED; } const std::string &name, CodecParameterDescriptor *desc); /** * Subscribe to parameters in |names| and get output format change event * when they change. Loading @@ -281,10 +277,7 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * INVALID_OPERATION if already released; * ERROR_UNSUPPORTED if not supported. */ virtual status_t subscribeToParameters( [[maybe_unused]] const std::vector<std::string> &names) { return ERROR_UNSUPPORTED; } virtual status_t subscribeToParameters(const std::vector<std::string> &names); /** * Unsubscribe from parameters in |names| and no longer get * output format change event when they change. Loading @@ -295,10 +288,7 @@ struct CodecBase : public AHandler, /* static */ ColorUtils { * INVALID_OPERATION if already released; * ERROR_UNSUPPORTED if not supported. */ virtual status_t unsubscribeFromParameters( [[maybe_unused]] const std::vector<std::string> &names) { return ERROR_UNSUPPORTED; } virtual status_t unsubscribeFromParameters(const std::vector<std::string> &names); typedef CodecBase *(*CreateCodecFunc)(void); typedef PersistentSurface *(*CreateInputSurfaceFunc)(void); Loading