]> git.sesse.net Git - vlc/commitdiff
ActiveX: Deinterlace JS Binding
authorCyril Mathé <cmathe@actech-innovation.com>
Wed, 20 May 2009 08:52:03 +0000 (10:52 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 3 Jun 2009 22:24:28 +0000 (00:24 +0200)
- video.deinterlaceEnable(char *mode) : enable deinterlace filter which type is defined by mode
     - video.deinterlaceDisable()          : disable deinterlace filter

Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
projects/activex/axvlc.idl
projects/activex/vlccontrol2.cpp
projects/activex/vlccontrol2.h

index 8944074ed98999b5560967e5f59e98c2f1193559..071fcfd7d4652b8d59a7bd4ff901bf53b19e4b80 100644 (file)
@@ -467,6 +467,11 @@ library AXVLC
         [propput, helpstring("Sets teletext page to use.")]\r
         HRESULT teletext([in] long page);\r
 \r
+        [helpstring("Enable deinterlace filter.")]\r
+        HRESULT deinterlaceEnable([in] BSTR mode);\r
+        [helpstring("Disable deinterlace filter.")]\r
+        HRESULT deinterlaceDisable();\r
+\r
         [helpstring("toggle fullscreen/windowed state.")]\r
         HRESULT toggleFullscreen();\r
 \r
index ff1a55b2a4d5c586fc16feec6cde7ba1fb7df329..c0de0833ea42793043511cb0eb26284e854fa72c 100644 (file)
@@ -2220,6 +2220,39 @@ STDMETHODIMP VLCVideo::put_teletext(long page)
     return hr;
 };
 
+STDMETHODIMP VLCVideo::deinterlaceDisable()
+{
+    libvlc_media_player_t *p_md;
+    HRESULT hr = _p_instance->getMD(&p_md);
+    if( SUCCEEDED(hr) )
+    {
+        libvlc_exception_t ex;
+        libvlc_exception_init(&ex);
+
+        libvlc_video_set_deinterlace(p_md, 0, "", &ex);
+        hr = exception_bridge(&ex);
+    }
+    return hr;
+};
+
+STDMETHODIMP VLCVideo::deinterlaceEnable(BSTR mode)
+{
+    libvlc_media_player_t *p_md;
+    HRESULT hr = _p_instance->getMD(&p_md);
+    if( SUCCEEDED(hr) )
+    {
+        libvlc_exception_t ex;
+        libvlc_exception_init(&ex);
+        /* get deinterlace mode from the user */
+        char *psz_mode = CStrFromBSTR(CP_UTF8, mode);
+        /* enable deinterlace filter if possible */
+        libvlc_video_set_deinterlace(p_md, 1, psz_mode, &ex);
+        hr = exception_bridge(&ex);
+        CoTaskMemFree(psz_mode);
+    }
+    return hr;
+};
+
 STDMETHODIMP VLCVideo::takeSnapshot(LPPICTUREDISP* picture)
 {
     if( NULL == picture )
index 113464355e8e20f26a40c1f08e29a981a1d8ba0f..354ed5ca744b38357089bd6e28610a5fc5294f7b 100644 (file)
@@ -586,6 +586,8 @@ public:
     STDMETHODIMP put_crop(BSTR);
     STDMETHODIMP get_teletext(long*);
     STDMETHODIMP put_teletext(long);
+    STDMETHODIMP deinterlaceDisable();
+    STDMETHODIMP deinterlaceEnable(BSTR);
     STDMETHODIMP takeSnapshot(LPPICTUREDISP*);
     STDMETHODIMP toggleFullscreen();
     STDMETHODIMP toggleTeletext();