Commit 043ddf12 authored by Jean-Paul Saman's avatar Jean-Paul Saman

Fix property get_aspectRatio (forward port of [17383])

parent a3995514
......@@ -403,7 +403,7 @@ library AXVLC
HRESULT height([out, retval] long* height);
[propget, helpstring("Returns video aspect ratio.")]
HRESULT aspectRatio([out, retval] BSTR *aspect);
HRESULT aspectRatio([out, retval] BSTR aspect);
[propput, helpstring("Sets video aspect ratio.")]
HRESULT aspectRatio([in] BSTR aspect);
......
......@@ -2035,7 +2035,7 @@ interface IVLCVideo : public IDispatch
long* height) = 0;
virtual HRESULT STDMETHODCALLTYPE get_aspectRatio(
BSTR* aspect) = 0;
BSTR aspect) = 0;
virtual HRESULT STDMETHODCALLTYPE put_aspectRatio(
BSTR aspect) = 0;
......@@ -2109,7 +2109,7 @@ typedef struct IVLCVideoVtbl {
HRESULT (STDMETHODCALLTYPE *get_aspectRatio)(
IVLCVideo* This,
BSTR* aspect);
BSTR aspect);
HRESULT (STDMETHODCALLTYPE *put_aspectRatio)(
IVLCVideo* This,
......@@ -2180,7 +2180,7 @@ void __RPC_STUB IVLCVideo_get_height_Stub(
DWORD* pdwStubPhase);
HRESULT CALLBACK IVLCVideo_get_aspectRatio_Proxy(
IVLCVideo* This,
BSTR* aspect);
BSTR aspect);
void __RPC_STUB IVLCVideo_get_aspectRatio_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......
......@@ -1758,9 +1758,9 @@ STDMETHODIMP VLCVideo::get_height(long* height)
return hr;
};
STDMETHODIMP VLCVideo::get_aspectRatio(BSTR *aspect)
STDMETHODIMP VLCVideo::get_aspectRatio(BSTR aspect)
{
if( NULL == *aspect )
if( NULL == aspect )
return E_POINTER;
libvlc_instance_t* p_libvlc;
......@@ -1775,20 +1775,17 @@ STDMETHODIMP VLCVideo::get_aspectRatio(BSTR *aspect)
{
char *psz_aspect = libvlc_video_get_aspect_ratio(p_input, &ex);
if( !psz_aspect )
libvlc_input_free(p_input);
if( NULL == psz_aspect )
return E_OUTOFMEMORY;
if( ! libvlc_exception_raised(&ex) )
{
*aspect = SysAllocStringByteLen(psz_aspect, strlen(psz_aspect));
aspect = SysAllocStringByteLen(psz_aspect, strlen(psz_aspect));
free( psz_aspect );
psz_aspect = NULL;
libvlc_input_free(p_input);
if( ! libvlc_exception_raised(&ex) )
{
return NOERROR;
}
}
if( psz_aspect ) free( psz_aspect );
}
_p_instance->setErrorInfo(IID_IVLCVideo, libvlc_exception_get_message(&ex));
......
......@@ -460,7 +460,7 @@ public:
STDMETHODIMP put_fullscreen(VARIANT_BOOL);
STDMETHODIMP get_width(long*);
STDMETHODIMP get_height(long*);
STDMETHODIMP get_aspectRatio(BSTR*);
STDMETHODIMP get_aspectRatio(BSTR);
STDMETHODIMP put_aspectRatio(BSTR);
STDMETHODIMP toggleFullscreen();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment