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