On 01/16/2018 04:48 AM, Christian König wrote:
Am 16.01.2018 um 10:40 schrieb Gurkirpal Singh:


On Mon, Jan 15, 2018 at 9:24 PM, Leo Liu <leo....@amd.com <mailto:leo....@amd.com>> wrote:

    Hi lists,


    If there is no more questions, and no objection, I would like to
    commit this new OMX st. to upstream.

    @Gurkipal, If you can send me or lists your rebased patches set
    for committing, that would be appreciated.

I wanted to know if it's required to test the patches before sending them. I've since then switched to a laptop with NVIDIA card and have limited access to the desktop with the AMD card (that i used to work on during the project). So I'm unable to test the encoder on this machine right now. It could take a few  weeks until I could do so.

Leo is just asking for the final cleanup before pushing the code, no need for an extra test here.
Yeah. rebase your patches and add "RB/AB", and make sure the meson build is added.
After that send patch set to the lists or to me, I will push them.

Regards,
Leo



Christian.


    Leo


    On 12/04/2017 08:58 AM, Leo Liu wrote:



    On 12/03/2017 10:04 AM, Gurkirpal Singh wrote:
    I sent the modified patches in another thread a while ago.
    Please review in case got missed.
    Please be patient for a few days to see if any other comments.
    After then please rebase, add rb/ab to your patches, and send
    them to me,
    I will commit them for you.

    Leo



    On Thu, Nov 30, 2017 at 7:35 PM, Leo Liu <leo....@amd.com
    <mailto:leo....@amd.com>> wrote:



        On 11/30/2017 06:22 AM, Julien Isorce wrote:
        Hi Gurkirpal,

        > Before refactoring process both the state trackers were in independent
        directories.
        > During earlier refactoring effort we decided to keep that directory
        structure so it made
        > sense to move them to auxiliary code. After that I moved them both 
under st/omx.
        > Since there could be a chance of it being useful out of st/omx, I 
left the
        decision to
        > keep it or move it back to st/omx to the mailing list.

        Yes please move it back to st/omx for the reasons you
        said, i.e. there will now 2
        sub directories, st/omx/bellagio and st/omx/tizonia and
        common code in st/omx.
        Yes. Please move them back to st/omx.

        With that fixed, the series are:

        Acked-by: Leo Liu <leo....@amd.com> <mailto:leo....@amd.com>

        Thanks for the work!

        Leo




        Another reason is that the env var "OMX_RENDER_NODE"
        mentions OMX.

        Thx!
        Julien


        On 29 November 2017 at 04:02, Gurkirpal Singh
        <gurkirpal...@gmail.com <mailto:gurkirpal...@gmail.com>>
        wrote:

            ---
             src/gallium/auxiliary/Makefile.sources             | 
             2 +
             src/gallium/auxiliary/vl/vl_screen.c               |
            107 +++++++++++++++++++++
             src/gallium/auxiliary/vl/vl_screen.h               | 
            33 +++++++
             .../state_trackers/omx_bellagio/entrypoint.c       | 
            83 ----------------
             .../state_trackers/omx_bellagio/entrypoint.h       | 
             3 -
             src/gallium/state_trackers/omx_bellagio/vid_dec.c  | 
             5 +-
             src/gallium/state_trackers/omx_bellagio/vid_enc.c  | 
             5 +-
             7 files changed, 148 insertions(+), 90 deletions(-)
             create mode 100644 src/gallium/auxiliary/vl/vl_screen.c
             create mode 100644 src/gallium/auxiliary/vl/vl_screen.h

            diff --git a/src/gallium/auxiliary/Makefile.sources
            b/src/gallium/auxiliary/Makefile.sources
            index f40c472..35e89f9 100644
            --- a/src/gallium/auxiliary/Makefile.sources
            +++ b/src/gallium/auxiliary/Makefile.sources
            @@ -343,6 +343,8 @@ VL_SOURCES := \
            vl/vl_mpeg12_decoder.c \
            vl/vl_mpeg12_decoder.h \
                    vl/vl_rbsp.h \
            +       vl/vl_screen.c \
            +       vl/vl_screen.h \
                    vl/vl_types.h \
            vl/vl_vertex_buffers.c \
            vl/vl_vertex_buffers.h \
            diff --git a/src/gallium/auxiliary/vl/vl_screen.c
            b/src/gallium/auxiliary/vl/vl_screen.c
            new file mode 100644
            index 0000000..7192802
            --- /dev/null
            +++ b/src/gallium/auxiliary/vl/vl_screen.c
            @@ -0,0 +1,107 @@
            
