[Common-cvs] include hxiids.h, 1.132.2.16.2.15, 1.132.2.16.2.16 hxformt.h, 1.10, 1.10.84.1
xzhao at helixcommunity.org xzhao at helixcommunity.orgUpdate of /cvsroot/common/include
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv8242
Modified Files:
Tag: hxclient_3_6_1_atlas
hxiids.h hxformt.h
Log Message:
Bug 14365: Fix MKV memory leak
> * make a new interface to let FF know core's subscription;
> * disable the queue of unactive track, so that the memory footprint is under control
> * flush old track queue and re-fill new track queue when switch happens;
> * Some minor memory leak as I said in previous mail.
Index: hxformt.h
===================================================================
RCS file: /cvsroot/common/include/hxformt.h,v
retrieving revision 1.10
retrieving revision 1.10.84.1
diff -u -d -r1.10 -r1.10.84.1
--- hxformt.h 6 Jul 2007 20:43:41 -0000 1.10
+++ hxformt.h 20 Jan 2012 01:55:23 -0000 1.10.84.1
@@ -1146,6 +1146,42 @@
STDMETHOD(FindFileFormat) (THIS_ REF(IHXFileFormatObject*) rpFileFormat) PURE;
};
+/****************************************************************************
+ *
+ * Interface:
+ *
+ * IHXTrackSubscribe
+ *
+ * Purpose: In case of multiple audio/subtitle tracks exist in one file, FF
+ * needs to be notified about Core's subscription, such as select stream 1
+ * (English audio) instead of stream 3 (Chinese audio)
+ *
+ * Note: This interface can also be used to notify Core's first selection
+ * When playing starts. If the old stream number is the 0xFFFF, then it means
+ * first time selection, no need to handle the old stream then.
+ *
+ * IID_IHXFileFormatFinder:
+ *
+ * {cb6fc82d-67e2-45e2-98e9-5ec36f53ef3e}
+ *
+ */
+DEFINE_GUID(IID_IHXTrackSubscribe, 0xcb6fc82d, 0x67e2, 0x45e2,
+ 0x98, 0xe9, 0x5e, 0xc3, 0x6f, 0x53, 0xef, 0x3e);
+
+#undef INTERFACE
+#define INTERFACE IHXTrackSubscribe
+
+DECLARE_INTERFACE_(IHXTrackSubscribe, IUnknown)
+{
+ // IUnknown method
+ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj) PURE;
+ STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG32,Release) (THIS) PURE;
+
+ // IHXTrackSubscribe methods
+ STDMETHOD(SetTrackActive) (THIS_ UINT16 unStrmNum, HXBOOL bActive) PURE;
+};
+
#include "hxcomptr.h"
DEFINE_SMART_PTR(IHXFileFormatObject)
DEFINE_SMART_PTR(IHXBroadcastFormatObject)
@@ -1166,5 +1202,6 @@
DEFINE_SMART_PTR(IHXSeekByPacket)
DEFINE_SMART_PTR(IHXSeekByPacketResponse)
DEFINE_SMART_PTR(IHXFileFormatFinder)
+DEFINE_SMART_PTR(IHXTrackSubscribe)
#endif /* _HXFORMT_H_ */
Index: hxiids.h
===================================================================
RCS file: /cvsroot/common/include/hxiids.h,v
retrieving revision 1.132.2.16.2.15
retrieving revision 1.132.2.16.2.16
diff -u -d -r1.132.2.16.2.15 -r1.132.2.16.2.16
--- hxiids.h 20 Dec 2011 06:23:33 -0000 1.132.2.16.2.15
+++ hxiids.h 20 Jan 2012 01:55:23 -0000 1.132.2.16.2.16
@@ -816,6 +816,7 @@
DEFINE_GUID_ENUM(IID_IHXSyncFileFormatObject, 0x00000F0C, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59)
DEFINE_GUID_ENUM(IID_IHXFileFormatFinder, 0x5d137b92, 0x987b, 0x4faf, 0x9a, 0xdf,0xd5, 0xa0, 0x2e, 0x39, 0x9d, 0xef)
+DEFINE_GUID_ENUM(IID_IHXTrackSubscribe, 0xcb6fc82d, 0x67e2, 0x45e2, 0x98, 0xe9, 0x5e, 0xc3, 0x6f, 0x53, 0xef, 0x3e)
#if defined(HELIX_FEATURE_ASF_FILEFORMAT_RTSP)
#include "hxasfiids.h"
#endif