Skip to content

Commit

Permalink
[mmal] Add some sanity checks to mmal flags
Browse files Browse the repository at this point in the history
  • Loading branch information
popcornmix committed May 8, 2015
1 parent acb6be2 commit fc154f2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
11 changes: 6 additions & 5 deletions xbmc/cores/VideoRenderers/MMALRenderer.cpp
Expand Up @@ -63,12 +63,13 @@ void CMMALRenderer::vout_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *
{
#if defined(MMAL_DEBUG_VERBOSE)
CMMALVideoBuffer *omvb = (CMMALVideoBuffer *)buffer->user_data;
CLog::Log(LOGDEBUG, "%s::%s port:%p buffer %p (%p), len %d cmd:%x", CLASSNAME, __func__, port, buffer, omvb, buffer->length, buffer->cmd);
CLog::Log(LOGDEBUG, "%s::%s port:%p buffer %p (%p), len %d cmd:%x f:%x", CLASSNAME, __func__, port, buffer, omvb, buffer->length, buffer->cmd, buffer->flags);
#endif

assert(!(buffer->flags & MMAL_BUFFER_HEADER_FLAG_TRANSMISSION_FAILED));
buffer->flags &= ~MMAL_BUFFER_HEADER_FLAG_USER2;
if (m_format == RENDER_FMT_MMAL)
{
buffer->flags &= ~MMAL_BUFFER_HEADER_FLAG_USER2;
mmal_queue_put(m_release_queue, buffer);
}
else if (m_format == RENDER_FMT_YUV420P)
Expand Down Expand Up @@ -391,7 +392,7 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha)
if (omvb)
{
#if defined(MMAL_DEBUG_VERBOSE)
CLog::Log(LOGDEBUG, "%s::%s %p (%p)", CLASSNAME, __func__, omvb, omvb->mmal_buffer);
CLog::Log(LOGDEBUG, "%s::%s %p (%p) f:%x", CLASSNAME, __func__, omvb, omvb->mmal_buffer, omvb->mmal_buffer->flags);
#endif
// we only want to upload frames once
if (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1)
Expand All @@ -405,14 +406,14 @@ void CMMALRenderer::RenderUpdate(bool clear, DWORD flags, DWORD alpha)
}
else if (m_format == RENDER_FMT_YUV420P)
{
CLog::Log(LOGDEBUG, "%s::%s - %p %d", CLASSNAME, __func__, buffer->mmal_buffer, source);
if (buffer->mmal_buffer)
{
CLog::Log(LOGDEBUG, "%s::%s - %p %d f:%x", CLASSNAME, __func__, buffer->mmal_buffer, source, buffer->mmal_buffer->flags);
// we only want to upload frames once
if (buffer->mmal_buffer->flags & MMAL_BUFFER_HEADER_FLAG_USER1)
return;
// sanity check it is not on display
buffer->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1;
buffer->mmal_buffer->flags |= MMAL_BUFFER_HEADER_FLAG_USER1 | MMAL_BUFFER_HEADER_FLAG_USER2;
mmal_port_send_buffer(m_vout_input, buffer->mmal_buffer);
}
else
Expand Down
2 changes: 2 additions & 0 deletions xbmc/cores/dvdplayer/DVDCodecs/Video/MMALCodec.cpp
Expand Up @@ -84,6 +84,7 @@ long CMMALVideoBuffer::Release()
{
m_omv->ReleaseBuffer(this);
}
else assert(count > 0);
return count;
}

Expand Down Expand Up @@ -248,6 +249,7 @@ void CMMALVideo::dec_output_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buf

bool kept = false;

assert(!(buffer->flags & MMAL_BUFFER_HEADER_FLAG_TRANSMISSION_FAILED));
if (buffer->cmd == 0)
{
if (buffer->length > 0)
Expand Down

0 comments on commit fc154f2

Please sign in to comment.