[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 2048, Fri Oct 7 18:03:59 2011 UTC revision 2049, Thu Oct 13 14:36:24 2011 UTC
# Line 287  Line 287 
287  HRESULT  HRESULT
288  RecompressGraph::CreateGraph(HWND in_ProgressWnd, int in_Pass)  RecompressGraph::CreateGraph(HWND in_ProgressWnd, int in_Pass)
289  {  {
290      int remux_only = 0;
291    
292    m_FpsNom = m_FpsDen = 0;    m_FpsNom = m_FpsDen = 0;
293    m_ProgressWnd = in_ProgressWnd;    m_ProgressWnd = in_ProgressWnd;
294    
# Line 371  Line 373 
373    IBaseFilter *pCompressedVideoFilter = 0;    IBaseFilter *pCompressedVideoFilter = 0;
374    int m_bRecompress = 1;    int m_bRecompress = 1;
375    GUID gSubtype;    GUID gSubtype;
376      CUnknown *pChgUnk = NULL;
377    
378    if (hr == S_OK) {    if (hr == S_OK) {
379      m_TotalFrames = 0;      m_TotalFrames = 0;
# Line 408  Line 411 
411            || gSubtype == FOURCCMap('4PMS') || gSubtype == FOURCCMap('4pms'))            || gSubtype == FOURCCMap('4PMS') || gSubtype == FOURCCMap('4pms'))
412            {            {
413          pCompressedVideoFilter = m_pVideoMeter ? m_pVideoMeter : (m_pSplitter ? m_pSplitter : m_pSrcFilter);          pCompressedVideoFilter = m_pVideoMeter ? m_pVideoMeter : (m_pSplitter ? m_pSplitter : m_pSrcFilter);
414                    remux_only = 1;
415        }        }
416            else {            else
417    full_recompress:
418              {
419          m_bFileCopy = 0;          m_bFileCopy = 0;
420            if (remux_only==1) remux_only = 2;
421    
422          if (hr == S_OK) hr = AddDirectXFilterByMoniker(CLSID_VideoCompressorCategory, "xvid", &m_pXvidEncoder, 1);          if (hr == S_OK) hr = AddDirectXFilterByMoniker(CLSID_VideoCompressorCategory, "xvid", &m_pXvidEncoder, 1);
423          if (hr == S_OK) hr = m_pGraph->AddFilter(m_pXvidEncoder, L"Encoder");          if (hr == S_OK) hr = m_pGraph->AddFilter(m_pXvidEncoder, L"Encoder");
# Line 486  Line 493 
493      }      }
494    }    }
495    
496    CUnknown *pChgUnk = ChangeSubtypeT::CreateInstance(0, &hr);    if (remux_only != 2) {
497        pChgUnk = ChangeSubtypeT::CreateInstance(0, &hr);
498    if (hr == S_OK) hr = pChgUnk->NonDelegatingQueryInterface(IID_IBaseFilter, (void **)&m_pChgType);    if (hr == S_OK) hr = pChgUnk->NonDelegatingQueryInterface(IID_IBaseFilter, (void **)&m_pChgType);
499    if (hr == S_OK) hr = m_pGraph->AddFilter(m_pChgType, L"ChgToxvid");    if (hr == S_OK) hr = m_pGraph->AddFilter(m_pChgType, L"ChgToxvid");
500      }
501    if (hr == S_OK) hr = ConnectFilters(m_pGraph, pCompressedVideoFilter, m_pChgType, GUID_NULL, GUID_NULL, 1);    if (hr == S_OK) hr = ConnectFilters(m_pGraph, pCompressedVideoFilter, m_pChgType, GUID_NULL, GUID_NULL, 1);
502      if (hr != S_OK && remux_only==1) { hr = S_OK; goto full_recompress; } // retry with full recompress
503    if (hr == S_OK) hr = AddFilterByCLSID((GUID *)&CLSID_AviDest, &m_pMuxer);    if (hr == S_OK) hr = AddFilterByCLSID((GUID *)&CLSID_AviDest, &m_pMuxer);
504    
505  #if 0  #if 0

Legend:
Removed from v.2048  
changed lines
  Added in v.2049

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