<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Digy</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Digy"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Digy/"/>
	<updated>2026-11-04T16:24:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12705</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12705"/>
		<updated>2008-10-31T21:40:12Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* Wrong vlcInstallDirectory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
             Mode mode,&lt;br /&gt;
             Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Wrong vlcInstallDirectory ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a .Net program using VLanControl is started from a network share like &amp;quot;\\server\share\program.exe&amp;quot;, &amp;quot;vlcInstallDirectory&amp;quot; is&lt;br /&gt;
calculated falsely. &lt;br /&gt;
&lt;br /&gt;
A solution can be like below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
static NativeLibVlc()&lt;br /&gt;
{&lt;br /&gt;
    &lt;br /&gt;
    /* - */ //NativeLibVlc.vlcInstallDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase).Substring(6);&lt;br /&gt;
    /* + */ NativeLibVlc.vlcInstallDirectory = Application.StartupPath;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12704</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12704"/>
		<updated>2008-10-31T21:37:38Z</updated>

		<summary type="html">&lt;p&gt;Digy: New section: Wrong vlcInstallDirectory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
             Mode mode,&lt;br /&gt;
             Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Wrong vlcInstallDirectory ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a .Net program using VLanControl is started from a network share like \\server\share\program.exe, vlcInstallDirectory is&lt;br /&gt;
calculated falsely. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
static NativeLibVlc()&lt;br /&gt;
{&lt;br /&gt;
    //NativeLibVlc.vlcInstallDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase).Substring(6);&lt;br /&gt;
    NativeLibVlc.vlcInstallDirectory = Application.StartupPath;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12703</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12703"/>
		<updated>2008-10-31T21:21:36Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
             Mode mode,&lt;br /&gt;
             Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12702</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12702"/>
		<updated>2008-10-31T21:20:44Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
             Mode mode,&lt;br /&gt;
             Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12701</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12701"/>
		<updated>2008-10-31T21:19:19Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate,  Mode mode,Int32 pos, Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12700</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12700"/>
		<updated>2008-10-31T21:18:56Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate,  &lt;br /&gt;
Mode mode,&lt;br /&gt;
Int32 pos, &lt;br /&gt;
Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12699</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12699"/>
		<updated>2008-10-31T21:18:13Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate,  Mode mode,Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12698</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12698"/>
		<updated>2008-10-31T21:16:47Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	      Mode mode,Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12697</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12697"/>
		<updated>2008-10-31T21:16:08Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	     Mode mode,Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12696</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12696"/>
		<updated>2008-10-31T21:15:51Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	     Mode mode,Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12695</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12695"/>
		<updated>2008-10-31T21:15:01Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	     Mode mode,Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    class UTF8Marshaler : ICustomMarshaler{&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12694</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12694"/>
		<updated>2008-10-31T21:14:13Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	     Mode mode,Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class UTF8Marshaler : ICustomMarshaler{&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12693</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12693"/>
		<updated>2008-10-31T21:13:28Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
             IntPtr p_playlist, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	     Mode mode, &lt;br /&gt;
             Int32 pos, &lt;br /&gt;
             Int64 mtime_t, &lt;br /&gt;
             [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	     int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class UTF8Marshaler : ICustomMarshaler{&lt;br /&gt;
&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12692</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12692"/>
		<updated>2008-10-31T21:12:33Z</updated>

		<summary type="html">&lt;p&gt;Digy: /* &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
            IntPtr p_playlist, &lt;br /&gt;
            [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
            [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	     Mode mode, &lt;br /&gt;
            Int32 pos, &lt;br /&gt;
            Int64 mtime_t, &lt;br /&gt;
            [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	    int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[]){&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12691</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:Main_Page&amp;diff=12691"/>
		<updated>2008-10-31T21:10:47Z</updated>

		<summary type="html">&lt;p&gt;Digy: New section: &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ticket #156 (closed defect: fixed)  Is restarting VLC the fix ==&lt;br /&gt;
&lt;br /&gt;
Is this fixed or is restarting VLC the fix?  I am sending HD streams and after about 1 hour to 2 hours the CPU begins to spike at specific intervals corrupting the multicast stream that I am sending.  I have to stop and restart VLC 0.8.5 to recover.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VLC on VTHR leaks memory (see videolan@vthr:prod/vlc.sh) while doing intensive TS/UDP multicast streaming input/output. &lt;br /&gt;
&lt;br /&gt;
A restart is needed after some time. &amp;quot;&lt;br /&gt;
: Hmmm... I don&#039;t know, try both or something. [[User:The thing|The thing]] 02:06, 19 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Link to Developer&#039;s Site is broken ==&lt;br /&gt;
&lt;br /&gt;
Please replace the current link to the developer&#039;s site (located in the to right corner) with this one http://wiki.videolan.org/Developers_Corner.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
--[[User:Materthron|Materthron]] 14:59, 19 December 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
: done.&lt;br /&gt;
&lt;br /&gt;
-- Need to brush up the EN entries on the main page. How do I do that? PRedditt&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;.Net Interface to VLC&amp;quot; marshals strings falsely. For ex,playlist_AddExt, can not add a file to playlist if the path/filename contains a non-english char such as ğ,ü,ş,i,ö,ç etc.&lt;br /&gt;
More correct approach can be like below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NativeLibVlc.cs&lt;br /&gt;
---------------&lt;br /&gt;
&lt;br /&gt;
static extern VlcError playlist_AddExt(&lt;br /&gt;
            IntPtr p_playlist, &lt;br /&gt;
            [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrl, &lt;br /&gt;
            [MarshalAs(UnmanagedType.CustomMarshaler,MarshalTypeRef=typeof(UTF8Marshaler))] String mrlDuplicate, &lt;br /&gt;
	    Mode mode, &lt;br /&gt;
            Int32 pos, &lt;br /&gt;
            Int64 mtime_t, &lt;br /&gt;
            [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(UTF8Marshaler))] string[] Options,&lt;br /&gt;
	    int OptionsCount);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class UTF8Marshaler : ICustomMarshaler&lt;br /&gt;
    {&lt;br /&gt;
        static UTF8Marshaler _MyCustomMarshaler = null;&lt;br /&gt;
&lt;br /&gt;
        public static ICustomMarshaler GetInstance(string Cookie)&lt;br /&gt;
        {&lt;br /&gt;
            if (_MyCustomMarshaler == null)&lt;br /&gt;
            {&lt;br /&gt;
                _MyCustomMarshaler = new UTF8Marshaler();&lt;br /&gt;
            }&lt;br /&gt;
            return _MyCustomMarshaler;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpManagedData(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public void CleanUpNativeData(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public int GetNativeDataSize()&lt;br /&gt;
        {&lt;br /&gt;
            return -1;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public IntPtr MarshalManagedToNative(object ManagedObj)&lt;br /&gt;
        {&lt;br /&gt;
            if (ManagedObj is string)&lt;br /&gt;
            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] buf = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes((string)ManagedObj);&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            if (ManagedObj is string[])&lt;br /&gt;
	            {&lt;br /&gt;
                unsafe&lt;br /&gt;
                {&lt;br /&gt;
                    string[] array = (string[])ManagedObj;&lt;br /&gt;
                    IntPtr[] buf = new IntPtr[array.Length];&lt;br /&gt;
                    for (int i = 0; i &amp;lt; buf.Length; i++)&lt;br /&gt;
                    {&lt;br /&gt;
                        byte[] b = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;).GetBytes(array[i]);&lt;br /&gt;
                        fixed(void *p=&amp;amp;b[0]){&lt;br /&gt;
                            buf[i] = (IntPtr)p;&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    fixed (void* ptr = &amp;amp;buf[0])&lt;br /&gt;
                    {&lt;br /&gt;
                        return new IntPtr(ptr);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            throw new Exception(&amp;quot;UTF8Marshaler can only be used for \&amp;quot;string\&amp;quot; or \&amp;quot;string[]\&amp;quot;. &amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public object MarshalNativeToManaged(IntPtr pNativeData)&lt;br /&gt;
        {&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Digy</name></author>
	</entry>
</feed>