+/**************************************************************************
            + *
            + * Permission is hereby granted, free of charge, to
            any person obtaining a
            + * copy of this software and associated documentation
            files (the
            + * "Software"), to deal in the Software without
            restriction, including
            + * without limitation the rights to use, copy,
            modify, merge, publish,
            + * distribute, sub license, and/or sell copies of the
            Software, and to
            + * permit persons to whom the Software is furnished
            to do so, subject to
            + * the following conditions:
            + *
            + * The above copyright notice and this permission
            notice (including the
            + * next paragraph) shall be included in all copies or
            substantial portions
            + * of the Software.
            + *
            + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY
            OF ANY KIND, EXPRESS
            + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
            WARRANTIES OF
            + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
            AND NON-INFRINGEMENT.
            + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE
            LIABLE FOR
            + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
            AN ACTION OF CONTRACT,
            + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
            CONNECTION WITH THE
            + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
            + *
            +
            
**************************************************************************/
            +
            +#include <assert.h>
            +#include <string.h>
            +#include <stdbool.h>
            +
            +#include "os/os_thread.h"
            +#include "util/u_memory.h"
            +#include "loader/loader.h"
            +#include "vl_screen.h"
            +
            +#if defined(HAVE_X11_PLATFORM)
            +#include <X11/Xlib.h>
            +#else
            +#define XOpenDisplay(x) NULL
            +#define XCloseDisplay(x)
            +#define Display void
            +#endif
            +
            +static mtx_t st_lock = _MTX_INITIALIZER_NP;
            +static Display *st_display = NULL;
            +static struct vl_screen *st_screen = NULL;
            +static unsigned st_usecount = 0;
            +static const char *st_render_node = NULL;
            +static int drm_fd;
            +
            +struct vl_screen *vl_get_screen(const char* render_node)
            +{
            +   static bool first_time = true;
            +  mtx_lock(&st_lock);
            +
            +   if (!st_screen) {
            +      if (first_time) {
            +         st_render_node =
            debug_get_option(render_node, NULL);
            +         first_time = false;
            +      }
            +      if (st_render_node) {
            +         drm_fd = loader_open_device(st_render_node);
            +         if (drm_fd < 0)
            +            goto error;
            +
            +         st_screen = vl_drm_screen_create(drm_fd);
            +         if (!st_screen) {
            + close(drm_fd);
            +            goto error;
            +         }
            +      } else {
            +         st_display = XOpenDisplay(NULL);
            +         if (!st_display)
            +            goto error;
            +
            +         st_screen =
            vl_dri3_screen_create(st_display, 0);
            +         if (!st_screen)
            +            st_screen =
            vl_dri2_screen_create(st_display, 0);
            +         if (!st_screen) {
            + XCloseDisplay(st_display);
            +            goto error;
            +         }
            +      }
            +   }
            +
            +   ++st_usecount;
            +
            +  mtx_unlock(&st_lock);
            +   return st_screen;
            +
            +error:
            +  mtx_unlock(&st_lock);
            +   return NULL;
            +}
            +
            +void vl_put_screen(void)
            +{
            +  mtx_lock(&st_lock);
            +   if ((--st_usecount) == 0) {
            + st_screen->destroy(st_screen);
            +      st_screen = NULL;
            +
            +      if (st_render_node)
            +         close(drm_fd);
            +      else
            +  XCloseDisplay(st_display);
            +   }
            +  mtx_unlock(&st_lock);
            +}
            diff --git a/src/gallium/auxiliary/vl/vl_screen.h
            b/src/gallium/auxiliary/vl/vl_screen.h
            new file mode 100644
            index 0000000..1e14775
            --- /dev/null
            +++ b/src/gallium/auxiliary/vl/vl_screen.h
            @@ -0,0 +1,33 @@
            
