[Deinterlace-checkins] CVS: DScaler/DScaler/dshowsource DSFileSource.cpp,1.8,1.9 DSSource.cpp,1.68,1
Brought to you by:
adcockj,
dschmelzer
From: Torbj?rn J. <to...@us...> - 2003-02-22 16:49:17
|
Update of /cvsroot/deinterlace/DScaler/DScaler/dshowsource In directory sc8-pr-cvs1:/tmp/cvs-serv22014 Modified Files: DSFileSource.cpp DSSource.cpp DSSourceBase.cpp Log Message: added some comments about requierments for OpenFile (to avoid crashing) Index: DSFileSource.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/dshowsource/DSFileSource.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** DSFileSource.cpp 18 Jan 2003 10:49:10 -0000 1.8 --- DSFileSource.cpp 22 Feb 2003 16:48:56 -0000 1.9 *************** *** 25,28 **** --- 25,31 ---- // // $Log$ + // Revision 1.9 2003/02/22 16:48:56 tobbej + // added some comments about requierments for OpenFile (to avoid crashing) + // // Revision 1.8 2003/01/18 10:49:10 laurentg // SetOverscan renamed SetAspectRatioData *************** *** 106,111 **** dlg.AddPage(&AudioDevice); dlg.DoModal(); } ! return TRUE; } --- 109,115 ---- dlg.AddPage(&AudioDevice); dlg.DoModal(); + return TRUE; } ! return FALSE; } *************** *** 122,125 **** --- 126,137 ---- BOOL CDSFileSource::OpenMediaFile(LPCSTR FileName, BOOL NewPlayList) { + //The output thread MUST be stoped when calling this function + //or the output thread will probably crash. + //There is two problems that causes this + //1: the delete of m_pDSGraph while output thread is running + //2: in Stop() all fields from DSRend is marked as not in use, this must + //be done since dsrend must release all buffered IMediaSamples or stop + //will deadlock. So that makes all buffers used in the output thread invalid. + if(m_pDSGraph!=NULL) { *************** *** 213,216 **** --- 225,229 ---- void CDSFileSource::Start() { + try { Index: DSSource.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/dshowsource/DSSource.cpp,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -r1.68 -r1.69 *** DSSource.cpp 5 Feb 2003 19:12:40 -0000 1.68 --- DSSource.cpp 22 Feb 2003 16:48:59 -0000 1.69 *************** *** 25,28 **** --- 25,31 ---- // // $Log$ + // Revision 1.69 2003/02/22 16:48:59 tobbej + // added some comments about requierments for OpenFile (to avoid crashing) + // // Revision 1.68 2003/02/05 19:12:40 tobbej // added support for capture devices where audio can be rendered from directshow *************** *** 1670,1673 **** --- 1673,1678 ---- void CDSCaptureSource::Stop() { + CAutoCriticalSection lock(m_hOutThreadSync); + CDSSourceBase::Stop(); Index: DSSourceBase.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/dshowsource/DSSourceBase.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** DSSourceBase.cpp 10 Jan 2003 17:38:47 -0000 1.14 --- DSSourceBase.cpp 22 Feb 2003 16:49:02 -0000 1.15 *************** *** 25,28 **** --- 25,31 ---- // // $Log$ + // Revision 1.15 2003/02/22 16:49:02 tobbej + // added some comments about requierments for OpenFile (to avoid crashing) + // // Revision 1.14 2003/01/10 17:38:47 adcockj // Interrim Check in of Settings rewrite *************** *** 110,117 **** CDSSourceBase::~CDSSourceBase() { - if(m_pDSGraph!=NULL) { ! delete m_pDSGraph; ! m_pDSGraph=NULL; } DeleteCriticalSection(&m_hOutThreadSync); --- 113,123 ---- CDSSourceBase::~CDSSourceBase() { { ! CAutoCriticalSection lock(m_hOutThreadSync); ! if(m_pDSGraph!=NULL) ! { ! delete m_pDSGraph; ! m_pDSGraph=NULL; ! } } DeleteCriticalSection(&m_hOutThreadSync); |