Jump to content


Photo

New PiP features miss AudioPiP mode

PiP ET9000

  • Please log in to reply
4 replies to this topic

#1 Pr2

  • PLi® Contributor
  • 6,181 posts

+261
Excellent

Posted 9 June 2014 - 20:19

Hi,

 

I just install last updates and play around with the new PiP mode, I think that one mode is missing: AudioPiP.

 

Some will come and say, you have it use BigPiP, yes but some STB use software PiP so they are unable to perform PiP on two HD channels at the same time (exemple: ET-9000).  So using BigPIP mode leads to an unwatchable freezing image (too many frame drop).

 

So you can keep BigPiP but I think that we should just have the opposite the main TV screen with the audio of the PiP (with PiP windows simply hidden), that's what I called: AudioPiP.

So with this mode I can watch an HD channel (main screen) and have the audio from another HD channel (PiP hidden window).

 

There was a plugin to perform this: audioPiP but from what I read it is no longer working so why not include this mode directly in the new PiP mode, just one more possibility?

 

Regards,

 

Pr2

 

 


NO SUPPORT by PM, it is a forum make your question public so everybody can benefit from the question/answer.
If you think that my answer helps you, you can press the up arrow in bottom right of the answer.

Wanna help with OpenPLi Translation? Please read our Wiki Information for translators

Sat: Hotbird 13.0E, Astra 19.2E, Eutelsat5A 5.0W
VU+ Solo 4K: 2*DVB-S2 + 2*DVB-C/T/T2 (used in DVB-C) & Duo 4K: 2*DVB-S2X + DVB-C (FBC)

AB-Com: PULSe 4K 1*DVB-S2X (+ DVB-C/T/T2)
Edision OS Mio 4K: 1*DVB-S2X + 1*DVB-C/T/T2
 


Re: New PiP features miss AudioPiP mode #2 littlesat

  • PLi® Core member
  • 57,163 posts

+698
Excellent

Posted 9 June 2014 - 20:37

AudioPiP could be adapted... but was AudioPiP capable of that what you mentioned? As far I can see it does exactly the same as the current bigPiP mode... it does directly poking around in /procs to resize the PiP...

 

Do you know how you can play the audio from another service via the mainscreen?

 

# -*- coding: iso-8859-1 -*-
#
# AudioPip by gutemine
#
audiopip_version="0.3"
#
from enigma import eTimer
from Screens.InfoBar import *
from Plugins.Plugin import PluginDescriptor
from Screens.Screen import Screen
from Screens.InfoBarGenerics  import InfoBarPiP
from Screens.PictureInPicture import PictureInPicture
from Components.SystemInfo import SystemInfo
from Components.config import config, ConfigPosition
from Screens.ChannelSelection import ChannelSelection
import os
if os.path.exists("/proc/stb/vmpeg/0/dst_apply"):
dst_apply=1
else:
dst_apply=0
 
def autostart(reason, **kwargs):
   if SystemInfo.get("NumVideoDecoders", 1) > 1:
      print "[SPLITSCEEN] resetting"
      l=open("/proc/stb/vmpeg/0/dst_left","w")
      l.write("%x" % 0)
      l.close()
      t=open("/proc/stb/vmpeg/0/dst_top","w")
      t.write("%x" % 0)
      t.close()
      h=open("/proc/stb/vmpeg/0/dst_height","w")
      h.write("%x" % 576)
      h.close()
      w=open("/proc/stb/vmpeg/0/dst_width","w")
      w.write("%x" % 720)
      w.close()
      if dst_apply:
         l=open("/proc/stb/vmpeg/0/dst_apply","w")
         l.write("%x" % 1)
         l.close()
         l=open("/proc/stb/vmpeg/0/dst_apply","w")
         l.write("%x" % 0)
         l.close()
      try:
         xxx = config.av.pip.value[0]
         yyy = config.av.pip.value[1]
         www = config.av.pip.value[2]
         hhh = config.av.pip.value[3] 
      except:
         # default location
         xxx = 400
         yyy = 60
         www = 240
         hhh = 192
      l=open("/proc/stb/vmpeg/1/dst_left","w")
      l.write("%x" % xxx)
      l.close()
      t=open("/proc/stb/vmpeg/1/dst_top","w")
      t.write("%x" % yyy) 
      t.close()
      h=open("/proc/stb/vmpeg/1/dst_height","w")
      h.write("%x" % hhh)
      h.close()
      w=open("/proc/stb/vmpeg/1/dst_width","w")
      w.write("%x" % www)
      w.close()
      if dst_apply:
         l=open("/proc/stb/vmpeg/1/dst_apply","w")
         l.write("%x" % 1)
         l.close()
         l=open("/proc/stb/vmpeg/1/dst_apply","w")
         l.write("%x" % 0)
         l.close()
 
def Plugins(**kwargs):
    return [PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART], fnc = autostart),
            PluginDescriptor(name=_("Audio Pip enable"), description=_("enable PIP fullscreen for alternate audio"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, icon="audiopip.png", fnc=main)]
 
