*** empty log message ***

parent 4e64fc4e
......@@ -4,18 +4,46 @@
HEAD
* New parser using flex/bison.
* Support for files whose size is above 2GB.
* Fixed PS->TS conversion in the Solaris port.
* Added a DVB input.
* TS Multiplexer/Demultiplexer.
* Added libdvbpsi library support.
* Fixed a minor bug in the manager.
* Added a user's documentation.
* Added TTL option to override default multicast TTL of 1.
* Improved multicast support.
* Cleaned the syntax of the configuration files.
* IPv6 support.
* src/mpeg/converter.cpp, src/modules/ts2ts/ts2ts.cpp,
src/modules/ps2ts/ps2ts.cpp: bug fixed in suspend/resume.
* Makefile.opts.in: allow files > 2GB.
* src/core/common.h: got rid of ntoh and hton functions and then fixed the
Solaris PS->TS conversion.
* src/server/manager.cpp: fixed managemant of errors during inputs
initialization.
* src/core/modules.cpp: fixed a segfault.
* ALL: beginning of the WIN32 port.
* src/core/parsers.*, src/core/settings.cpp, src/core/lexer.*: new parser
using flex/bison.
* src/server/admin.cpp: nativeadmin disabled.
* AUTHORS, HOWTO, INSTALL, README: update.
* ALL: split main binary in smaller parts.
* configure.in: libdvbpsi, DVB drivers, and IPv6 detection.
* src/modules/dvbinput/*: new DVB input.
* src/mpeg/tsmux.*: generic TS multiplexer.
* src/mpeg/dvbpsi.*: libdvbpsi tools.
* src/mpeg/tsdemux.*: generic TS demultiplexer.
* src/modules/ts2ts/ts2ts.cpp, src/modules/ps2ts/ps2ts.cpp,
src/server/buffer.*: switch to I_TsPacketHandler for packet management.
* src/mpeg/ts.h, src/mpeg/ts.cpp: added I_TsPacketHandler interface and
a reference counter for TS packets.
* src/mpeg/converter.*, src/modules/ts2ts/ts2ts.cpp,
src/modules/ps2ts/ps2ts.cpp, src/modules/localinput/localinput.cpp,
src/modules/videoinput/videoinput.cpp: fill the fifo only if wanted.
* doc/vls-guide.sgml: user's documentation.
* vls.cfg, input.cfg: new default configuration.
* src/modules/localinput/localinput.cpp,
src/modules/videoinput/videoinput.cpp: case non-sensitivity.
* src/server/admin.cpp: configuration improvement.
* src/modules/netchannel/netoutput.*: multicast improvement from Eric
Doutreleau and TTL option;
* src/core/socket.*, src/core/network.*, src/modules/netchannel/*,
src/server/telnet.cpp, src/server/nativeadmin.cpp: IPv6 support with a lot
of cleaning (IPv6 from Alexis Guillard).
* src/core/settings.cpp: case non-sensitivity for section names.
* src/core/string.cpp: bug fix in the C_String::ToLower() method.
* Makefile.*: compilation improvement.
* config.guess, config.sub: GNU's latest version.
0.3.1
Thu, 6 Dec 2001 16:28:42 +0100
......
......@@ -2,7 +2,7 @@
* stack.cpp: Stack management
*-------------------------------------------------------------------------------
* (c)1999-2001 VideoLAN
* $Id: stack.cpp,v 1.1 2001/10/06 21:23:36 bozo Exp $
* $Id: stack.cpp,v 1.2 2002/04/03 18:02:39 bozo Exp $
*
* Authors: Benoit Steiner <benny@via.ecp.fr>
*
......@@ -46,10 +46,9 @@ template <class T> C_Fifo<T>::C_Fifo(unsigned int iCapacity, byte bAutoClean,
bool bOverride)
{
m_iCapacity = iCapacity;
m_apBuff = new T* [iCapacity];
m_apBuff = new T* [iCapacity + 1];
ASSERT(m_apBuff);
m_iSize = 0;
m_iWhereToPush = 0;
m_iWhereToPop = 0;
......@@ -89,19 +88,18 @@ template <class T> int C_Fifo<T>::Push(T* pData)
ASSERT(pData);
int iRc = NO_ERR;
if (m_iSize < m_iCapacity)
// Only _one_ _read_ access to m_iWhereToPop to calculate the current size.
if ( (m_iCapacity + 1 + (m_iWhereToPush - m_iWhereToPop))
% (m_iCapacity + 1) < m_iCapacity)
{
// Add the element
m_apBuff[m_iWhereToPush] = pData;
// Update the WhereToPush index
if (++m_iWhereToPush >= m_iCapacity)
if (++m_iWhereToPush >= m_iCapacity + 1)
{
// We must roll to the 1st element of the array
m_iWhereToPush = 0;
}
// The buffer has grown
m_iSize++;
}
else
{
......@@ -144,7 +142,9 @@ template <class T> int C_Fifo<T>::Push(T* pData)
iRc = BUFFER_FULL;
}
}
ASSERT(m_iWhereToPush != m_iWhereToPop);
return iRc;
}
......@@ -158,20 +158,18 @@ template <class T> T* C_Fifo<T>::Pop()
{
T* pData = NULL;
if (m_iSize > 0)
// Only _one_ _read_ access to m_iWhereToPush.
if (m_iWhereToPush != m_iWhereToPop)
{
// Read the element
pData = m_apBuff[m_iWhereToPop];
// Update the WhereToPop pointer
if (++m_iWhereToPop >= m_iCapacity)
if (++m_iWhereToPop >= m_iCapacity + 1)
{
// We must roll to the 1st element of the array */
m_iWhereToPop = 0;
}
// The buffer has shorten
m_iSize--;
}
return pData;
......@@ -186,13 +184,13 @@ template <class T> T* C_Fifo<T>::Pop()
template <class T> T& C_Fifo<T>::operator [] (unsigned int iIndex) const
{
// Check that there is a valid data stored at the given index
ASSERT(iIndex < m_iSize);
ASSERT(iIndex < Size());
// Return the address of the packet
unsigned int iElemPos = m_iWhereToPop + iIndex;
if(iElemPos >= m_iCapacity)
iElemPos = iElemPos - m_iCapacity;
if(iElemPos >= m_iCapacity + 1)
iElemPos = iElemPos - m_iCapacity - 1;
return *m_apBuff[iElemPos];
}
......
......@@ -2,7 +2,7 @@
* stach.h: Stack classes definitions
*-------------------------------------------------------------------------------
* (c)1999-2001 VideoLAN
* $Id: stack.h,v 1.1 2001/10/06 21:23:36 bozo Exp $
* $Id: stack.h,v 1.2 2002/04/03 18:02:39 bozo Exp $
*
* Authors: Benoit Steiner <benny@via.ecp.fr>
*
......@@ -45,7 +45,8 @@ template <class T> class C_Fifo
T* Pop();
inline unsigned int Size() const
{ return m_iSize; };
{ return (m_iCapacity + 1 + (m_iWhereToPush - m_iWhereToPop))
% (m_iCapacity + 1); };
inline unsigned int Capacity() const
{ return m_iCapacity; };
......@@ -56,8 +57,6 @@ template <class T> class C_Fifo
protected:
// Capacity of the buffer
unsigned int m_iCapacity;
// Number of TS_Packet stored in the Fifo
unsigned int m_iSize;
// Where to push packets in the buffer ?
unsigned int m_iWhereToPush;
// Where to pull them ?
......
......@@ -2,7 +2,7 @@
* admin.cpp:
*-------------------------------------------------------------------------------
* (c)1999-2001 VideoLAN
* $Id: admin.cpp,v 1.6 2002/03/29 23:27:44 asmax Exp $
* $Id: admin.cpp,v 1.7 2002/04/03 18:02:39 bozo Exp $
*
* Authors: Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
*
......@@ -384,7 +384,6 @@ int C_Admin::Init()
{
Log(m_hLog, LOG_ERROR, "Admin user \"" + strUserLogin +
"\" not valid (the group \"" + strGroup + "\" doesn't exists");
printf("%d\n", strGroup.Length());
iRc = GEN_ERR;
break;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment