Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: vdr-dvd-0.3.4-rc7



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sunday 02 November 2003 19:26, Thorsten Schnebeck wrote:
> Am Sonntag, 02. November 2003 19:00 schrieben Sie:
> > http://jausoft.com/Files/vdr/vdr-dvd/vdr-dvd-0.3.4-rc7.tar.bz2
>
> On Sunday 02 November 2003 18:26, Thorsten Schnebeck wrote:
> > > Am Montag, 20. Oktober 2003 06:26 schrieben Sie:
> > > I have found one DVD, that has no working menu with vdr-dvd (The
> > > toplevel menu is ok, works with xine):
> > >
> > > The Bourne Identity
> >
> > please be kind and test with my latest pre7, thx.
> >
> > i guess everything regarding sync and timing should be fixed ..
>
> Hi Sven,
>
> that was fast :-) But sorry  now its get worse. The main menu still works,
> the submenus are still broken. But the inital language selection for the
> menu is now broken too.
>

ok .. this patch fixes the audio switch problem,
especially using an extra audio plugin, e.g. bitstreamout !

> Bye
>
>   Thorsten

this is what i could reproduce and fix ;-)

the other issues about the broken submenues
could not be reproduced because of the lack of an example..

my monster ag dvd runs well now ..

later, sven

- -- 
health & wealth
mailto:sgoethel@jausoft.com
www   : http://www.jausoft.com ; pgp: http://www.jausoft.com/gpg/
voice : +49-5121-999600 ; fax : +49-5121-999602
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/pXHwHdOA30NoFAARArMHAKCNr9Fd9ERiSuopHlguSWsiP4tmCACdF6mL
0uqmBiSncR4mkU5pUgtRUVk=
=WbES
-----END PGP SIGNATURE-----
diff -Nur dvd-0.3.4-rc7/control-dvd.c dvd-0.3.4-rc8/control-dvd.c
--- dvd-0.3.4-rc7/control-dvd.c	2003-10-12 05:29:06.000000000 +0200
+++ dvd-0.3.4-rc8/control-dvd.c	2003-11-02 21:50:39.000000000 +0100
@@ -635,7 +635,13 @@
 		      Stop();
 		      return osEnd;
 
