Classes with virtual methods should have virtual destructors too.
diff --git a/codecs_v2/omx/omx_proxy/src/pv_omx_proxied_interface.h b/codecs_v2/omx/omx_proxy/src/pv_omx_proxied_interface.h
index 74703e1..dcd600a 100644
--- a/codecs_v2/omx/omx_proxy/src/pv_omx_proxied_interface.h
+++ b/codecs_v2/omx/omx_proxy/src/pv_omx_proxied_interface.h
@@ -55,6 +55,7 @@
 class PVMainProxy_OMX
 {
     public:
+        virtual ~PVMainProxy_OMX() {}
 
         /**
         ** This call registers a proxied interface with the main
@@ -209,6 +210,7 @@
 class PVProxiedEngine_OMX
 {
     public:
+        virtual ~PVProxiedEngine_OMX() {}
 
         /**
         ** Create PV logger appenders for the PV thread.
@@ -278,6 +280,8 @@
 class PVProxiedInterfaceServer_OMX
 {
     public:
+        virtual ~PVProxiedInterfaceServer_OMX() {}
+
         /**
         ** PVMainProxy calls this under the PV thread to process a
         ** command off the queue.
@@ -307,6 +311,8 @@
 class PVProxiedInterfaceClient_OMX
 {
     public:
+        virtual ~PVProxiedInterfaceClient_OMX() {}
+
         /**
         ** PVMainProxy calls this to process a notification off the
         ** queue.
diff --git a/oscl/oscl/osclbase/src/oscl_defalloc.h b/oscl/oscl/osclbase/src/oscl_defalloc.h
index 0b0a31d..1fd6a7d 100644
--- a/oscl/oscl/osclbase/src/oscl_defalloc.h
+++ b/oscl/oscl/osclbase/src/oscl_defalloc.h
@@ -78,6 +78,7 @@
 class Oscl_Alloc
 {
     public:
+        virtual ~Oscl_Alloc() {}
         virtual OsclAny* allocate(const uint32 size) = 0;
 
         //Allocator with file name and line number inputs to aid memory auditing.
@@ -123,6 +124,7 @@
 class OsclDestructDealloc
 {
     public:
+        virtual ~OsclDestructDealloc() {}
         virtual void destruct_and_dealloc(OsclAny* ptr) = 0;
 };
 
diff --git a/oscl/oscl/osclbase/src/oscl_opaque_type.h b/oscl/oscl/osclbase/src/oscl_opaque_type.h
index 29fbf34..84b37bc 100644
--- a/oscl/oscl/osclbase/src/oscl_opaque_type.h
+++ b/oscl/oscl/osclbase/src/oscl_opaque_type.h
@@ -47,6 +47,8 @@
 class Oscl_Opaque_Type_Alloc
 {
     public:
+        virtual ~Oscl_Opaque_Type_Alloc() {}
+
         /**
          * Construct element at p using element at init_val as the initial value.
          * Both pointers must be non-NULL.
@@ -75,6 +77,8 @@
 class Oscl_Opaque_Type_Compare
 {
     public:
+        virtual ~Oscl_Opaque_Type_Compare() {}
+
         /**
          * Swap element at "a" with element at "b".
          * Both pointers must be non-NULL.
@@ -100,6 +104,8 @@
 class Oscl_Opaque_Type_Alloc_LL
 {
     public:
+        virtual ~Oscl_Opaque_Type_Alloc_LL() {}
+
         /**
          * Construct element at p using element at init_val as the initial value.
          * Both pointers must be non-NULL.
diff --git a/pvmi/content_policy_manager/plugins/common/include/pvmf_cpmplugin_interface.h b/pvmi/content_policy_manager/plugins/common/include/pvmf_cpmplugin_interface.h
index b1c47ab..b1c4f5d 100644
--- a/pvmi/content_policy_manager/plugins/common/include/pvmf_cpmplugin_interface.h
+++ b/pvmi/content_policy_manager/plugins/common/include/pvmf_cpmplugin_interface.h
@@ -281,6 +281,7 @@
 class PVMFCPMPluginRegistryPopulator
 {
     public:
+        virtual ~PVMFCPMPluginRegistryPopulator() {}
         /*
         ** GetFactoryAndMimeString.  Called by CPM framework to retrieve the plugin factory and
         **   plugin mimestring.  Note this will be called twice-- when creating the plugin and
diff --git a/pvmi/pvmf/include/pvmf_media_clock.h b/pvmi/pvmf/include/pvmf_media_clock.h
index a1c7e18..04ae5f8 100644
--- a/pvmi/pvmf/include/pvmf_media_clock.h
+++ b/pvmi/pvmf/include/pvmf_media_clock.h
@@ -115,6 +115,7 @@
 class PVMFMediaClockNotificationsObsBase
 {
     public:
+        virtual ~PVMFMediaClockNotificationsObsBase() {}
         /**
          * This event happens when the clock has been Reset or destroyed and notification
          * interface object that observer is using has been destroyed. Observer should
diff --git a/pvmi/pvmf/include/pvmf_node_interface.h b/pvmi/pvmf/include/pvmf_node_interface.h
index f64287b..cba1a83 100644
--- a/pvmi/pvmf/include/pvmf_node_interface.h
+++ b/pvmi/pvmf/include/pvmf_node_interface.h
@@ -227,6 +227,7 @@
 class PVMFPortActivityHandler
 {
     public:
+        virtual ~PVMFPortActivityHandler() {}
         virtual void HandlePortActivity(const PVMFPortActivity &) = 0;
 };
 
diff --git a/pvmi/pvmf/include/pvmi_data_stream_interface.h b/pvmi/pvmf/include/pvmi_data_stream_interface.h
index f52c5ba..8ee3b74 100644
--- a/pvmi/pvmf/include/pvmi_data_stream_interface.h
+++ b/pvmi/pvmf/include/pvmi_data_stream_interface.h
@@ -114,6 +114,8 @@
 {
     public:
         virtual PvmiDataStreamStatus GetStreamReadCapacity(uint32& aCapacity) = 0;
+
+        virtual ~PVMFDataStreamReadCapacityObserver() {}
 };