mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-22 21:47:23 +00:00
[host] removed incomplete h264
This commit is contained in:
parent
2a30bb718a
commit
2cb18a3f8f
@ -30,7 +30,6 @@ typedef enum FrameType
|
|||||||
FRAME_TYPE_RGBA , // RGBA interleaved: R,G,B,A 32bpp
|
FRAME_TYPE_RGBA , // RGBA interleaved: R,G,B,A 32bpp
|
||||||
FRAME_TYPE_RGBA10 , // RGBA interleaved: R,G,B,A 10,10,10,2 bpp
|
FRAME_TYPE_RGBA10 , // RGBA interleaved: R,G,B,A 10,10,10,2 bpp
|
||||||
FRAME_TYPE_YUV420 , // YUV420
|
FRAME_TYPE_YUV420 , // YUV420
|
||||||
FRAME_TYPE_H264 , // H264 compressed
|
|
||||||
FRAME_TYPE_MAX , // sentinel value
|
FRAME_TYPE_MAX , // sentinel value
|
||||||
}
|
}
|
||||||
FrameType;
|
FrameType;
|
||||||
|
@ -414,19 +414,6 @@ bool DXGI::InitYUV420Capture()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DXGI::InitH264Capture()
|
|
||||||
{
|
|
||||||
m_textureConverter = new TextureConverter();
|
|
||||||
if (!m_textureConverter->Initialize(m_deviceContext, m_device, m_width, m_height, FRAME_TYPE_YUV420))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
m_h264 = new MFT::H264();
|
|
||||||
if (!m_h264->Initialize(m_device, m_width, m_height))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DXGI::DeInitialize()
|
void DXGI::DeInitialize()
|
||||||
{
|
{
|
||||||
if (m_h264)
|
if (m_h264)
|
||||||
@ -667,13 +654,9 @@ unsigned int Capture::DXGI::Capture()
|
|||||||
|
|
||||||
for(CaptureOptions::const_iterator it = m_options->cbegin(); it != m_options->cend(); ++it)
|
for(CaptureOptions::const_iterator it = m_options->cbegin(); it != m_options->cend(); ++it)
|
||||||
{
|
{
|
||||||
if (_stricmp(*it, "h264" ) == 0) m_frameType = FRAME_TYPE_H264;
|
|
||||||
if (_stricmp(*it, "yuv420") == 0) m_frameType = FRAME_TYPE_YUV420;
|
if (_stricmp(*it, "yuv420") == 0) m_frameType = FRAME_TYPE_YUV420;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_frameType == FRAME_TYPE_H264)
|
|
||||||
DEBUG_WARN("Enabling experimental H.264 compression");
|
|
||||||
|
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
switch (m_frameType)
|
switch (m_frameType)
|
||||||
{
|
{
|
||||||
@ -821,55 +804,6 @@ GrabStatus Capture::DXGI::GrabFrameYUV420(struct FrameInfo & frame)
|
|||||||
return GRAB_STATUS_OK;
|
return GRAB_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
GrabStatus Capture::DXGI::GrabFrameH264(struct FrameInfo & frame)
|
|
||||||
{
|
|
||||||
return GRAB_STATUS_ERROR;
|
|
||||||
#if 0
|
|
||||||
while(true)
|
|
||||||
{
|
|
||||||
unsigned int events = m_h264->Process();
|
|
||||||
if (events & MFT::H264_EVENT_ERROR)
|
|
||||||
return GRAB_STATUS_ERROR;
|
|
||||||
|
|
||||||
if (events & MFT::H264_EVENT_NEEDS_DATA)
|
|
||||||
{
|
|
||||||
GrabStatus result;
|
|
||||||
ID3D11Texture2DPtr texture;
|
|
||||||
bool timeout;
|
|
||||||
|
|
||||||
result = GrabFrameTexture(frame, cursor, texture, timeout);
|
|
||||||
if (result != GRAB_STATUS_OK)
|
|
||||||
{
|
|
||||||
ReleaseFrame();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!timeout)
|
|
||||||
{
|
|
||||||
if (!m_textureConverter->Convert(texture))
|
|
||||||
{
|
|
||||||
SafeRelease(&texture);
|
|
||||||
return GRAB_STATUS_ERROR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!m_h264->ProvideFrame(texture))
|
|
||||||
return GRAB_STATUS_ERROR;
|
|
||||||
|
|
||||||
ReleaseFrame();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (events & MFT::H264_EVENT_HAS_DATA)
|
|
||||||
{
|
|
||||||
if (!m_h264->GetFrame(frame.buffer, frame.bufferSize, frame.pitch))
|
|
||||||
return GRAB_STATUS_ERROR;
|
|
||||||
|
|
||||||
return GRAB_STATUS_OK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
GrabStatus DXGI::GetFrame(struct FrameInfo & frame)
|
GrabStatus DXGI::GetFrame(struct FrameInfo & frame)
|
||||||
{
|
{
|
||||||
if (!m_ftexture)
|
if (!m_ftexture)
|
||||||
@ -881,11 +815,8 @@ GrabStatus DXGI::GetFrame(struct FrameInfo & frame)
|
|||||||
frame.width = m_width;
|
frame.width = m_width;
|
||||||
frame.height = m_height;
|
frame.height = m_height;
|
||||||
|
|
||||||
switch (m_frameType)
|
if (m_frameType == FRAME_TYPE_YUV420)
|
||||||
{
|
return GrabFrameYUV420(frame);
|
||||||
case FRAME_TYPE_YUV420: return GrabFrameYUV420(frame);
|
|
||||||
case FRAME_TYPE_H264 : return GrabFrameH264 (frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
return GrabFrameRaw(frame);
|
return GrabFrameRaw(frame);
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,6 @@ namespace Capture
|
|||||||
|
|
||||||
bool InitRawCapture();
|
bool InitRawCapture();
|
||||||
bool InitYUV420Capture();
|
bool InitYUV420Capture();
|
||||||
bool InitH264Capture();
|
|
||||||
|
|
||||||
CursorInfo m_cursorRing[DXGI_CURSOR_RING_SIZE];
|
CursorInfo m_cursorRing[DXGI_CURSOR_RING_SIZE];
|
||||||
unsigned int m_cursorRPos, m_cursorWPos;
|
unsigned int m_cursorRPos, m_cursorWPos;
|
||||||
@ -80,7 +79,6 @@ namespace Capture
|
|||||||
GrabStatus ReleaseFrame();
|
GrabStatus ReleaseFrame();
|
||||||
GrabStatus GrabFrameRaw (struct FrameInfo & frame);
|
GrabStatus GrabFrameRaw (struct FrameInfo & frame);
|
||||||
GrabStatus GrabFrameYUV420 (struct FrameInfo & frame);
|
GrabStatus GrabFrameYUV420 (struct FrameInfo & frame);
|
||||||
GrabStatus GrabFrameH264 (struct FrameInfo & frame);
|
|
||||||
|
|
||||||
CaptureOptions * m_options;
|
CaptureOptions * m_options;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user