-		case k1: if(player) player->NextAudioID(); break;
+		case k1: if(player) { 
+				bool wasVisible = visible;
+				if(wasVisible) Hide(); 
+				player->NextAudioID(); 
+				if(wasVisible) { usleep(200000); Show(); }
+				break; 
+			 }
 		case k2: if(player) {
 				player->NextSubpStream(); 
 				if ( player->GetCurrentNavSubpStream()==-1 )
diff -Nur dvd-0.3.4-rc7/dvd.h dvd-0.3.4-rc8/dvd.h
--- dvd-0.3.4-rc7/dvd.h	2003-11-02 10:17:47.000000000 +0100
+++ dvd-0.3.4-rc8/dvd.h	2003-11-02 20:00:02.000000000 +0100
@@ -18,7 +18,7 @@
 #include "setup-dvd.h"
 #include "i18n.h"
 
-static const char *VERSION        = "0.3.4-rc7";
+static const char *VERSION        = "0.3.4-rc8";
 static const char *DESCRIPTION    = "turn VDR into an (almost) full featured DVD player";
 static const char *MAINMENUENTRY  = "DVD";
 
diff -Nur dvd-0.3.4-rc7/player-dvd.c dvd-0.3.4-rc8/player-dvd.c
--- dvd-0.3.4-rc7/player-dvd.c	2003-11-02 17:41:47.000000000 +0100
+++ dvd-0.3.4-rc8/player-dvd.c	2003-11-02 21:52:34.000000000 +0100
@@ -36,6 +36,8 @@
 #define CTRLDEBUG
 #undef DEBUG_CONTROL
 #define DEBUG_CONTROL(format, args...) printf (format, ## args)
+#undef DEBUG_NAV
+#define DEBUG_NAV(format, args...) printf (format, ## args)
 #define AUDIOIDDEBUG
 #undef DEBUG_AUDIO_ID
 #define DEBUG_AUDIO_ID(format, args...) printf (format, ## args)
@@ -44,14 +46,12 @@
 #undef DEBUG_SUBP_ID
 #define DEBUG_SUBP_ID(format, args...) printf (format, ## args)
 #define AUDIOPLAYDEBUG
-#undef DEBUG_AUDIO_PLAY
-#define DEBUG_AUDIO_PLAY(format, args...) printf (format, ## args)
-#define NAVDEBUG
-#undef DEBUG_NAV
-#define DEBUG_NAV(format, args...) printf (format, ## args)
 #define IFRAMEDEBUG
 #undef DEBUG_IFRAME
 #define DEBUG_IFRAME(format, args...) printf (format, ## args)
+#undef DEBUG_AUDIO_PLAY
+#define DEBUG_AUDIO_PLAY(format, args...) printf (format, ## args)
+#define NAVDEBUG
 #define PTSDEBUG
 #undef DEBUG_PTS
 #define DEBUG_PTS(format, args...) printf (format, ## args)
@@ -264,8 +264,6 @@
 
 void cDvdPlayer::Empty(bool emptyDeviceToo)
 {
-  LOCK_THREAD;
-
   DEBUG_CONTROL("dvd .. Empty emptyDeviceToo=%d!\n", emptyDeviceToo);
 
   if (SPUdecoder) {
@@ -298,10 +296,12 @@
   }
   skipPlayVideo=0;
   IframeAssembler.Clear();
+
   if(emptyDeviceToo) {
 	  DeviceClear();
 	  DevicePlay();
   }
+
 }
 
 #ifdef DVDDEBUG
@@ -542,7 +542,6 @@
       if (IframeCnt > 0) {
 	  DeviceStillPicture(IframeAssembler.Get(), IframeAssembler.Used());
 	  IframeAssembler.Clear();
-	  IframeCnt = -1; // mark that we played an IFrame !
 	  IframeCnt = 0; // mark that we played an IFrame !
           if (blk_size <= 0 && !skipPlayVideo)
 	      sleept = 1*90U;  // 1ms*90t/ms
@@ -1030,7 +1029,7 @@
 
 void cDvdPlayer::SendIframe(bool doSend) 
 {
-	if (IframeCnt <= 0 && IframeAssembler.Used() && doSend ) {
+	if (IframeCnt == 0 && IframeAssembler.Used() && doSend ) {
 	    DEBUG_NAV("doing StillFrame\n");
 	    IframeCnt = 1;
 	}
@@ -1229,11 +1228,8 @@
 
 	          notifySeenAudioTrack( ((int)*data) & (MaxAudioTracks-1) );
 
-		  if ( currentNavAudioTrack == (*data & (MaxAudioTracks-1))) 
+		  if ( currentNavAudioTrack == (*data & (MaxAudioTracks-1)) ) 
 		  {
-		      if (ptsFlag) 
-			     seenPTS(pktpts);
-
 		      blk_attr = BLK_ATTR_AUDIO;
 	 	      currentNavAudioTrackType = audioType;
 
@@ -1258,6 +1254,9 @@
 			      blk_size = r;
 			      blk_attr |= BLK_ATTR_CACHE;
 			      cache_buf = 0;
+			      if (ptsFlag) 
+				     seenPTS(pktpts);
+
 			      DEBUG_AUDIO_PLAY("dvd pcm/fake stc=%8ums apts=%8ums vpts=%8ums len=%d\n", 
 				(unsigned int)(stcPTS/90U), 
 				(unsigned int)(ptsFlag?pktpts/90U:0), 
@@ -2123,7 +2122,7 @@
     sprintf(buffer,"%c%c", p1[1], p1[0]);
     dvdnav_audio_language_select(nav, buffer);
 
-    DeviceClear();
+    Empty();
 
     DEBUG_AUDIO_ID("cDvdPlayer::cDvdPlayer: curNavAu set to 0x%X, %s\n", 
 		currentNavAudioTrack, buffer);
@@ -2160,6 +2159,8 @@
     DEBUG_AUDIO_ID("cDvdPlayer::cDvdPlayer: found curNavAu(0x%X) at idx = %d\n", 
 		currentNavAudioTrack, i);
 
+    Empty();
+
     SetCurrentNavAudioTrackLocked(true);
     i = ( i + 1 ) % navAudioTracksSeen.Count();
     currentNavAudioTrack = ((IntegerListObject *)navAudioTracksSeen.Get(i))->getValue();
@@ -2170,8 +2171,6 @@
     sprintf(buffer,"%c%c", p1[1], p1[0]);
     dvdnav_audio_language_select(nav, buffer);
 
-    DeviceClear();
-
     DEBUG_AUDIO_ID("cDvdPlayer::cDvdPlayer: curNavAu next to 0x%X, %s\n", 
 		currentNavAudioTrack, buffer);
 }

Home | Main Index | Thread Index