summaryrefslogtreecommitdiffstats
path: root/loader/dshow/cmediasample.c
diff options
context:
space:
mode:
authorvoroshil <voroshil@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-02-23 09:58:01 +0000
committervoroshil <voroshil@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-02-23 09:58:01 +0000
commita98fcdb7b3b147c15bd089b5a36fe3db0b0fd55a (patch)
tree62c860a2d965c9eb17c8c4d14f4fda9b36d2ff44 /loader/dshow/cmediasample.c
parente33a1695bab717d2dd3a7e5c289ed822437b187f (diff)
downloadmpv-a98fcdb7b3b147c15bd089b5a36fe3db0b0fd55a.tar.bz2
mpv-a98fcdb7b3b147c15bd089b5a36fe3db0b0fd55a.tar.xz
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
Diffstat (limited to 'loader/dshow/cmediasample.c')
-rw-r--r--loader/dshow/cmediasample.c21
1 files changed, 5 insertions, 16 deletions
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 <stdio.h>
#include <string.h>
@@ -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;