def main(session, **kwargs):
    session.open(AudioPip)
 
class AudioPip(Screen):
    def __init__(self, session, args = 0):
        Screen.__init__(self, session)
        if SystemInfo.get("NumVideoDecoders", 1) > 1:
           try:
              self.session.pipshown
           except:
              self.session.pipshown = False
           if self.session.pipshown:
              print "[AUDIOPIP] pip already shown"
              w=open("/proc/stb/vmpeg/0/dst_width","r")
              ww=w.readline().rstrip()
              w.close()
              if not ww.endswith("%x" % 720):
                 print "[AUDIOPIP] PiP is stopped"
                 self.showPiP()
                 print "[AUDIOPIP] unzooming PIP"
                 l=open("/proc/stb/vmpeg/0/dst_left","w")
                 l.write("%x" % 0)
                 l.close()
                 t=open("/proc/stb/vmpeg/0/dst_top","w")
                 t.write("%x" % 0)
                 t.close()
                 h=open("/proc/stb/vmpeg/0/dst_height","w")
                 h.write("%x" % 576)
                 h.close()
                 w=open("/proc/stb/vmpeg/0/dst_width","w")
                 w.write("%x" % 720)
                 w.close()
        if dst_apply:
                    l=open("/proc/stb/vmpeg/0/dst_apply","w")
                    l.write("%x" % 1)
                    l.close()
                    l=open("/proc/stb/vmpeg/0/dst_apply","w")
                    l.write("%x" % 0)
                    l.close()
                 try:
                    xxx = config.av.pip.value[0]
                    yyy = config.av.pip.value[1]
                    www = config.av.pip.value[2]
                    hhh = config.av.pip.value[3] 
                 except:
                    # default location
                    xxx = 400
                    yyy = 60
                    www = 240
                    hhh = 192
                 l=open("/proc/stb/vmpeg/1/dst_left","w")
                 l.write("%x" % xxx)
                 l.close()
                 t=open("/proc/stb/vmpeg/1/dst_top","w")
                 t.write("%x" % yyy) 
                 t.close()
                 h=open("/proc/stb/vmpeg/1/dst_height","w")
                 h.write("%x" % hhh)
                 h.close()
                 w=open("/proc/stb/vmpeg/1/dst_width","w")
                 w.write("%x" % www)
                 w.close()
        if dst_apply:
                    l=open("/proc/stb/vmpeg/1/dst_apply","w")
                    l.write("%x" % 1)
                    l.close()
                    l=open("/proc/stb/vmpeg/1/dst_apply","w")
                    l.write("%x" % 0)
                    l.close()
              else:
                 print "[AUDIOPIP] zoom PIP"
                 l=open("/proc/stb/vmpeg/0/dst_left","w")
                 l.write("%x" % 0)
                 l.close()
                 t=open("/proc/stb/vmpeg/0/dst_top","w")
                 t.write("%x" % 0)
                 t.close()
                 h=open("/proc/stb/vmpeg/0/dst_height","w")
                 h.write("%x" % 0)
                 h.close()
                 w=open("/proc/stb/vmpeg/0/dst_width","w")
                 w.write("%x" % 0)
                 w.close()
        if dst_apply:
                    l=open("/proc/stb/vmpeg/0/dst_apply","w")
                    l.write("%x" % 1)
                    l.close()
                    l=open("/proc/stb/vmpeg/0/dst_apply","w")
                    l.write("%x" % 0)
                    l.close()
                 l=open("/proc/stb/vmpeg/1/dst_left","w")
                 l.write("%x" % 0)
                 l.close()
                 t=open("/proc/stb/vmpeg/1/dst_top","w")
                 t.write("%x" % 0)
                 t.close()
                 h=open("/proc/stb/vmpeg/1/dst_height","w")
                 h.write("%x" % 576)
                 h.close()
                 w=open("/proc/stb/vmpeg/1/dst_width","w")
                 w.write("%x" % 720)
                 w.close()
        if dst_apply:
                    l=open("/proc/stb/vmpeg/1/dst_apply","w")
                    l.write("%x" % 1)
                    l.close()
                    l=open("/proc/stb/vmpeg/1/dst_apply","w")
                    l.write("%x" % 0)
                    l.close()
           else:
                 print "[AUDIOPIP] PiP is started"
                 self.showPiP()
                 print "[AUDIOPIP] popup PIP"
                 l=open("/proc/stb/vmpeg/0/dst_left","w")
                 l.write("%x" % 0)
                 l.close()
                 t=open("/proc/stb/vmpeg/0/dst_top","w")
                 t.write("%x" % 0)
                 t.close()
                 h=open("/proc/stb/vmpeg/0/dst_height","w")
                 h.write("%x" % 0)
                 h.close()
                 w=open("/proc/stb/vmpeg/0/dst_width","w")
                 w.write("%x" % 0)
                 w.close()
        if dst_apply:
                    l=open("/proc/stb/vmpeg/0/dst_apply","w")
                    l.write("%x" % 1)
                    l.close()
                    l=open("/proc/stb/vmpeg/0/dst_apply","w")
                    l.write("%x" % 0)
                    l.close()
                 l=open("/proc/stb/vmpeg/1/dst_left","w")
                 l.write("%x" % 0)
                 l.close()
                 t=open("/proc/stb/vmpeg/1/dst_top","w")
                 t.write("%x" % 0)
                 t.close()
                 h=open("/proc/stb/vmpeg/1/dst_height","w")
                 h.write("%x" % 576)
                 h.close()
                 w=open("/proc/stb/vmpeg/1/dst_width","w")
                 w.write("%x" % 720)
                 w.close()
        if dst_apply:
                    l=open("/proc/stb/vmpeg/1/dst_apply","w")
                    l.write("%x" % 1)
                    l.close()
                    l=open("/proc/stb/vmpeg/1/dst_apply","w")
                    l.write("%x" % 0)
                    l.close()
        else:
            print "[AUDIOPIP] too less video decoders"
        self.close()
 
    def showPiP(self):
            self.servicelist = self.session.instantiateDialog(ChannelSelection)
            if self.session.pipshown:
                     del self.session.pip
                     self.session.pipshown = False
            else:
                     self.session.pip = self.session.instantiateDialog(PictureInPicture)
                     self.session.pip.show()
                     newservice = self.session.nav.getCurrentlyPlayingServiceReference()
                     if self.session.pip.playService(newservice):
                             self.session.pipshown = True
                             self.session.pip.servicePath = self.servicelist.getCurrentServicePath()
                     else:
                             self.session.pipshown = False
                             del self.session.pip
                     self.session.nav.playService(newservice)

