[svn] / trunk / xvidextra / src / apps / miniconvert / recompress.cpp Repository:
ViewVC logotype

Diff of /trunk/xvidextra/src/apps/miniconvert/recompress.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2044, Tue Sep 20 08:19:41 2011 UTC revision 2045, Tue Oct 4 20:24:39 2011 UTC
# Line 162  Line 162 
162    m_pVideoMeter = m_pSplitter = m_pSrcFilter = m_pXvidEncoder = 0;    m_pVideoMeter = m_pSplitter = m_pSrcFilter = m_pXvidEncoder = 0;
163    //m_pEmmsDummy = 0;    //m_pEmmsDummy = 0;
164    m_pMuxer = m_pFileWriter = m_pChgType = 0;    m_pMuxer = m_pFileWriter = m_pChgType = 0;
165      m_pIChgTypeNorm = 0;
166    m_pXvidConfig = 0;    m_pXvidConfig = 0;
167    m_bBreakRequested = 0;    m_bBreakRequested = 0;
168    
# Line 195  Line 196 
196    m_szSourceFilePath = m_szDstFilePath = 0;    m_szSourceFilePath = m_szDstFilePath = 0;
197    m_curSize = 0;    m_curSize = 0;
198    
 #if 0  
   if (m_pEmmsDummy) {  
     m_pGraph->RemoveFilter(m_pEmmsDummy);  
     m_pEmmsDummy->Release();  
     m_pEmmsDummy = 0;  
   }  
 #endif  
   
