Commit cd0112a5 authored by Martin Storsjö's avatar Martin Storsjö Committed by Jean-Baptiste Kempf

omxil: Get the new port definition on crop rect changes

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent f27586ef
...@@ -1213,6 +1213,12 @@ static picture_t *DecodeVideo( decoder_t *p_dec, block_t **pp_block ) ...@@ -1213,6 +1213,12 @@ static picture_t *DecodeVideo( decoder_t *p_dec, block_t **pp_block )
OMX_FIFO_PEEK(&p_sys->out.fifo, p_header); OMX_FIFO_PEEK(&p_sys->out.fifo, p_header);
if(!p_header) break; /* No frame available */ if(!p_header) break; /* No frame available */
if(p_sys->out.b_update_def)
{
omx_error = GetPortDefinition(p_dec, &p_sys->out, p_sys->out.p_fmt);
p_sys->out.b_update_def = 0;
}
if(p_header->nFilledLen) if(p_header->nFilledLen)
{ {
p_pic = p_header->pAppPrivate; p_pic = p_header->pAppPrivate;
...@@ -1320,9 +1326,16 @@ reconfig: ...@@ -1320,9 +1326,16 @@ reconfig:
for(i = 0; i < p_sys->ports; i++) for(i = 0; i < p_sys->ports; i++)
{ {
OmxPort *p_port = &p_sys->p_ports[i]; OmxPort *p_port = &p_sys->p_ports[i];
if(!p_port->b_reconfigure) continue; if(p_port->b_reconfigure)
p_port->b_reconfigure = 0; {
omx_error = PortReconfigure(p_dec, p_port); omx_error = PortReconfigure(p_dec, p_port);
p_port->b_reconfigure = 0;
}
if(p_port->b_update_def)
{
omx_error = GetPortDefinition(p_dec, p_port, p_port->p_fmt);
p_port->b_update_def = 0;
}
} }
return p_pic; return p_pic;
...@@ -1639,6 +1652,12 @@ static OMX_ERRORTYPE OmxEventHandler( OMX_HANDLETYPE omx_handle, ...@@ -1639,6 +1652,12 @@ static OMX_ERRORTYPE OmxEventHandler( OMX_HANDLETYPE omx_handle,
p_sys->sentinel_buffer.nFlags = OMX_BUFFERFLAG_EOS; p_sys->sentinel_buffer.nFlags = OMX_BUFFERFLAG_EOS;
OMX_FIFO_PUT(&p_sys->in.fifo, &p_sys->sentinel_buffer); OMX_FIFO_PUT(&p_sys->in.fifo, &p_sys->sentinel_buffer);
} }
else if( data_2 == OMX_IndexConfigCommonOutputCrop )
{
for(i = 0; i < p_sys->ports; i++)
if(p_sys->p_ports[i].definition.nPortIndex == data_1)
p_sys->p_ports[i].b_update_def = true;
}
else else
{ {
msg_Dbg( p_dec, "Unhandled setting change %x", (unsigned int)data_2 ); msg_Dbg( p_dec, "Unhandled setting change %x", (unsigned int)data_2 );
......
...@@ -69,6 +69,7 @@ typedef struct OmxPort ...@@ -69,6 +69,7 @@ typedef struct OmxPort
OmxFormatParam format_param; OmxFormatParam format_param;
OMX_BOOL b_reconfigure; OMX_BOOL b_reconfigure;
OMX_BOOL b_update_def;
OMX_BOOL b_direct; OMX_BOOL b_direct;
OMX_BOOL b_flushed; OMX_BOOL b_flushed;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment