Lindeni Forum
How to recovery the LXDE desktop video output after running a mpp_sample? - Printable Version

+- Lindeni Forum (http://forum.lindeni.org)
+-- Forum: Lindenis V5 (http://forum.lindeni.org/forumdisplay.php?fid=5)
+--- Forum: General Discussion on Lindenis V5 (http://forum.lindeni.org/forumdisplay.php?fid=6)
+--- Thread: How to recovery the LXDE desktop video output after running a mpp_sample? (/showthread.php?tid=15)



How to recovery the LXDE desktop video output after running a mpp_sample? - arglues - 10-19-2018

Currently all Mpp_sample show unpleasant results, that when you start to run any sample, you have no way to terminate it and back to desktop because when each sample create vi it transfors the desktop video layer to an outter layer 8 and then close the layer 8. It 's so confused why allwinner do that. 
I do some experiments to try:
1.  insert a line to pthread of display: signal(SIGINT,destroy_vo) .  this SIGINT can capture the ESC key, and terminate the process.
2. resize the VO create size to 640*480

then it works, the 640*480 window stop to run, while the shell shows still active and can input commands.
But,but, the  area of 640*480 window can not be recylcle. I donot find a way to solve this issue.
Does anyone notice this question? How to solve?


RE: How to recovery the LXDE desktop video output after running a mpp_sample? - csjamesdeng - 10-19-2018

Login via ssh on a remote PC, restart lightdm service should work.

$ sudo systemctl restart lightdm.service


RE: How to recovery the LXDE desktop video output after running a mpp_sample? - arglues - 10-20-2018

(10-19-2018, 01:09 AM)csjamesdeng Wrote: Login via ssh on a remote PC, restart lightdm service should work.

$ sudo systemctl restart lightdm.service

Unfortunately, I follow your suggestion and run lightdm.service, the LXDE desktop do restart, while the dead corp windows still keep there and not disappear.
it seems lightdm.service can not get the control from video layer. Any other method?


RE: How to recovery the LXDE desktop video output after running a mpp_sample? - given - 10-22-2018

(10-20-2018, 04:29 AM)arglues Wrote:
(10-19-2018, 01:09 AM)csjamesdeng Wrote: Login via ssh on a remote PC, restart lightdm service should work.

$ sudo systemctl restart lightdm.service

Unfortunately, I follow your suggestion and run lightdm.service, the LXDE desktop do restart, while the dead corp windows still keep there and not disappear.
it seems lightdm.service can not get the control from video layer. Any other method?
Dear arglues,
    Firtstly, I still suggest you to compile and run the mpp_sample through login via ssh on a remote PC.

    Secondly, I would like to show you the architecture of the Display Engine (called DE) in V5 and why the desktop of X11 can not get the control of the video layer.

    The architecture of DE :
    [attachment=5]

    In fact, we call the resources of the DE hardware as hardware layers(called hwLayer). And you can indicate it easily through the HLAY(i,j) in MPP system.

    The layer you called "layer 8" means the  No.2 channel,  No.0 layer in DE, and it is a UI Layer.And it is the hwLayer that the X11 desktop using fbdev as its backend running on. Closing it is due to it is not the hwLayer created by MPP, maybe it will bring some unknown error while mpp_sample running. Get it?

    When the MPP_sample with vo function runs, it will create a new Video-Layer type hwLayer (maybe HLAY(0/1, 0/1/2/3)) to display the video, and this new hwLayer is not belong to the X11, so you cannot control it through X11.

    And if you want to see the desktop again when you exit the sample, you can follow these steps:
    1. Deletes the following code when creating or destroying vo, and this will keep the desktop on the screen:
        AW_MPI_VO_AddOutsideVideoLayer(stContext.mUILayer);
        AW_MPI_VO_CloseVideoLayer(stContext.mUILayer);

    2. Set the priority (the priority is between 0 to 15) of the new Video-Layer type hwLayer larger than the desktop's hwLayer (priority 0) like 11, by using MPP  API AW_MPI_VO_SetVideoLayerPriority after you created the vi-hwlayer by using AW_MPI_VO_EnableVideoLayer. 
    And the higher priority means the upper position of the layers, this is the same concept of Z-Order of layers in Android.  

    3.Make sure you exit the sample in the right way. And this means that you run the "destroy class" MPP APIs to close all the Video Layer type hwlayers you have created.

    I hope it can help you.