[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-client-cvs
Subject:    [Client-cvs] encodesvc/activex/ctrl sdkcallback.cpp, 1.4,
From:       skharkar () helixcommunity ! org
Date:       2010-08-30 21:28:45
Message-ID: 201008302128.o7ULSfUL003077 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/client/encodesvc/activex/ctrl
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv490

Modified Files:
      Tag: PRODUCER_14_0_RN
	sdkcallback.cpp sdkcallback.h 
Log Message:
Synopsis
========
Bug 263322:PreviewWish: Video preview not shown/initialized until audio device \
selection is done.

Suggested Reviewer: Anyone
 
Branches: HEAD & PRODUCER_14_0_RN
 
Description
===========
In Producer JobFileInput.cs modified public bool ReadyToEncode() to return true even \
when one of audio or video device is set.

Notices a dead lock.
In SDK thread which gives samples to GUI. (calls  CPreviewSubscriber::OnSample(THIS_ \
IHXTMediaSample* pSample)) was waiting on a lock. GUI thread had locked mutex in \
CPreviewSubscriber::Cleanup and was waiting on lock in SDK which SDK thread had.

Lock in CPreviewSubscriber was for case that Cleanup is called during OnSample call. \
Since there is already lock in SDK there is no need for additional lock in \
CPreviewSubscriber.

Files affected
==============
client/encodesvc/activex/ctrl/sdkcallback.cpp
client/encodesvc/activex/ctrl/sdkcallback.h
producerapps_rn/rmgui/nghmp/JobFileInput.cs
 
Tested
======
Tested with producer GUI, tested preview and encode.
 
QA hints
=========
None.


Index: sdkcallback.h
===================================================================
RCS file: /cvsroot/client/encodesvc/activex/ctrl/sdkcallback.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -d -r1.4 -r1.4.2.1
--- sdkcallback.h	25 Jun 2010 23:22:54 -0000	1.4
+++ sdkcallback.h	30 Aug 2010 21:28:42 -0000	1.4.2.1
@@ -102,7 +102,6 @@
 	   m_pCallback(NULL),
 	   m_bFirstSampleReceived(FALSE)
     {
-	InitializeCriticalSection( &m_Lock );
     }
 
     ~CPreviewSubscriber()
@@ -111,8 +110,6 @@
 	{
 	    Cleanup();
 	}
-
-	DeleteCriticalSection ( &m_Lock );
     }
 
     DECLARE_UNKNOWN( CPreviewSubscriber )
@@ -128,7 +125,6 @@
 private:
     CProducerSDKCallBack *m_pCallback;
     IHXTPreviewSinkControl3 *m_pSinkControl;
-    CRITICAL_SECTION m_Lock;
     BOOL m_bFirstSampleReceived;
 
 };

Index: sdkcallback.cpp
===================================================================
RCS file: /cvsroot/client/encodesvc/activex/ctrl/sdkcallback.cpp,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -d -r1.4 -r1.4.2.1
--- sdkcallback.cpp	3 Mar 2010 18:51:22 -0000	1.4
+++ sdkcallback.cpp	30 Aug 2010 21:28:42 -0000	1.4.2.1
@@ -158,7 +158,6 @@
 STDMETHODIMP 
 CPreviewSubscriber::Cleanup()
 {
-    EnterCriticalSection( &m_Lock );
     HX_RELEASE(m_pCallback);
 
     if ( m_pSinkControl )
@@ -171,7 +170,6 @@
 	HX_RELEASE(m_pSinkControl);
     }
 
-    LeaveCriticalSection( &m_Lock );
     return HXR_OK;
 }
 
@@ -189,7 +187,6 @@
 CPreviewSubscriber::OnSample(THIS_ IHXTMediaSample* pSample)
 {
     HXT_TIME tmStart = 0,tmEnd = 0;
-    EnterCriticalSection( &m_Lock );
 
     if ( ( pSample != NULL ) && ( m_pCallback != NULL ) )
     {
@@ -214,8 +211,6 @@
 	}
     }
 
-    LeaveCriticalSection( &m_Lock );
-
     return HXR_OK;
 }
 


_______________________________________________
Client-cvs mailing list
Client-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/client-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic