MCPcopy Create free account
hub / github.com/Aleksoid1978/VideoRenderer / SetSideData

Method SetSideData

Source/MediaSampleSideData.cpp:91–130  ·  view source on GitHub ↗

IMediaSideData

Source from the content-addressed store, hash-verified

89
90// IMediaSideData
91STDMETHODIMP CMediaSampleSideData::SetSideData(GUID guidType, const BYTE *pData, size_t size)
92{
93 if (!pData || !size)
94 return E_POINTER;
95
96 CAutoLock Lock(&m_csSideData);
97
98 auto it = m_SideData.find(guidType);
99 if (it != m_SideData.end())
100 {
101 SideDataEntry *sd = &(it->second);
102 BYTE *newData = (BYTE *)_aligned_realloc(sd->pData, size, 16);
103 if (newData) {
104 sd->size = size;
105 sd->pData = newData;
106 memcpy(newData, pData, size);
107 }
108 else
109 {
110 return E_OUTOFMEMORY;
111 }
112 }
113 else
114 {
115 SideDataEntry sd;
116 sd.pData = (BYTE *)_aligned_malloc(size, 16);
117 if (sd.pData) {
118 sd.size = size;
119 memcpy(sd.pData, pData, size);
120 }
121 else
122 {
123 return E_OUTOFMEMORY;
124 }
125
126 m_SideData[guidType] = sd;
127 }
128
129 return S_OK;
130}
131
132STDMETHODIMP CMediaSampleSideData::GetSideData(GUID guidType, const BYTE **pData, size_t *pSize)
133{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected