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

Commit 42d02772 authored by Byeongjo Park's avatar Byeongjo Park
Browse files

VT: provide last cvo value if it's not present.



[Problem] video has been rotated wrongly for
  very short time then recovered quickly.
[Cause] CCodec requires rotation value for every frame.
  if not present, it is showing default rotation.
[Solution] Provides last cvo value if cvo can not
  be parsed due to packet loss.

Bug: 183578712

Signed-off-by: default avatarByeongjo Park <bjo.park@samsung.com>
Change-Id: Ifa4d15a5dfa07dcef808b3ca685cf5ee6aa5f8e9
parent fd28aa4e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ AAVCAssembler::AAVCAssembler(const sp<AMessage> &notify)
      mNextExpectedSeqNo(0),
      mAccessUnitDamaged(false),
      mFirstIFrameProvided(false),
      mLastCvo(-1),
      mLastIFrameProvidedAtMs(0),
      mLastRtpTimeJitterDataUs(0),
      mWidth(0),
@@ -544,6 +545,9 @@ ARTPAssembler::AssemblyStatus AAVCAssembler::addFragmentedNALUnit(

    if (cvo >= 0) {
        unit->meta()->setInt32("cvo", cvo);
        mLastCvo = cvo;
    } else if (mLastCvo >= 0) {
        unit->meta()->setInt32("cvo", mLastCvo);
    }
    if (source != nullptr) {
        unit->meta()->setObject("source", source);
+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ private:
    uint32_t mNextExpectedSeqNo;
    bool mAccessUnitDamaged;
    bool mFirstIFrameProvided;
    int32_t mLastCvo;
    uint64_t mLastIFrameProvidedAtMs;
    int64_t mLastRtpTimeJitterDataUs;
    int32_t mWidth;
+4 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ AHEVCAssembler::AHEVCAssembler(const sp<AMessage> &notify)
      mNextExpectedSeqNo(0),
      mAccessUnitDamaged(false),
      mFirstIFrameProvided(false),
      mLastCvo(-1),
      mLastIFrameProvidedAtMs(0),
      mLastRtpTimeJitterDataUs(0),
      mWidth(0),
@@ -567,6 +568,9 @@ ARTPAssembler::AssemblyStatus AHEVCAssembler::addFragmentedNALUnit(

    if (cvo >= 0) {
        unit->meta()->setInt32("cvo", cvo);
        mLastCvo = cvo;
    } else if (mLastCvo >= 0) {
        unit->meta()->setInt32("cvo", mLastCvo);
    }

    addSingleNALUnit(unit);
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ private:
    uint32_t mNextExpectedSeqNo;
    bool mAccessUnitDamaged;
    bool mFirstIFrameProvided;
    int32_t mLastCvo;
    uint64_t mLastIFrameProvidedAtMs;
    int64_t mLastRtpTimeJitterDataUs;
    int32_t mWidth;