+/**************************************************************************
            + *
            + * Permission is hereby granted, free of charge, to
            any person obtaining a
            + * copy of this software and associated documentation
            files (the
            + * "Software"), to deal in the Software without
            restriction, including
            + * without limitation the rights to use, copy,
            modify, merge, publish,
            + * distribute, sub license, and/or sell copies of the
            Software, and to
            + * permit persons to whom the Software is furnished
            to do so, subject to
            + * the following conditions:
            + *
            + * The above copyright notice and this permission
            notice (including the
            + * next paragraph) shall be included in all copies or
            substantial portions
            + * of the Software.
            + *
            + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY
            OF ANY KIND, EXPRESS
            + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
            WARRANTIES OF
            + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
            AND NON-INFRINGEMENT.
            + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE
            LIABLE FOR
            + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
            AN ACTION OF CONTRACT,
            + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
            CONNECTION WITH THE
            + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
            + *
            +
            
**************************************************************************/
            +
            +#ifndef VL_VL_SCREEN_H
            +#define VL_VL_SCREEN_H
            +
            +#include "vl_winsys.h"
            +
            +struct vl_screen *vl_get_screen(const char* render_node);
            +void vl_put_screen(void);
            +
            +#endif
            diff --git
            a/src/gallium/state_trackers/omx_bellagio/entrypoint.c
            b/src/gallium/state_trackers/omx_bellagio/entrypoint.c
            index 251cc7d..5c75e8d 100644
            --- a/src/gallium/state_trackers/omx_bellagio/entrypoint.c
            +++ b/src/gallium/state_trackers/omx_bellagio/entrypoint.c
            @@ -31,33 +31,10 @@
              *
              */

            -#include <assert.h>
            -#include <string.h>
            -#include <stdbool.h>
            -
            -#if defined(HAVE_X11_PLATFORM)
            -#include <X11/Xlib.h>
            -#else
            -#define XOpenDisplay(x) NULL
            -#define XCloseDisplay(x)
            -#define Display void
            -#endif
            -
            -#include "os/os_thread.h"
            -#include "util/u_memory.h"
            -#include "loader/loader.h"
            -
             #include "entrypoint.h"
             #include "vid_dec.h"
             #include "vid_enc.h"

            -static mtx_t omx_lock = _MTX_INITIALIZER_NP;
            -static Display *omx_display = NULL;
            -static struct vl_screen *omx_screen = NULL;
            -static unsigned omx_usecount = 0;
            -static const char *omx_render_node = NULL;
            -static int drm_fd;
            -
             int omx_component_library_Setup(stLoaderComponentType
            **stComponents)
             {
                OMX_ERRORTYPE r;
            @@ -78,66 +55,6 @@ int
            omx_component_library_Setup(stLoaderComponentType
            **stComponents)
                return 2;
             }

            -struct vl_screen *omx_get_screen(void)
            -{
            -   static bool first_time = true;
            -  mtx_lock(&omx_lock);
            -
            -   if (!omx_screen) {
            -      if (first_time) {
            -         omx_render_node =
            debug_get_option("OMX_RENDER_NODE", NULL);
            -         first_time = false;
            -      }
            -      if (omx_render_node) {
            -         drm_fd = loader_open_device(omx_render_node);
            -         if (drm_fd < 0)
            -            goto error;
            -
            -         omx_screen = vl_drm_screen_create(drm_fd);
            -         if (!omx_screen) {
            - close(drm_fd);
            -            goto error;
            -         }
            -      } else {
            -         omx_display = XOpenDisplay(NULL);
            -         if (!omx_display)
            -            goto error;
            -
            -         omx_screen =
            vl_dri3_screen_create(omx_display, 0);
            -         if (!omx_screen)
            -            omx_screen =
            vl_dri2_screen_create(omx_display, 0);
            -         if (!omx_screen) {
            - XCloseDisplay(omx_display);
            -            goto error;
            -         }
            -      }
            -   }
            -
            -   ++omx_usecount;
            -
            -  mtx_unlock(&omx_lock);
            -   return omx_screen;
            -
            -error:
            -  mtx_unlock(&omx_lock);
            -   return NULL;
            -}
            -
            -void omx_put_screen(void)
            -{
            -  mtx_lock(&omx_lock);
            -   if ((--omx_usecount) == 0) {
            - omx_screen->destroy(omx_screen);
            -      omx_screen = NULL;
            -
            -      if (omx_render_node)
            -         close(drm_fd);
            -      else
            -  XCloseDisplay(omx_display);
            -   }
            -  mtx_unlock(&omx_lock);
            -}
            -
             OMX_ERRORTYPE
            omx_workaround_Destructor(OMX_COMPONENTTYPE *comp)
             {
            omx_base_component_PrivateType* priv =
            (omx_base_component_PrivateType*)comp->pComponentPrivate;
            diff --git
            a/src/gallium/state_trackers/omx_bellagio/entrypoint.h
            b/src/gallium/state_trackers/omx_bellagio/entrypoint.h
            index 7625d7a..d566d1e 100644
            --- a/src/gallium/state_trackers/omx_bellagio/entrypoint.h
            +++ b/src/gallium/state_trackers/omx_bellagio/entrypoint.h
            @@ -40,9 +40,6 @@

             PUBLIC extern int
            omx_component_library_Setup(stLoaderComponentType
            **stComponents);

            -struct vl_screen *omx_get_screen(void);
            -void omx_put_screen(void);
            -
             OMX_ERRORTYPE
            omx_workaround_Destructor(OMX_COMPONENTTYPE *comp);

             #endif
            diff --git
            a/src/gallium/state_trackers/omx_bellagio/vid_dec.c
            b/src/gallium/state_trackers/omx_bellagio/vid_dec.c
            index f9fe19f..b62c705 100644
            --- a/src/gallium/state_trackers/omx_bellagio/vid_dec.c
            +++ b/src/gallium/state_trackers/omx_bellagio/vid_dec.c
            @@ -50,6 +50,7 @@
             #include "util/u_surface.h"
             #include "vl/vl_video_buffer.h"
             #include "vl/vl_vlc.h"
            +#include "vl/vl_screen.h"

             #include "entrypoint.h"
             #include "vid_dec.h"
            @@ -173,7 +174,7 @@ static OMX_ERRORTYPE
            vid_dec_Constructor(OMX_COMPONENTTYPE *comp,
            OMX_STRING nam
                comp->SetParameter = vid_dec_SetParameter;
                comp->GetParameter = vid_dec_GetParameter;

            -   priv->screen = omx_get_screen();
            +   priv->screen = vl_get_screen("OMX_RENDER_NODE");
                if (!priv->screen)
                   return OMX_ErrorInsufficientResources;

            @@ -253,7 +254,7 @@ static OMX_ERRORTYPE
            vid_dec_Destructor(OMX_COMPONENTTYPE *comp)
                }

                if (priv->screen)
            -      omx_put_screen();
            +      vl_put_screen();

                return omx_workaround_Destructor(comp);
             }
            diff --git
            a/src/gallium/state_trackers/omx_bellagio/vid_enc.c
            b/src/gallium/state_trackers/omx_bellagio/vid_enc.c
            index 1a4fb62..40e7a0f 100644
            --- a/src/gallium/state_trackers/omx_bellagio/vid_enc.c
            +++ b/src/gallium/state_trackers/omx_bellagio/vid_enc.c
            @@ -50,6 +50,7 @@
             #include "pipe/p_video_codec.h"
             #include "util/u_memory.h"
             #include "vl/vl_video_buffer.h"
            +#include "vl/vl_screen.h"

             #include "entrypoint.h"
             #include "vid_enc.h"
            @@ -170,7 +171,7 @@ static OMX_ERRORTYPE
            vid_enc_Constructor(OMX_COMPONENTTYPE *comp,
            OMX_STRING nam
                comp->GetConfig = vid_enc_GetConfig;
                comp->SetConfig = vid_enc_SetConfig;

            -   priv->screen = omx_get_screen();
            +   priv->screen = vl_get_screen("OMX_RENDER_NODE");
                if (!priv->screen)
                   return OMX_ErrorInsufficientResources;

            @@ -296,7 +297,7 @@ static OMX_ERRORTYPE
            vid_enc_Destructor(OMX_COMPONENTTYPE *comp)
             priv->t_pipe->destroy(priv->t_pipe);

                if (priv->screen)
            -      omx_put_screen();
            +      vl_put_screen();

                return omx_workaround_Destructor(comp);
             }
            --
            2.7.4

            _______________________________________________
            mesa-dev mailing list
            mesa-dev@lists.freedesktop.org
            <mailto:mesa-dev@lists.freedesktop.org>
            https://lists.freedesktop.org/mailman/listinfo/mesa-dev
            <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>




        _______________________________________________
        mesa-dev mailing list
        mesa-dev@lists.freedesktop.org
        <mailto:mesa-dev@lists.freedesktop.org>
        https://lists.freedesktop.org/mailman/listinfo/mesa-dev
        <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>







_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to