Seite 1 von 1

Frage an die Programierprofis TAP Programierung

Verfasst: Fr 4. Dez 2015, 16:53
von omue
Hallo,

TAP Programierung:

wie bekomme bein Abspielen die Info, ob bei einem rec File Teletext vorhanden ist ?
Beim Fernsehen ist es ja einfach über "TYPE_TapChInfo" "ttxAvailable" abrufbar.
Aber bei Play finde ich nichts :cry:
Irgendwie muß es ja gehen, da es bei SmartEPG angezeigt wird.
Muß man dazu extra die PMT Infos aus dem rec File herausholen, oder gibt es einen einfachen Weg ?

Olaf

AW: Frage an die Programierprofis TAP Programierung

Verfasst: Fr 4. Dez 2015, 19:05
von FireBird
omue hat geschrieben:Irgendwie muß es ja gehen, da es bei SmartEPG angezeigt wird.

Ich habe mir die SE-Sourcen durchgesehen und im Nachhinein betrachtet, ist es Zufall, dass es das Feature gibt. TAP_Channel_GetInfo() funktioniert nämlich auch bei Playbacks, nur dass es nur die Felder ttxAvailable und dolbyTrack updatet, alle 24 andere Felder enthalten weiterhin die Daten des Live-Senders. :patsch:

AW: Frage an die Programierprofis TAP Programierung

Verfasst: Fr 4. Dez 2015, 20:11
von omue
:) :) 1000 Dank ! :D : :D :

Auf das einfachste kommt man manchmal nicht.

Klappt Super !

Olaf

AW: Frage an die Programierprofis TAP Programierung

Verfasst: So 6. Dez 2015, 07:11
von omue
Hallo,

Ich hänge mal noch eine Frage dran.

Im der SpartEpgPilot Infobox gibt es die Roten Icons für Transponder, Bild und Ton.
Wie Ihr Transponder und Bld herausbekommt ist mir klar.

Aber wie wertet Ihr den Ton aus ?
Die " tAudioTrk *AudioTrackInfo(void);" gibt ja immer die Transponder Werte aus. Auch wenn kein Ton da ist.

Wo ist der Trick ?


Olaf

AW: Frage an die Programierprofis TAP Programierung

Verfasst: So 6. Dez 2015, 09:40
von FireBird
Du meinst mit Transponder die Signal- und Quality-Icons? Den Zustand von Video und Audio bekommst Du, indem Du die Service-Statusmeldungen des Topfes beobachtest. Der folgende Code ist schnell zusammenkopiert und kann deshalb Fehler enthalten.

Code: Alles auswählen

if(event == EVT_SVCSTATUS)
{
  if(((param1 & SVCSTATUS_MASK_MainSub) >> 28) == CHANNEL_Main)
  {
    bool Err = (*param1 & SVCSTATUS_MASK_Error);

    if(*param1 & SVCSTATUS_MASK_Audio)
      AudioError = Err;
    else
      VideoError = Err;
  }
}
Die globalen bool Vars VideoError und AudioError enthalten dann den Zustand der beiden Streams.

AW: Frage an die Programierprofis TAP Programierung

Verfasst: So 6. Dez 2015, 11:41
von omue
Vielen Dank FireBird !

Über den Eintrag in Deiner lib war ich schon gestolpert.
-----
//In addition to the Service Status Mask defined in tap.h
#define SVCSTATUS_MASK_Audio 0x00010000
-----

Aber ich wusste das nicht richtig zu deuten.
Man muss dann nur noch auf (*param1 & SVCSTATUS_MASK_Error) = 0 warten und dann zurückstzen.
Du hat mir sehr geholfen !


Ich wünsch Dir einen schönen Advent !

Olaf

AW: Frage an die Programierprofis TAP Programierung

Verfasst: So 6. Dez 2015, 12:17
von FireBird
omue hat geschrieben:Man muss dann nur noch auf (*param1 & SVCSTATUS_MASK_Error) = 0 warten und dann zurückstzen.

Das macht obiges Beispiel, indem es VideoError und AudioError entsprechend setzt. Du wirst sehen, dass pro Senderwechsel zumindest 4 EVT_SVCSTATUS-Events kommen. Ein Video-Error=1, ein Audio-Error=1 und nachdem Ton bzw. Bild kommen, ein Video-Error=0 und ein Audio-Error=0.
Ich wünsch Dir einen schönen Advent !
Danke, gleichfalls. :)

AW: Frage an die Programierprofis TAP Programierung

Verfasst: So 6. Dez 2015, 12:32
von omue
Hallo Firebird,

Ich hatte es etwas umständlicher gemacht :oops:
Deine Herangehensweise ist eleganter :D

Heute ist ja Nikolausi.
Danke für Dein Geschenk :D

Schönen Nikolaus !


Olaf