Hi,if input signal to decklink board is differ from specified at board initialization or changed later, decklink could inform it by VideoInputFormatChanged callback. but it still does not give a proper frame at VideoInputFrameArrived
provided patch stop/start decklink board with updated profile. -- ________________________________________ Maksym Veremeyenko
>From a2a7c254df003a7082d395626dac904a647cd326 Mon Sep 17 00:00:00 2001 From: Maksym Veremeyenko <ve...@m1.tv> Date: Wed, 3 Sep 2014 19:11:50 +0300 Subject: [PATCH] restart decklink if input signal changed mode --- src/modules/decklink/producer_decklink.cpp | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/src/modules/decklink/producer_decklink.cpp b/src/modules/decklink/producer_decklink.cpp index 04510f4..e194b38 100644 --- a/src/modules/decklink/producer_decklink.cpp +++ b/src/modules/decklink/producer_decklink.cpp @@ -79,6 +79,7 @@ private: } public: + mlt_profile m_new_input; void setProducer( mlt_producer producer ) { m_producer = producer; } @@ -91,6 +92,7 @@ public: m_producer = NULL; m_decklink = NULL; m_decklinkInput = NULL; + m_new_input = NULL; } virtual ~DeckLinkProducer() @@ -606,6 +608,7 @@ public: ( mode->GetFlags() & bmdDisplayModeColorspaceRec709 ) ? 709 : 601; mlt_log_verbose( getProducer(), "colorspace changed %d\n", profile->colorspace ); } + m_new_input = profile; return S_OK; } }; @@ -627,6 +630,13 @@ static int get_frame( mlt_producer producer, mlt_frame_ptr frame, int index ) mlt_position end = mlt_producer_get_playtime( producer ); end = ( mlt_producer_get_length( producer ) < end ? mlt_producer_get_length( producer ) : end ) - 1; + if ( decklink && decklink->m_new_input ) + { + decklink->m_new_input = NULL; + decklink->stop(); + decklink->start( decklink->m_new_input ); + } + // Re-open if needed if ( !decklink && pos < end ) { -- 1.7.7.6
------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/
_______________________________________________ Mlt-devel mailing list Mlt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mlt-devel