rpms/vdr/devel vdr-1.4.6-1-syncearly.patch, NONE, 1.1 vdr.spec, 1.12, 1.13
Ville Skytta (scop)
fedora-extras-commits at redhat.com
Mon Jun 11 16:47:27 UTC 2007
- Previous message: rpms/spandsp/devel .cvsignore,1.10,1.11 sources,1.10,1.11
- Next message: rpms/policycoreutils/devel policycoreutils-gui.patch, 1.17, 1.18 policycoreutils-rhat.patch, 1.306, 1.307 policycoreutils.spec, 1.416, 1.417
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: scop
Update of /cvs/pkgs/rpms/vdr/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv3929
Modified Files:
vdr.spec
Added Files:
vdr-1.4.6-1-syncearly.patch
Log Message:
* Mon Jun 11 2007 Ville Skyttä <ville.skytta at iki.fi> - 1.4.7-2
- Apply Reinhard NiÃl's "sync early" patch for smoother channel changes.
vdr-1.4.6-1-syncearly.patch:
--- NEW FILE vdr-1.4.6-1-syncearly.patch ---
diff -Nurp ../vdr-1.4.6-1-orig/device.c ./device.c
--- ../vdr-1.4.6-1-orig/device.c 2006-09-03 12:13:25.000000000 +0200
+++ ./device.c 2007-05-06 21:22:52.000000000 +0200
@@ -691,7 +691,7 @@ eSetChannelResult cDevice::SetChannel(co
for (int i = 0; i < MAXDPIDS; i++)
SetAvailableTrack(ttDolby, i, Channel->Dpid(i), Channel->Dlang(i));
}
- if (!NeedsTransferMode)
+ if (!NeedsTransferMode || GetCurrentAudioTrack() == ttNone)
EnsureAudioTrack(true);
}
cStatus::MsgChannelSwitch(this, Channel->Number()); // only report status if channel switch successfull
diff -Nurp ../vdr-1.4.6-1-orig/remux.c ./remux.c
--- ../vdr-1.4.6-1-orig/remux.c 2006-12-01 15:46:25.000000000 +0100
+++ ./remux.c 2007-05-06 21:22:52.000000000 +0200
@@ -1853,12 +1853,13 @@ void cTS2PES::ts_to_pes(const uint8_t *B
#define RESULTBUFFERSIZE KILOBYTE(256)
-cRemux::cRemux(int VPid, const int *APids, const int *DPids, const int *SPids, bool ExitOnFailure)
+cRemux::cRemux(int VPid, const int *APids, const int *DPids, const int *SPids, bool ExitOnFailure, bool SyncEarly)
{
exitOnFailure = ExitOnFailure;
isRadio = VPid == 0 || VPid == 1 || VPid == 0x1FFF;
numUPTerrors = 0;
synced = false;
+ syncEarly = SyncEarly;
skipped = 0;
numTracks = 0;
resultSkipped = 0;
@@ -2062,12 +2063,14 @@ uchar *cRemux::Get(int &Count, uchar *Pi
cThread::EmergencyExit(true);
}
else if (!synced) {
- if (pt == I_FRAME) {
+ if (pt == I_FRAME || syncEarly) {
if (PictureType)
*PictureType = pt;
resultSkipped = i; // will drop everything before this position
- SetBrokenLink(data + i, l);
synced = true;
+ if (pt == I_FRAME) // syncEarly: it's ok but there is no need to call SetBrokenLink()
+ SetBrokenLink(data + i, l);
+else fprintf(stderr, "video: synced early\n");
}
}
else if (Count)
@@ -2080,12 +2083,13 @@ uchar *cRemux::Get(int &Count, uchar *Pi
l = GetPacketLength(data, resultCount, i);
if (l < 0)
return resultData;
- if (isRadio) {
+ if (isRadio || !synced && syncEarly) {
if (!synced) {
- if (PictureType)
+ if (PictureType && isRadio)
*PictureType = I_FRAME;
resultSkipped = i; // will drop everything before this position
synced = true;
+if (!isRadio) fprintf(stderr, "audio: synced early\n");
}
else if (Count)
return resultData;
diff -Nurp ../vdr-1.4.6-1-orig/remux.h ./remux.h
--- ../vdr-1.4.6-1-orig/remux.h 2006-03-25 13:27:30.000000000 +0100
+++ ./remux.h 2007-05-06 21:22:52.000000000 +0200
@@ -40,6 +40,7 @@ private:
bool isRadio;
int numUPTerrors;
bool synced;
+ bool syncEarly;
int skipped;
cTS2PES *ts2pes[MAXTRACKS];
int numTracks;
@@ -47,12 +48,13 @@ private:
int resultSkipped;
int GetPid(const uchar *Data);
public:
- cRemux(int VPid, const int *APids, const int *DPids, const int *SPids, bool ExitOnFailure = false);
+ cRemux(int VPid, const int *APids, const int *DPids, const int *SPids, bool ExitOnFailure = false, bool SyncEarly = false);
///< Creates a new remuxer for the given PIDs. VPid is the video PID, while
///< APids, DPids and SPids are pointers to zero terminated lists of audio,
///< dolby and subtitle PIDs (the pointers may be NULL if there is no such
///< PID). If ExitOnFailure is true, the remuxer will initiate an "emergency
- ///< exit" in case of problems with the data stream.
+ ///< exit" in case of problems with the data stream. SyncEarly causes cRemux
+ ///< to sync as soon as a video or audio frame is seen.
~cRemux();
void SetTimeouts(int PutTimeout, int GetTimeout) { resultBuffer->SetTimeouts(PutTimeout, GetTimeout); }
///< By default cRemux assumes that Put() and Get() are called from different
diff -Nurp ../vdr-1.4.6-1-orig/transfer.c ./transfer.c
--- ../vdr-1.4.6-1-orig/transfer.c 2006-01-29 18:24:39.000000000 +0100
+++ ./transfer.c 2007-05-06 21:23:35.000000000 +0200
@@ -19,7 +19,7 @@ cTransfer::cTransfer(int VPid, const int
,cThread("transfer")
{
ringBuffer = new cRingBufferLinear(TRANSFERBUFSIZE, TS_SIZE * 2, true, "Transfer");
- remux = new cRemux(VPid, APids, Setup.UseDolbyDigital ? DPids : NULL, SPids);
+ remux = new cRemux(VPid, APids, Setup.UseDolbyDigital ? DPids : NULL, SPids, false, true);
}
cTransfer::~cTransfer()
Index: vdr.spec
===================================================================
RCS file: /cvs/pkgs/rpms/vdr/devel/vdr.spec,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- vdr.spec 12 May 2007 14:32:11 -0000 1.12
+++ vdr.spec 11 Jun 2007 16:46:52 -0000 1.13
@@ -19,7 +19,7 @@
Name: vdr
Version: 1.4.7
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Video Disk Recorder
Group: Applications/Multimedia
@@ -44,6 +44,8 @@
Patch2: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.4.6-liemikuutio-1.13.diff.gz
Patch3: %{name}-1.4.6-paths.patch
Patch4: %{name}-1.4.1-dumpable.patch
+# http://article.gmane.org/gmane.linux.vdr/32708
+Patch5: %{name}-1.4.6-1-syncearly.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libjpeg-devel
@@ -129,6 +131,7 @@
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p0
# Fix up paths
sed -i \
@@ -423,6 +426,9 @@
%endif
%changelog
+* Mon Jun 11 2007 Ville Skyttä <ville.skytta at iki.fi> - 1.4.7-2
+- Apply Reinhard NiÃl's "sync early" patch for smoother channel changes.
+
* Sat May 12 2007 Ville Skyttä <ville.skytta at iki.fi> - 1.4.7-1
- 1.4.7.
- Previous message: rpms/spandsp/devel .cvsignore,1.10,1.11 sources,1.10,1.11
- Next message: rpms/policycoreutils/devel policycoreutils-gui.patch, 1.17, 1.18 policycoreutils-rhat.patch, 1.306, 1.307 policycoreutils.spec, 1.416, 1.417
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list