Edited by littlesat, 9 June 2014 - 20:48.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: New PiP features miss AudioPiP mode #3 Pr2

  • PLi® Contributor
  • 6,181 posts

+261
Excellent

Posted 10 June 2014 - 20:35

Hi,
 
I confirm that PiPAudio crash now the box.
 
If I get right your question:
 

Do you know how you can play the audio from another service via the mainscreen?

When AudioPiP is installed, enable PiP then press blue button and you will see the AudioPiP option.

Now if it is already possible to achieve this without playing with PiP sorry but I don't know how.

Anyway even if AudioPiP is doing the same as BigPiP please consider to add an option (if technically possible) to act just the opposite way grab the sound from the PiP channel (and hide it) and keep the image from the main screen, for user that cannot properly PiP 2 HDs channels because bigPiP is not working properly for them. :-)

Pr2

NO SUPPORT by PM, it is a forum make your question public so everybody can benefit from the question/answer.
If you think that my answer helps you, you can press the up arrow in bottom right of the answer.

Wanna help with OpenPLi Translation? Please read our Wiki Information for translators

Sat: Hotbird 13.0E, Astra 19.2E, Eutelsat5A 5.0W
VU+ Solo 4K: 2*DVB-S2 + 2*DVB-C/T/T2 (used in DVB-C) & Duo 4K: 2*DVB-S2X + DVB-C (FBC)

AB-Com: PULSe 4K 1*DVB-S2X (+ DVB-C/T/T2)
Edision OS Mio 4K: 1*DVB-S2X + 1*DVB-C/T/T2
 


Re: New PiP features miss AudioPiP mode #4 littlesat

  • PLi® Core member
  • 57,163 posts

+698
Excellent

Posted 10 June 2014 - 20:50

I am not aware of any box driver that plays the audio of the pip and shows the main stream...

The only boxes that can play the pip audio are the et boxes.. But then only in external pip mode via the rca connectors or scart...

We are depended on driver's options do do what you like... I'm really sorry...

Audiopip is currently not a required plugin anymore.. And I'm afraid gutemine is not willing to adapt it... In addition audiopip plugin can be made much simpler now... Start a pip when it is not required and set the bigpip pip mode... No pooks im procs are needed anymore.

And still, this is only a real requirement for boxes that cannot play pip for hd smoothly... So I'm also afraid box manufacturers are willing to add this option...

Edited by littlesat, 10 June 2014 - 20:55.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: New PiP features miss AudioPiP mode #5 Pr2

  • PLi® Contributor
  • 6,181 posts

+261
Excellent

Posted 10 June 2014 - 21:20

Hi,

No problem I understand and thanks to have take the time to explain me why it is not possible.

Pr2

NO SUPPORT by PM, it is a forum make your question public so everybody can benefit from the question/answer.
If you think that my answer helps you, you can press the up arrow in bottom right of the answer.

Wanna help with OpenPLi Translation? Please read our Wiki Information for translators

Sat: Hotbird 13.0E, Astra 19.2E, Eutelsat5A 5.0W
VU+ Solo 4K: 2*DVB-S2 + 2*DVB-C/T/T2 (used in DVB-C) & Duo 4K: 2*DVB-S2X + DVB-C (FBC)

AB-Com: PULSe 4K 1*DVB-S2X (+ DVB-C/T/T2)
Edision OS Mio 4K: 1*DVB-S2X + 1*DVB-C/T/T2
 




Also tagged with one or more of these keywords: PiP, ET9000

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users