diff --git a/eva/vqec-dp/outputshim/vqec_sink_api.h b/eva/vqec-dp/outputshim/vqec_sink_api.h index 0c5e67f..6b92145 100644 --- a/eva/vqec-dp/outputshim/vqec_sink_api.h +++ b/eva/vqec-dp/outputshim/vqec_sink_api.h @@ -262,7 +262,7 @@ vqec_sink_read_internal (struct vqec_sink_ *sink, #ifdef HAVE_FCC if(pak->type == VQEC_PAK_TYPE_APP) { VQEC_DP_ASSERT_FATAL(iobuf->buf_wrlen == 0, - "buffer write length is 0"); + "buffer write length is not 0"); iobuf->buf_flags |= VQEC_DP_BUF_FLAGS_APP; } #endif /* HAVE_FCC */ diff --git a/eva/vqec-dp/outputshim/vqec_sink_common.c b/eva/vqec-dp/outputshim/vqec_sink_common.c index ba5e2a0..4d2112a 100644 --- a/eva/vqec-dp/outputshim/vqec_sink_common.c +++ b/eva/vqec-dp/outputshim/vqec_sink_common.c @@ -234,6 +234,11 @@ int32_t vqec_sink_read (struct vqec_sink_ *sink, break; } + if (iobuf->buf_wrlen != 0 && pak_hdr->pak->type == VQEC_PAK_TYPE_APP) { + /* Never deQ an APP packet if the iobuf is not empty */ + break; + } + /* only deQ when enough room to copy packet */ if ((iobuf->buf_len - iobuf->buf_wrlen) >= vqec_pak_get_content_len(pak_hdr->pak)) {