mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed switching audio tracks in 'Transfer Mode' on the primary DVB device
This commit is contained in:
		| @@ -155,6 +155,7 @@ Stefan Huelswitt <huels@iname.com> | ||||
|  for adding a missing StripAudioPackets() to cDvbPlayer::Action() | ||||
|  for improving skipping channels that are (currently) not available | ||||
|  for fixing checking the Ca() status of a cDevice | ||||
|  for helping to fix switching audio tracks in 'Transfer Mode' on the primary DVB device | ||||
|  | ||||
| Ulrich R<>der <roeder@efr-net.de> | ||||
|  for pointing out that there are channels that have a symbol rate higher than | ||||
| @@ -444,3 +445,6 @@ Jaakko Hyv | ||||
|  | ||||
| Dennis Noordsij <dennis.noordsij@wiral.com> | ||||
|  for reporting a small glitch when switching channels | ||||
|  | ||||
| Steffen Barszus <st_barszus@gmx.de> | ||||
|  for reporting a bug in switching audio tracks in 'Transfer Mode' on the primary DVB device | ||||
|   | ||||
							
								
								
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -1634,3 +1634,6 @@ Video Disk Recorder Revision History | ||||
|   by 1000 until it is larger than 1000000. | ||||
| - Fixed skipping unavailable channels when zapping downwards. | ||||
| - Fixed checking the Ca() status of a cDevice (thanks to Stefan Huelswitt). | ||||
| - Fixed switching audio tracks in 'Transfer Mode' on the primary DVB device | ||||
|   (thanks to Steffen Barszus and Stefan Huelswitt for reporting this one and | ||||
|   helping to fix it). | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: dvbdevice.c 1.26 2002/10/20 14:10:49 kls Exp $ | ||||
|  * $Id: dvbdevice.c 1.27 2002/10/26 09:44:49 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "dvbdevice.h" | ||||
| @@ -742,7 +742,7 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) | ||||
|      CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, true)); | ||||
|      } | ||||
|   else if (StartTransferMode) | ||||
|      cControl::Launch(new cTransferControl(this, Channel->Vpid(), Channel->Apid1(), 0, 0, 0)); | ||||
|      cControl::Launch(new cTransferControl(this, Channel->Vpid(), Channel->Apid1(), Channel->Apid2(), Channel->Dpid1(), Channel->Dpid2())); | ||||
|  | ||||
|   // Start setting system time: | ||||
|  | ||||
| @@ -777,6 +777,8 @@ int cDvbDevice::NumAudioTracksDevice(void) const | ||||
|  | ||||
| const char **cDvbDevice::GetAudioTracksDevice(int *CurrentTrack) const | ||||
| { | ||||
|   if (Ca()) | ||||
|      return NULL; // a Ca recording session blocks switching live audio tracks | ||||
|   if (NumAudioTracks()) { | ||||
|      if (CurrentTrack) | ||||
|         *CurrentTrack = (pidHandles[ptAudio].pid == aPid1) ? 0 : 1; | ||||
| @@ -790,8 +792,11 @@ const char **cDvbDevice::GetAudioTracksDevice(int *CurrentTrack) const | ||||
| void cDvbDevice::SetAudioTrackDevice(int Index) | ||||
| { | ||||
|   if (0 <= Index && Index < NumAudioTracks()) { | ||||
|      int vpid = pidHandles[ptVideo].pid; // need to turn video PID off/on to restart demux | ||||
|      DelPid(vpid); | ||||
|      DelPid(pidHandles[ptAudio].pid); | ||||
|      AddPid(Index ? aPid2 : aPid1, ptAudio); | ||||
|      AddPid(vpid, ptVideo); | ||||
|      } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user