RE: Bug 244016: Clicking "..." on a device control after encoding can cause a
"Eric Hyche" <[email protected]>
| Newsgroups | gmane.comp.multimedia.helix.devel |
|---|---|
| Organization | RealNetworks, Inc. |
| Message-ID | <006401c9f591$f185a360$d490ea20$@com> |
Looks good. ======================================= Eric Hyche ([email protected]) Principal Engineer RealNetworks, Inc. >-----Original Message----- >From: [email protected] [mailto:[email protected]] >Sent: Thursday, June 25, 2009 1:08 AM >To: [email protected]; [email protected] >Subject: CR: Bug 244016: Clicking "..." on a device control after encoding can cause a > >Synopsis >======== >Bug 244016: Clicking "..." on a device control after encoding can cause a >SDK error or unhandled exception. > >Branches: PRODUCER_13_0_RN and HEAD. >Suggested Reviewer: Anyone. > > >Description >=========== >Noticed additional issue after previous fix. > >1. Certain capture dialogs cannot be displayed when preview is running. >Fix was to attemp to Launch Capture dialog, if that failed then stop input >and Launch Capture Dialog and start input. > >2. After Launching dialogs there was check for checking if job is ready to >run. >This is done by serializing job to buffer and recreating it from buffer, >this results in video graph in capture filter failing to start. >I am unable to determine reason for failure. Same call is not causing any >issues when a new job is loaded. I am logging a new bug for this. >Down side is if user set invalid argument through capture dialog job will >still indicate it is ready to run though could fail when start encoding is >called. > >3. Noticed additional issue that GUI is not re-reading the job after >Launch Dialog call. >Capture size is modified by dialog and is applied to job, but when start >encoding is called GUI passes initial job which does not have capture >size. > > >Files Affected >============== >client/encodesvc/activex/ctrl/ProducerCtrl.cpp > >Testing Performed >================= >Tested capture dialogs. > >Performance Tests: >- None > >Platforms Tested: win32-i386-vc7 >Build verified: win32-i386-vc7 > >QA Hints >======== >Please also test on machine with multiple capture cards. > >Index: ProducerCtrl.cpp >=================================================================== >RCS file: /cvsroot/client/encodesvc/activex/ctrl/ProducerCtrl.cpp,v >retrieving revision 1.3.2.2 >diff -u -r1.3.2.2 ProducerCtrl.cpp >--- ProducerCtrl.cpp 23 Jun 2009 06:20:41 -0000 1.3.2.2 >+++ ProducerCtrl.cpp 25 Jun 2009 03:02:03 -0000 >@@ -1828,9 +1828,6 @@ > > res = LoadDeviceDialog( AUDIO_DEVICES, ulDeviceID, bstrDialogName ); > >- //Job could have changed by the device dialog, hence reset the >IsReady flag. >- SetJobIsReadyFlag(); >- > return res; > } > >@@ -1858,9 +1855,6 @@ > > res = LoadDeviceDialog( VIDEO_DEVICES, ulDeviceID, bstrDialogName ); > >- //Job could have changed by the device dialog, hence reset the >IsReady flag. >- SetJobIsReadyFlag(); >- > return res; > } > >@@ -1949,12 +1943,19 @@ > > if (SUCCEEDED(res)) > { >- pDialogCtrl->LaunchDialog( iDialogID, m_hWnd); >+ res = pDialogCtrl->LaunchDialog( iDialogID, m_hWnd); >+ if (FAILED(res)) >+ { >+ stopInput(); >+ res = pDialogCtrl->LaunchDialog( iDialogID, m_hWnd); >+ startInput(); >+ >+ } > } >+ > > HX_RELEASE(pDialogCtrl); > >- > return res; > } > >@@ -2573,9 +2574,6 @@ > m_PreviewViewer.StopPreview(); > m_PreviewViewer.SetJob(NULL); > >- //UpdateCodecsInJob() might have modified job IsReady status. >- res = SetJobIsReadyFlag(); >- > // Set the new job, and setup the new previews > if (SUCCEEDED(res)) > {