From a98fcdb7b3b147c15bd089b5a36fe3db0b0fd55a Mon Sep 17 00:00:00 2001 From: voroshil Date: Fri, 23 Feb 2007 09:58:01 +0000 Subject: Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22323 b3059339-0415-0410-9bf9-f77b7e298cf2 --- loader/dshow/cmediasample.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'loader/dshow/cmediasample.c') diff --git a/loader/dshow/cmediasample.c b/loader/dshow/cmediasample.c index 4444c65204..b2f0f6f77d 100644 --- a/loader/dshow/cmediasample.c +++ b/loader/dshow/cmediasample.c @@ -5,6 +5,7 @@ */ #include "cmediasample.h" +#include "mediatype.h" #include "wine/winerror.h" #include #include @@ -81,8 +82,7 @@ void CMediaSample_Destroy(CMediaSample* This) Debug printf("CMediaSample_Destroy(%p) called (ref:%d)\n", This, This->refcount); free(This->vt); free(This->own_block); - if (This->media_type.pbFormat) - free(This->media_type.pbFormat); + FreeMediaType(&(This->media_type)); free(This); } @@ -352,10 +352,7 @@ static HRESULT STDCALL CMediaSample_GetMediaType(IMediaSample* This, t = &((CMediaSample*)This)->media_type; // if(t.pbFormat)free(t.pbFormat); - (*ppMediaType) = malloc(sizeof(AM_MEDIA_TYPE)); - **ppMediaType = *t; - (*ppMediaType)->pbFormat = malloc(t->cbFormat); - memcpy((*ppMediaType)->pbFormat, t->pbFormat, t->cbFormat); + *ppMediaType=CreateMediaType(t); // *ppMediaType=0; //media type was not changed return 0; } @@ -378,16 +375,8 @@ static HRESULT STDCALL CMediaSample_SetMediaType(IMediaSample * This, if (!pMediaType) return E_INVALIDARG; t = &((CMediaSample*)This)->media_type; - if (t->pbFormat) - free(t->pbFormat); - t = pMediaType; - if (t->cbFormat) - { - t->pbFormat = malloc(t->cbFormat); - memcpy(t->pbFormat, pMediaType->pbFormat, t->cbFormat); - } - else - t->pbFormat = 0; + FreeMediaType(t); + CopyMediaType(t,pMediaType); ((CMediaSample*) This)->type_valid=1; return 0; -- cgit v1.2.3