shithub: openh264

Download patch

ref: b3dedb3f376fa9ff0044445f0bede3fcdca581b2
parent: f49fa81d4259505d9b69c0abfa7bd5abf2994181
author: ruil2 <ruil2@cisco.com>
date: Mon Jun 23 09:16:15 EDT 2014

modify the interface for delivery info and add some comments

--- a/codec/api/svc/codec_app_def.h
+++ b/codec/api/svc/codec_app_def.h
@@ -85,7 +85,7 @@
   ENCODER_OPTION_PROFILE,
   ENCODER_OPTION_LEVEL,
   ENCODER_OPTION_NUMBER_REF,
-  ENCODER_OPTION_DROP_NUM,
+  ENCODER_OPTION_DELIVERY_STATUS,
 
   ENCODER_LTR_RECOVERY_REQUEST,
   ENCODER_LTR_MARKING_FEEDBACK,
@@ -414,4 +414,9 @@
   ELevelIdc uiLevelIdc;    //the level info
 } SLevelInfo;
 
+typedef struct TagDeliveryStatus{
+  int iDropNum;      //the number of video frames that are dropped continuously before delivery to encoder, which is used by screen content.
+  int iDropFrameType; // the frame type that is dropped 
+  int iDropFrameSize; // the frame size that is dropped
+}SDeliveryStatus;
 #endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
--- a/codec/encoder/plus/src/welsEncoderExt.cpp
+++ b/codec/encoder/plus/src/welsEncoderExt.cpp
@@ -935,9 +935,9 @@
     CheckReferenceNumSetting (iValue);
   }
   break;
-  case ENCODER_OPTION_DROP_NUM: {
-    int32_t iValue = * ((int32_t*)pOption);
-    m_pEncContext->iDropNumber = iValue;
+  case ENCODER_OPTION_DELIVERY_STATUS: {
+    SDeliveryStatus *pValue = (static_cast<SDeliveryStatus*>(pOption));
+    m_pEncContext->iDropNumber = pValue->iDropNum;
   }
   break;
   default: