소스 검색

fix[packet]: fix packet partition and eoi logic

Change-Id: I73782a3bfe989fbc35cdbeff60067e6971b41681
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
xiaoxu.chen 3 주 전
부모
커밋
c13c56305d
3개의 변경된 파일5개의 추가작업 그리고 6개의 파일을 삭제
  1. 0 4
      kmpp/kmpp.c
  2. 3 0
      mpp/base/inc/mpp_packet_impl.h
  3. 2 2
      mpp/base/mpp_packet.cpp

+ 0 - 4
kmpp/kmpp.c

@@ -32,10 +32,6 @@
 #include "mpp_vcodec_client.h"
 #include "mpp_enc_cfg_impl.h"
 
-#define MPP_PACKET_FLAG_INTRA           (0x00000010)
-#define MPP_PACKET_FLAG_PARTITION       (0x00000020)
-#define MPP_PACKET_FLAG_EOI             (0x00000040)
-
 typedef struct KmppFrameInfos_t {
     RK_U32  width;
     RK_U32  height;

+ 3 - 0
mpp/base/inc/mpp_packet_impl.h

@@ -22,6 +22,9 @@
 #define MPP_PACKET_FLAG_EOS             (0x00000001)
 #define MPP_PACKET_FLAG_EXTRA_DATA      (0x00000002)
 #define MPP_PACKET_FLAG_INTERNAL        (0x00000004)
+#define MPP_PACKET_FLAG_INTRA           (0x00000010)
+#define MPP_PACKET_FLAG_PARTITION       (0x00000020)
+#define MPP_PACKET_FLAG_EOI             (0x00000040)
 
 #define MPP_PKT_SEG_CNT_DEFAULT         8
 

+ 2 - 2
mpp/base/mpp_packet.cpp

@@ -355,7 +355,7 @@ RK_U32 mpp_packet_is_partition(const MppPacket packet)
 
     MppPacketImpl *p = (MppPacketImpl *)packet;
 
-    return p->status.partition;
+    return (p->status.partition) || (p->flag & MPP_PACKET_FLAG_PARTITION);
 }
 
 RK_U32 mpp_packet_is_soi(const MppPacket packet)
@@ -375,7 +375,7 @@ RK_U32 mpp_packet_is_eoi(const MppPacket packet)
 
     MppPacketImpl *p = (MppPacketImpl *)packet;
 
-    return p->status.eoi;
+    return (p->status.eoi) || (p->flag & MPP_PACKET_FLAG_EOI);
 }
 
 MPP_RET mpp_packet_read(MppPacket packet, size_t offset, void *data, size_t size)