[Mesa-dev] [PATCH] st/omx: Fix port format enumeration

Christian König deathsimple at vodafone.de
Mon Mar 6 08:07:57 UTC 2017


Am 05.03.2017 um 23:10 schrieb Mark Thompson:
>  From OpenMAX IL section 4.3.5:
> "The value of nIndex is the range 0 to N-1, where N is the number of
> formats supported by the port.  There is no need for the port to
> report N, as the caller can determine N by enumerating all the
> formats supported by the port.  Each port shall support at least one
> format.  If there are no more formats, OMX_GetParameter returns
> OMX_ErrorNoMore (i.e., nIndex is supplied where the value is N or
> greater)."
>
> Only one format is supported, so N = 1 and OMX_ErrorNoMore should be
> returned if nIndex >= 1.  The previous code here would return the
> same format for all values of nIndex, resulting in an infinite loop
> when a client attempts to enumerate all formats.

Reviewed-by: Christian König <christian.koenig at amd.com>.

Do you have commit rights? If not please send me a list of all the 
patches still waiting and I will push them.

Regards,
Christian.

> ---
>   src/gallium/state_trackers/omx/vid_enc.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/src/gallium/state_trackers/omx/vid_enc.c b/src/gallium/state_trackers/omx/vid_enc.c
> index 07f6799964..b2970a522f 100644
> --- a/src/gallium/state_trackers/omx/vid_enc.c
> +++ b/src/gallium/state_trackers/omx/vid_enc.c
> @@ -473,6 +473,8 @@ static OMX_ERRORTYPE vid_enc_GetParameter(OMX_HANDLETYPE handle, OMX_INDEXTYPE i
>   
>         if (format->nPortIndex > 1)
>            return OMX_ErrorBadPortIndex;
> +      if (format->nIndex >= 1)
> +         return OMX_ErrorNoMore;
>   
>         port = (omx_base_video_PortType *)priv->ports[format->nPortIndex];
>         memcpy(format, &port->sVideoParam, sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE));




More information about the mesa-dev mailing list