Hi,

attached patch reorder mlt frame initialization to avoid additional mlt_frame_close for some cases.

--
________________________________________
Maksym Veremeyenko

>From 85c892311c19099189147b616ff50177988a0c97 Mon Sep 17 00:00:00 2001
From: Maksym Veremeyenko <ve...@m1.tv>
Date: Sun, 22 Jun 2014 17:29:32 +0300
Subject: [PATCH 2/6] reorder frame initialization call, cleanup useless parts

---
 src/modules/decklink/producer_decklink.cpp |   17 ++++-------------
 1 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/src/modules/decklink/producer_decklink.cpp b/src/modules/decklink/producer_decklink.cpp
index 877c0ea..c580080 100644
--- a/src/modules/decklink/producer_decklink.cpp
+++ b/src/modules/decklink/producer_decklink.cpp
@@ -358,6 +358,7 @@ public:
 			IDeckLinkVideoInputFrame* video,
 			IDeckLinkAudioInputPacket* audio )
 	{
+		mlt_frame frame = NULL;
 		if( !m_reprio )
 		{
 			mlt_properties properties = MLT_PRODUCER_PROPERTIES( getProducer() );
@@ -402,9 +403,6 @@ public:
 			return S_OK;
 		}
 
-		// Create mlt_frame
-		mlt_frame frame = mlt_frame_init( MLT_PRODUCER_SERVICE( getProducer() ) );
-
 		// Copy video
 		if ( video )
 		{
@@ -446,20 +444,17 @@ public:
 				{
 					size =  video->GetRowBytes() * video->GetHeight();
 					swab2( (char*) buffer, (char*) image + m_vancLines * video->GetRowBytes(), size );
+					frame = mlt_frame_init( MLT_PRODUCER_SERVICE( getProducer() ) );
 					mlt_frame_set_image( frame, (uint8_t*) image, size, mlt_pool_release );
 				}
 				else if ( image )
 				{
-					mlt_log_verbose( getProducer(), "no video\n" );
+					mlt_log_verbose( getProducer(), "no video image\n" );
 					mlt_pool_release( image );
 				}
 			}
 			else
-			{
-				mlt_log_verbose( getProducer(), "no signal\n" );
-				mlt_frame_close( frame );
-				frame = 0;
-			}
+				mlt_log_verbose( getProducer(), "frame is invalid\n" );
 
 			// Get timecode
 			IDeckLinkTimecode* timecode = 0;
@@ -479,11 +474,7 @@ public:
 			}
 		}
 		else
-		{
 			mlt_log_verbose( getProducer(), "no video\n" );
-			mlt_frame_close( frame );
-			frame = 0;
-		}
 
 		// Copy audio
 		if ( frame && audio )
-- 
1.7.7.6

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to