199    if (m_pVideoMeter) {    if (m_pVideoMeter) {
200      m_pGraph->RemoveFilter(m_pVideoMeter);      m_pGraph->RemoveFilter(m_pVideoMeter);
201      m_pVideoMeter->Release();      m_pVideoMeter->Release();
# Line 232  Line 225 
225      m_pXvidConfig = 0;      m_pXvidConfig = 0;
226    }    }
227    
228      if (m_pIChgTypeNorm) {
229        m_pIChgTypeNorm->Release();
230        m_pIChgTypeNorm = 0;
231      }
232    
233    if (m_pChgType) {    if (m_pChgType) {
234      m_pGraph->RemoveFilter(m_pChgType);      m_pGraph->RemoveFilter(m_pChgType);
235      m_pChgType->Release();      m_pChgType->Release();
# Line 420  Line 418 
418          if (hr == S_OK) hr = ConnectFilters(m_pGraph, pOutVideoPin, m_pXvidEncoder, GUID_NULL, GUID_NULL, 0);          if (hr == S_OK) hr = ConnectFilters(m_pGraph, pOutVideoPin, m_pXvidEncoder, GUID_NULL, GUID_NULL, 0);
419                  if (hr == S_OK) pCompressedVideoFilter = m_pXvidEncoder;                  if (hr == S_OK) pCompressedVideoFilter = m_pXvidEncoder;
420    
 #if 0  
         if (!m_bIsWMV) {  
           // dummy filter - emms instruction only  
           CUnknown *pVidMeterEmms = 0;  
           if (hr == S_OK) pVidMeterEmms = CProgressNotifyFilter::CreateInstance(0, &hr, 0);  
           if (hr == S_OK) hr = pVidMeterEmms->NonDelegatingQueryInterface(IID_IBaseFilter, (void **)&m_pEmmsDummy);  
           //if (hr == S_OK) hr = CoCreateInstance(CLSID_ProgressNotifyFilter, 0, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&m_pEmmsDummy);  
           if (hr == S_OK) hr = m_pGraph->AddFilter(m_pEmmsDummy, TEXT("Video meter emms"));  
           IPin *pOutPin = 0, *pInPin=0;  
   
           if (hr == S_OK) hr = GetFilterPin(m_pXvidEncoder, PINDIR_INPUT, 1, &pInPin, GUID_NULL, GUID_NULL);  
           if (hr == S_OK) hr = pInPin->ConnectedTo(&pOutPin);  
           if (hr == S_OK) hr = m_pGraph->Disconnect(pInPin);  
           if (hr == S_OK) hr = m_pGraph->Disconnect(pOutPin);  
           if (hr == S_OK) hr = ConnectFilters(m_pGraph, pOutPin, m_pEmmsDummy, GUID_NULL, GUID_NULL, 1);  
           if (hr == S_OK) hr = ConnectFilters(m_pGraph, m_pEmmsDummy, pInPin, GUID_NULL, GUID_NULL, 1);  
   
           if (pInPin) pInPin->Release();  
           if (pOutPin) pOutPin->Release();  
         }  
 #endif  
   
421          m_ToAlloc = 0;          m_ToAlloc = 0;
422          if (hr == S_OK) hr = m_pXvidEncoder->QueryInterface(IID_IAMVfwCompressDialogs, (void **)&m_pXvidConfig);          if (hr == S_OK) hr = m_pXvidEncoder->QueryInterface(IID_IAMVfwCompressDialogs, (void **)&m_pXvidConfig);
423    
# Line 526  Line 502 
502    if (pIConfigInterleaving) pIConfigInterleaving->Release();    if (pIConfigInterleaving) pIConfigInterleaving->Release();
503  #endif  #endif
504    
505    if (hr == S_OK) hr = ConnectFilters(m_pGraph, m_pChgType, m_pMuxer, MEDIATYPE_Video, GUID_NULL, 1);    if (hr == S_OK) hr = m_pChgType->QueryInterface(IID_IRecProgressNotify, (void **)&m_pIChgTypeNorm);
506      if (hr == S_OK) hr = m_pIChgTypeNorm->SetTotalFrames(m_TotalFrames);
507      if (hr == S_OK) m_pIChgTypeNorm->SetPass(in_Pass);
508    
509      if (in_Pass == 2) {
510        LONGLONG FpsNom = m_MaxETime - m_MinETime, FpsDen = m_CountedFrames > 1 ? m_CountedFrames-1 : 1;
511        LONGLONG cAvgTimeForFrame = FpsNom/FpsDen;
512        //if (((ULONGLONG)m_AvgTimeForFrame*m_CountedFrames - FpsNom) > m_AvgTimeForFrame + m_CountedFrames) {
513        if (!m_AvgTimeForFrame) {
514          m_pIChgTypeNorm->SetForceTimeParams(m_MinSTime, FpsNom, FpsDen);
515        }
516      }
517    
518    IRecProgressNotify *pChgN = 0;    if (hr == S_OK) hr = ConnectFilters(m_pGraph, m_pChgType, m_pMuxer, MEDIATYPE_Video, GUID_NULL, 1);
   if (hr == S_OK) hr = m_pChgType->QueryInterface(IID_IRecProgressNotify, (void **)&pChgN);  
   if (hr == S_OK) hr = pChgN->SetTotalFrames(m_TotalFrames);  
   if (pChgN) pChgN->Release();  
519    
520    if (hr == S_OK) hr = AddFileWriter(m_szDstFilePath);    if (hr == S_OK) hr = AddFileWriter(m_szDstFilePath);
521    if (hr == S_OK) hr = ConnectFilters(m_pGraph, m_pMuxer, m_pFileWriter, GUID_NULL, GUID_NULL, 1);    if (hr == S_OK) hr = ConnectFilters(m_pGraph, m_pMuxer, m_pFileWriter, GUID_NULL, GUID_NULL, 1);
# Line 539  Line 523 
523    if ((hr == S_OK) && ((in_Pass ==2) || (!m_pXvidEncoder))) hr = AddAudioStreams(0);    if ((hr == S_OK) && ((in_Pass ==2) || (!m_pXvidEncoder))) hr = AddAudioStreams(0);
524    else if (hr == S_OK) hr = AddAudioStreams(1);    else if (hr == S_OK) hr = AddAudioStreams(1);
525    
 #if 0  
   IConfigAviMux *pIConfigAviMux = 0;  
   if (hr == S_OK) hr = m_pMuxer->QueryInterface(IID_IConfigAviMux, (void **)&pIConfigAviMux);  
   pIConfigAviMux->SetMasterStream(0);  
   if (pIConfigAviMux) pIConfigAviMux->Release();  
 #endif  
   
526    if (pVMeterInVideoPin) pVMeterInVideoPin->Release();    if (pVMeterInVideoPin) pVMeterInVideoPin->Release();
527    if (pOutVideoPin) pOutVideoPin->Release();    if (pOutVideoPin) pOutVideoPin->Release();
528    DeleteFile(m_szDstFilePath);    DeleteFile(m_szDstFilePath);
# Line 716  Line 693 
693                                                                                   (void **)&pIMp3Normalizer);                                                                                   (void **)&pIMp3Normalizer);
694                  if (hr == S_OK) hr = m_pGraph->AddFilter(pIMp3Normalizer, 0);                  if (hr == S_OK) hr = m_pGraph->AddFilter(pIMp3Normalizer, 0);
695    
696                    IRecProgressNotify *pAudioRecNotify = 0;
697                    pIMp3Normalizer->QueryInterface(IID_IRecProgressNotify, (void **)&pAudioRecNotify);
698                    pAudioRecNotify->SetAudioBitrate(UsedDataRate);
699                    pAudioRecNotify->Release();
700    
701                  IPin *pNormMp3Pin = 0;                  IPin *pNormMp3Pin = 0;
702                  if (hr == S_OK) hr = GetFilterPin(pIMp3Normalizer, PINDIR_INPUT, 0, &pNormMp3Pin, GUID_NULL, GUID_NULL);                  if (hr == S_OK) hr = GetFilterPin(pIMp3Normalizer, PINDIR_INPUT, 0, &pNormMp3Pin, GUID_NULL, GUID_NULL);
703                  if (hr == S_OK) hr = m_pGraph->ConnectDirect(pMp3Pin, pNormMp3Pin, pMp3mt);                  if (hr == S_OK) hr = m_pGraph->ConnectDirect(pMp3Pin, pNormMp3Pin, pMp3mt);
# Line 821  Line 803 
803  HRESULT  HRESULT
804  RecompressGraph::AddSourceFilter(LPCTSTR in_szFilePath)  RecompressGraph::AddSourceFilter(LPCTSTR in_szFilePath)
805  {  {
806      HRESULT hr = S_OK;
807    if (!m_pGraph || m_pSrcFilter) return E_UNEXPECTED;    if (!m_pGraph || m_pSrcFilter) return E_UNEXPECTED;
808    
809      BYTE StartBytes[512];
810      DWORD cbReadHdr=0;
811      int ExpectedType=0;
812      HANDLE hFile = CreateFile(in_szFilePath, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
813      if (hFile != INVALID_HANDLE_VALUE) {
814        if (ReadFile(hFile, StartBytes, sizeof(StartBytes), &cbReadHdr, 0) && cbReadHdr == sizeof(StartBytes)) {
815          if ((*(int *)StartBytes) == 'FFIR') ExpectedType = 1;  // AVI
816          else if (((int *)StartBytes)[1] == 'pytf' || ((int *)StartBytes)[1] == 'tadm' || ((int *)StartBytes)[1] == 'voom') ExpectedType = 2; // MOV/MP4
817          else if (((int *)StartBytes)[0] == 0xA3DF451A) {
818            for (int iPos = 4; (ExpectedType == 0 && iPos +11 < sizeof(StartBytes)); iPos++) {
819              if ((*(int *)&(StartBytes[iPos]) == 0x6D888242) && (*(int *)&(StartBytes[iPos+3]) == 'rtam')
820                && (*(int *)&(StartBytes[iPos+7]) == 'akso')) {
821                ExpectedType = 3; // MKV
822              }
823            }
824          } else if (((int *)StartBytes)[0] == 0x75B22630) ExpectedType = 4;  // WMV/ASF
825        } else hr = VFW_E_FILE_TOO_SHORT;
826        CloseHandle(hFile);
827      } else return VFW_E_NOT_FOUND;
828      if (hr != S_OK) return hr;
829    
830    int sLen = _tcslen(in_szFilePath);    int sLen = _tcslen(in_szFilePath);
831    OLECHAR *pwName = new OLECHAR [sLen+1];    OLECHAR *pwName = new OLECHAR [sLen+1];
832  #ifndef UNICODE  #ifndef UNICODE
# Line 831  Line 835 
835    wcsncpy(pwName, in_szFilePath, sLen+1);    wcsncpy(pwName, in_szFilePath, sLen+1);
836  #endif  #endif
837    
838    HRESULT hr = TrySourceFilter(pwName, (GUID *)&CLSID_AsyncReader);    // preferred configuration:
839    //    // ASF/WMV : WM ASF Reader
840    //  AddFilterByCLSID((GUID *)&CLSID_AsyncReader, &m_pSrcFilter);    // AVI: Async Reader -> Avi Splitter
841    //IFileSourceFilter* pSrc =0 ;    // MOV/MP4: Async Reader -> Lav splitter (secondary Haali splitter) (Haali has problems with some movs and mp4 files)
842    //if (hr == S_OK) hr = m_pSrcFilter->QueryInterface(IID_IFileSourceFilter, (void **)(&pSrc));    // MKV: Async Reader -> Haali splitter (secondary Lav splitter)
843    //if (hr == S_OK) hr = pSrc->Load(in_szFilePath, 0);//&m_SrcFileMediaType);    // if configuration Reader->Splitter is not available for mov/mp4/mkv, then reader+splitter is tried.
844      // if everything fails, we let the GraphBuilder to choose filters by default.
845    
846    IPin* pOutSrcPin=0, *pVideoPin=0;    IPin* pOutSrcPin=0, *pVideoPin=0;
847      if (ExpectedType == 4) m_bIsWMV = 1;
848      else {
849        hr = TrySourceFilter(pwName, (GUID *)&CLSID_AsyncReader);
850    
851    if (hr == S_OK) hr = GetFilterPin(m_pSrcFilter, PINDIR_OUTPUT, 0, &pOutSrcPin, GUID_NULL, GUID_NULL);    if (hr == S_OK) hr = GetFilterPin(m_pSrcFilter, PINDIR_OUTPUT, 0, &pOutSrcPin, GUID_NULL, GUID_NULL);
852    IEnumMediaTypes* pEnumSrcMediaTypes=0;    IEnumMediaTypes* pEnumSrcMediaTypes=0;
853    if (hr == S_OK) hr = pOutSrcPin->EnumMediaTypes(&pEnumSrcMediaTypes);    if (hr == S_OK) hr = pOutSrcPin->EnumMediaTypes(&pEnumSrcMediaTypes);
   //if (hr == S_OK) hr = pEnumSrcMediaTypes->Reset();  
854    AM_MEDIA_TYPE *pMt =0;    AM_MEDIA_TYPE *pMt =0;
855    if (hr == S_OK) do hr = pEnumSrcMediaTypes->Next(1, &pMt, 0);    if (hr == S_OK) hr = pEnumSrcMediaTypes->Next(1, &pMt, 0);
856    while (hr == S_OK && (pMt->majortype != MEDIATYPE_Stream || pMt->subtype == GUID_NULL));    while (hr == S_OK && (pMt->majortype != MEDIATYPE_Stream || pMt->subtype == GUID_NULL)) {
857        DeleteMediaType(pMt);
858        pMt = 0;
859        hr = pEnumSrcMediaTypes->Next(1, &pMt, 0);
860      }
861    if (hr == S_OK) m_SrcFileMediaType = *pMt;    if (hr == S_OK) m_SrcFileMediaType = *pMt;
862    if (pMt) DeleteMediaType(pMt);    if (pMt) DeleteMediaType(pMt);
863    if (pEnumSrcMediaTypes) pEnumSrcMediaTypes->Release();    if (pEnumSrcMediaTypes) pEnumSrcMediaTypes->Release();
# Line 856  Line 868 
868          m_bIsWMV = 1;          m_bIsWMV = 1;
869        } else if (m_SrcFileMediaType.subtype == MEDIASUBTYPE_Avi)        } else if (m_SrcFileMediaType.subtype == MEDIASUBTYPE_Avi)
870          hr = AddFilterByCLSID((GUID *)&CLSID_AviSplitter, &m_pSplitter);          hr = AddFilterByCLSID((GUID *)&CLSID_AviSplitter, &m_pSplitter);
871        else {//if (m_SrcFileMediaType.subtype == MEDIASUBTYPE_MP4)          else {
872          hr = AddFilterByCLSID((GUID *)&CLSID_LAVSplitter, &m_pSplitter);            hr = AddFilterByCLSID((GUID *)((ExpectedType == 3) ? &CLSID_HaaliMediaSplitter_AR : &CLSID_LAVSplitter), &m_pSplitter);
873          if (hr == S_OK) {          if (hr == S_OK) {
874            hr = ConnectFilters(m_pGraph, pOutSrcPin, m_pSplitter);            hr = ConnectFilters(m_pGraph, pOutSrcPin, m_pSplitter);
875            if (hr == S_OK) hr = GetFilterPin(m_pSplitter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);            if (hr == S_OK) hr = GetFilterPin(m_pSplitter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);
876            if (m_pSplitter || !pVideoPin) {            if (m_pSplitter && !pVideoPin) {
877              m_pGraph->RemoveFilter(m_pSplitter);              m_pGraph->RemoveFilter(m_pSplitter);
878              m_pSplitter->Release();              m_pSplitter->Release();
879              m_pSplitter = 0;              m_pSplitter = 0;
# Line 869  Line 881 
881            if (pVideoPin) {pVideoPin->Release(); pVideoPin = 0;}            if (pVideoPin) {pVideoPin->Release(); pVideoPin = 0;}
882          }          }
883          if (!m_pSplitter) {          if (!m_pSplitter) {
884            hr = AddFilterByCLSID((GUID *)&CLSID_HaaliMediaSplitter_AR, &m_pSplitter);              hr = AddFilterByCLSID((GUID *)((ExpectedType != 3) ? &CLSID_HaaliMediaSplitter_AR : &CLSID_LAVSplitter), &m_pSplitter);
885            if (hr == S_OK) {            if (hr == S_OK) {
886              hr = ConnectFilters(m_pGraph, pOutSrcPin, m_pSplitter);              hr = ConnectFilters(m_pGraph, pOutSrcPin, m_pSplitter);
887              if (hr == S_OK) hr = GetFilterPin(m_pSplitter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);              if (hr == S_OK) hr = GetFilterPin(m_pSplitter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);
888              if (m_pSplitter || !pVideoPin) {              if (m_pSplitter && !pVideoPin) {
889                m_pGraph->RemoveFilter(m_pSplitter);                m_pGraph->RemoveFilter(m_pSplitter);
890                m_pSplitter->Release();                m_pSplitter->Release();
891                m_pSplitter = 0;                m_pSplitter = 0;
# Line 884  Line 896 
896        }        }
897      } else hr = VFW_E_TYPE_NOT_ACCEPTED;      } else hr = VFW_E_TYPE_NOT_ACCEPTED;
898    }    }
899      }
900    
901    if (m_bIsWMV || !m_pSplitter) {    if (m_bIsWMV || !m_pSplitter) {
902      if (m_pSrcFilter) {      if (m_pSrcFilter) {
# Line 893  Line 906 
906      m_pSrcFilter = 0;      m_pSrcFilter = 0;
907      if (m_bIsWMV) hr = TrySourceFilter(pwName, (GUID *)&CLSID_WMAsfReader );      if (m_bIsWMV) hr = TrySourceFilter(pwName, (GUID *)&CLSID_WMAsfReader );
908      else {      else {
909        //if (m_SrcFileMediaType.majortype == MEDIATYPE_Stream && m_SrcFileMediaType.subtype != GUID_NULL) {        hr = TrySourceFilter(pwName, (GUID *)(ExpectedType == 3 ? &CLSID_HaaliMediaSplitter : &CLSID_LAVSource));
         hr = TrySourceFilter(pwName, (GUID *)&CLSID_LAVSource);  
910          if (hr == S_OK) hr = GetFilterPin(m_pSrcFilter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);          if (hr == S_OK) hr = GetFilterPin(m_pSrcFilter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);
911          if (!m_pSrcFilter || !pVideoPin) {          if (!m_pSrcFilter || !pVideoPin) {
912            if (!pVideoPin && m_pSrcFilter) {            if (!pVideoPin && m_pSrcFilter) {
# Line 902  Line 914 
914              m_pSrcFilter->Release();              m_pSrcFilter->Release();
915              m_pSrcFilter = 0;              m_pSrcFilter = 0;
916            }            }
917            if (!m_pSrcFilter) TrySourceFilter(pwName, (GUID *)&CLSID_HaaliMediaSplitter);            if (!m_pSrcFilter) hr = TrySourceFilter(pwName, (GUID *)(ExpectedType != 3 ? &CLSID_HaaliMediaSplitter : &CLSID_LAVSource));
918            if (hr == S_OK) hr = GetFilterPin(m_pSrcFilter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);            if (hr == S_OK) hr = GetFilterPin(m_pSrcFilter, PINDIR_OUTPUT, 0, &pVideoPin, MEDIATYPE_Video, GUID_NULL);
919            if (!pVideoPin && m_pSrcFilter) {            if (!pVideoPin && m_pSrcFilter) {
920              m_pGraph->RemoveFilter(m_pSrcFilter);              m_pGraph->RemoveFilter(m_pSrcFilter);
# Line 914  Line 926 
926            pVideoPin->Release();            pVideoPin->Release();
927            pVideoPin = 0;            pVideoPin = 0;
928          }          }
       //} else {  
       //  hr = TrySourceFilter(in_szFilePath, (GUID *)&CLSID_HaaliMediaSplitter);  
       //  if (!m_pSrcFilter) TrySourceFilter(in_szFilePath, (GUID *)&CLSID_LAVSource);  
       //}  
929      }      }
930      if (!m_pSrcFilter) hr = m_pGraph->AddSourceFilter(pwName, 0, &m_pSrcFilter);      if (!m_pSrcFilter) hr = m_pGraph->AddSourceFilter(pwName, 0, &m_pSrcFilter);
931    }    }
932    if (pOutSrcPin) pOutSrcPin->Release();    if (pOutSrcPin) pOutSrcPin->Release();
 #if 0  
   HRESULT hr = AddFilterByCLSID((GUID *)&CLSID_AsyncReader, &this->m_pSrcFilter);  
   IFileSourceFilter* pSrc =0 ;  
   if (hr == S_OK) hr = m_pSrcFilter->QueryInterface(IID_IFileSourceFilter, (void **)(&pSrc));  
   if (hr == S_OK) hr = pSrc->Load(pwName, &m_SrcFileMediaType);  
   if (pSrc) pSrc->Release();  
 #endif  
   
   delete [] pwName;  
933    
934    return hr;    return hr;
935  }  }
# Line 965  Line 964 
964  RecompressGraph::WaitForCompletion(long *out_Evt)  RecompressGraph::WaitForCompletion(long *out_Evt)
965  {  {
966    long Evt, P1, P2;    long Evt, P1, P2;
967    TCHAR szErrorStr[150];  //  TCHAR szErrorStr[150];
968    HRESULT hr = S_OK;    HRESULT hr = S_OK;
969    do {    do {
970      hr = m_pEvent->GetEvent(&Evt, &P1, &P2, INFINITE);      hr = m_pEvent->GetEvent(&Evt, &P1, &P2, INFINITE);
971      if (Evt == EC_ERRORABORT) {      if (Evt == EC_ERRORABORT) {
972        _stprintf(szErrorStr, _TEXT("Error ocurred\nCode=%08X, %08X\nContinue?"), P1, P2);  //      _stprintf(szErrorStr, _TEXT("Error ocurred\nCode=%08X, %08X\nContinue?"), P1, P2);
973        if (MessageBox(ghDlg, szErrorStr, 0, MB_YESNO) == IDYES) Evt = 0;  //      if (MessageBox(ghDlg, szErrorStr, 0, MB_YESNO) == IDYES) Evt = 0;
974          if (P1 == 0xC00D002F && m_bIsWMV)
975            Evt = 0;
976      }      }
977    } while (Evt != EC_COMPLETE && Evt != EC_STREAM_ERROR_STOPPED && Evt != EC_USERABORT && Evt != EC_ERRORABORT);    } while (Evt != EC_COMPLETE && Evt != EC_STREAM_ERROR_STOPPED && Evt != EC_USERABORT && Evt != EC_ERRORABORT);
978    *out_Evt = Evt;    *out_Evt = Evt;
# Line 1060  Line 1061 
1061      m_pEvent = 0;      m_pEvent = 0;
1062      int bBreakRequested = m_bBreakRequested;      int bBreakRequested = m_bBreakRequested;
1063      //if (hr == S_OK)      //if (hr == S_OK)
1064    
1065        m_pIChgTypeNorm->GetMeasuredTimes(m_MinETime, m_MaxETime, m_MinSTime, m_MaxSTime);
1066    
1067        CleanUp();        CleanUp();
1068      m_szSourceFilePath = pSrcStr;      m_szSourceFilePath = pSrcStr;
1069      m_szDstFilePath = pDstStr;      m_szDstFilePath = pDstStr;

Legend:
Removed from v.2044  
changed lines
  Added in v.2045

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4