Re: [Mlt-devel] [PATCH] pass list of properties for encapsulated producer and consumer

2014-09-08 Thread Maksym Veremeyenko

05.09.14 19:28, Dan Dennedy написав(ла):

On Fri, Sep 5, 2014 at 3:51 AM, Maksym Veremeyenkove...@m1stereo.tv  wrote:

Hi,

this patch provides ability to pass properties to encapsulated producer and
consumer.


Thank you for the contribution, Maksym. We have a convention to use a
prefix on the property name to make it pass to encapsulated services.
See for example, watermark and affine filters. In this case, you would
use simply mlt_properties_pass() with prefix. or consumer.. How do
you feel to change your patch to work like that? Or, is there are
reason you prefer it as you have submitted?



i reworked a patch to use prefixes producer. and consumer..
please review


--

Maksym Veremeyenko

From 33cd2bbf7cb0ef5ecedca97e3619272b91575282 Mon Sep 17 00:00:00 2001
From: Maksym Veremeyenko ve...@m1.tv
Date: Mon, 8 Sep 2014 12:28:02 +0300
Subject: [PATCH] pass prefixed properties to encapsulated producer and
 consumer

---
 src/modules/core/producer_consumer.c |   26 +-
 1 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/src/modules/core/producer_consumer.c b/src/modules/core/producer_consumer.c
index dc436cc..e09865f 100644
--- a/src/modules/core/producer_consumer.c
+++ b/src/modules/core/producer_consumer.c
@@ -20,6 +20,9 @@
 
 #include framework/mlt.h
 
+#define CONSUMER_PROPERTIES_PREFIX consumer.
+#define PRODUCER_PROPERTIES_PREFIX producer.
+
 #include stdio.h
 #include stdlib.h
 #include math.h
@@ -101,6 +104,23 @@ static int get_audio( mlt_frame frame, void **buffer, mlt_audio_format *format,
 	return result;
 }
 
+static void property_changed( mlt_properties owner, mlt_consumer self, char *name )
+{
+	mlt_properties properties = MLT_PRODUCER_PROPERTIES(self);
+	context cx = mlt_properties_get_data( properties, context, NULL );
+
+	if ( !cx )
+		return;
+
+	if ( name == strstr( name, CONSUMER_PROPERTIES_PREFIX ) )
+		mlt_properties_set(MLT_CONSUMER_PROPERTIES( cx-consumer ), name + strlen( CONSUMER_PROPERTIES_PREFIX ),
+			mlt_properties_get( properties, name ));
+
+	if ( name == strstr( name, PRODUCER_PROPERTIES_PREFIX ) )
+		mlt_properties_set(MLT_PRODUCER_PROPERTIES( cx-producer ), name + strlen( PRODUCER_PROPERTIES_PREFIX ),
+			mlt_properties_get( properties, name ));
+}
+
 static int get_frame( mlt_producer self, mlt_frame_ptr frame, int index )
 {
 	mlt_properties properties = MLT_PRODUCER_PROPERTIES(self);
@@ -152,7 +172,11 @@ static int get_frame( mlt_producer self, mlt_frame_ptr frame, int index )
 			mlt_properties_get_int( properties, real_time ) );
 		mlt_properties_pass_list( MLT_CONSUMER_PROPERTIES( cx-consumer ), properties,
 			buffer, prefill, deinterlace_method, rescale );
-	
+
+		mlt_properties_pass( MLT_CONSUMER_PROPERTIES( cx-consumer ), properties, CONSUMER_PROPERTIES_PREFIX );
+		mlt_properties_pass( MLT_PRODUCER_PROPERTIES( cx-producer ), properties, PRODUCER_PROPERTIES_PREFIX );
+		mlt_events_listen( properties, self, property-changed, ( mlt_listener )property_changed );
+
 		// Connect it all together
 		mlt_consumer_connect( cx-consumer, MLT_PRODUCER_SERVICE( cx-producer ) );
 		mlt_consumer_start( cx-consumer );
-- 
1.7.7.6

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel


Re: [Mlt-devel] [PATCH] restart decklink if input signal changed mode

2014-09-08 Thread Maksym Veremeyenko
08.09.14 00:59, Dan Dennedy написав(ла):
 On Wed, Sep 3, 2014 at 7:27 AM, Maksym Veremeyenkove...@m1stereo.tv  wrote:
 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.


 I tested this patch today, and it causes a regression for me. I am
 using Desktop Video 9.8 on Ubuntu 12.04 64-bit. I am giving a DeckLink
 SDI card SD NTSC input, and running simply melt -verbose decklink:
 which starts with a dv_pal MLT profile, then performs auto-profile
 in which DeckLink input format detection occurs and changes the
 profile. The regression I experience is that there are very many
 dropped frames [consumer sdl] dropped video frame and playback is
 very choppy, of course. Adding -consumer sdl real_time=0 or -1 does
 make the problem go away, but I consider the out of the box
 experience of melt decklink: broken by it.

i think that is normal because of there is no framerate convertor in mlt 
and 29.97 incoming framerate cause a drop frame because consumer works 
with 25 fps

before startup decklink been configured to dv_pal, but after 
*VideoInputFormatChanged* notification call it is been restarted with 
detected profile, like dv_ntsc in you case.

in my case without patch i receive a white frame that generated by:

[...]
if ( !*frame )
*frame = mlt_frame_init( MLT_PRODUCER_SERVICE(producer) );
[...]

with a path i receive at least some frames.

my test case was sending 1080i50 into dv_pal configured input and visa-verse

 Does the problem you address occur with a different version of Desktop
 Video? Or, do I need a different test scenario to produce the problem
 you see?

i use the same diver version

-- 

Maksym Veremeyenko

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel


Re: [Mlt-devel] [PATCH] restart decklink if input signal changed mode

2014-09-08 Thread Dan Dennedy
On Mon, Sep 8, 2014 at 1:04 AM, Maksym Veremeyenko ve...@m1stereo.tv wrote:
 08.09.14 00:59, Dan Dennedy написав(ла):

 On Wed, Sep 3, 2014 at 7:27 AM, Maksym Veremeyenkove...@m1stereo.tv
 wrote:

 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.


 I tested this patch today, and it causes a regression for me. I am
 using Desktop Video 9.8 on Ubuntu 12.04 64-bit. I am giving a DeckLink
 SDI card SD NTSC input, and running simply melt -verbose decklink:
 which starts with a dv_pal MLT profile, then performs auto-profile
 in which DeckLink input format detection occurs and changes the
 profile. The regression I experience is that there are very many
 dropped frames [consumer sdl] dropped video frame and playback is
 very choppy, of course. Adding -consumer sdl real_time=0 or -1 does
 make the problem go away, but I consider the out of the box
 experience of melt decklink: broken by it.

 i think that is normal because of there is no framerate convertor in mlt and
 29.97 incoming framerate cause a drop frame because consumer works with 25
 fps

OK, based on the timing of events, that could be a logical
explanation. However, with melt auto-profile, and the correct sequence
of events, the consumer should have been reconfigured with the new
frame rate. Correct sequence means VideoInputFormatChanged was
received before the return of the first mlt_frame. Let me study this
patch and code more. Maybe I can determine a condition when a restart
is necessary and other times not.

 before startup decklink been configured to dv_pal, but after
 *VideoInputFormatChanged* notification call it is been restarted with
 detected profile, like dv_ntsc in you case.

 in my case without patch i receive a white frame that generated by:

 [...]
 if ( !*frame )
 *frame = mlt_frame_init( MLT_PRODUCER_SERVICE(producer) );
 [...]

 with a path i receive at least some frames.

 my test case was sending 1080i50 into dv_pal configured input and visa-verse

 Does the problem you address occur with a different version of Desktop
 Video? Or, do I need a different test scenario to produce the problem
 you see?

 i use the same diver version

-- 
+-DRD-+

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel


Re: [Mlt-devel] Bug#760773: Render error: Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated.

2014-09-08 Thread Patrick Matthäi
Hi Dan,

I think this is mlt related? :)

Am 07.09.2014 um 20:31 schrieb Bo Lan:
 Package: kdenlive
 Version: 0.9.8-1
 
 Dear maintainers,
 
 When I complete a video editing and render it, this error always
 happens:Using AVStream.codec.time_base as a timebase hint to the muxer
 is deprecated. Set AVStream.time_base instead.
 
 I use all the default rendering settings of ogg format with libtheora
 and libvorbis. I doesn't change any settings, and just click render
 and select Theora, and click Render to file
 
 I found a similar ticket on ffmpeg
 https://trac.ffmpeg.org/ticket/3741. Therefore, it may be a
 libav-tools bug. If yes, I am sorry about that, and please help to
 forward this bug report to libav-tools or its maintainer.
 
 Sincerely,
 Bo
 
 

-- 
/*
Mit freundlichem Gruß / With kind regards,
 Patrick Matthäi
 GNU/Linux Debian Developer

  Blog: http://www.linux-dev.org/
E-Mail: pmatth...@debian.org
patr...@linux-dev.org
*/



signature.asc
Description: OpenPGP digital signature
--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel


Re: [Mlt-devel] Bug#760773: Render error: Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated.

2014-09-08 Thread Dan Dennedy
I believe so. I will put on my short-term task list to make another
round of updating our avformat module to use new APIs.

On Mon, Sep 8, 2014 at 10:44 AM, Patrick Matthäi pmatth...@debian.org wrote:
 Hi Dan,

 I think this is mlt related? :)

 Am 07.09.2014 um 20:31 schrieb Bo Lan:
 Package: kdenlive
 Version: 0.9.8-1

 Dear maintainers,

 When I complete a video editing and render it, this error always
 happens:Using AVStream.codec.time_base as a timebase hint to the muxer
 is deprecated. Set AVStream.time_base instead.

 I use all the default rendering settings of ogg format with libtheora
 and libvorbis. I doesn't change any settings, and just click render
 and select Theora, and click Render to file

 I found a similar ticket on ffmpeg
 https://trac.ffmpeg.org/ticket/3741. Therefore, it may be a
 libav-tools bug. If yes, I am sorry about that, and please help to
 forward this bug report to libav-tools or its maintainer.

 Sincerely,
 Bo


--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel


[Mlt-devel] [mltframework/mlt] b928fa: Fix LC_NUMERIC for a couple of nested services (sh...

2014-09-08 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/mltframework/mlt
  Commit: b928fac725ae59cf05ff9f373d80d7cc6390df13
  
https://github.com/mltframework/mlt/commit/b928fac725ae59cf05ff9f373d80d7cc6390df13
  Author: Dan Dennedy d...@dennedy.org
  Date:   2014-09-08 (Mon, 08 Sep 2014)

  Changed paths:
M src/framework/mlt_playlist.c
M src/framework/mlt_producer.c

  Log Message:
  ---
  Fix LC_NUMERIC for a couple of nested services (shotcut-36)


--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce.
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel


[Mlt-devel] [mltframework/mlt] 7bf0bb: pass prefixed properties to encapsulated producer ...

2014-09-08 Thread GitHub
  Branch: refs/heads/master
  Home:   https://github.com/mltframework/mlt
  Commit: 7bf0bb555671329e2c81e132f3751a8721a51725
  
https://github.com/mltframework/mlt/commit/7bf0bb555671329e2c81e132f3751a8721a51725
  Author: Maksym Veremeyenko ve...@m1.tv
  Date:   2014-09-08 (Mon, 08 Sep 2014)

  Changed paths:
M src/modules/core/producer_consumer.c

  Log Message:
  ---
  pass prefixed properties to encapsulated producer and consumer


  Commit: 1096ce43aaba860b09a03d1173a35890c1c9ada0
  
https://github.com/mltframework/mlt/commit/1096ce43aaba860b09a03d1173a35890c1c9ada0
  Author: Dan Dennedy d...@dennedy.org
  Date:   2014-09-08 (Mon, 08 Sep 2014)

  Changed paths:
M src/modules/core/producer_consumer.yml

  Log Message:
  ---
  Document new producer.* and consumer.* properties.


Compare: https://github.com/mltframework/mlt/compare/b928fac725ae...1096ce43aaba--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce.
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel


Re: [Mlt-devel] [PATCH] pass list of properties for encapsulated producer and consumer

2014-09-08 Thread Dan Dennedy
On Mon, Sep 8, 2014 at 12:37 AM, Maksym Veremeyenko ve...@m1stereo.tv wrote:
 05.09.14 19:28, Dan Dennedy написав(ла):

 On Fri, Sep 5, 2014 at 3:51 AM, Maksym Veremeyenkove...@m1stereo.tv
 wrote:

 Hi,

 this patch provides ability to pass properties to encapsulated producer
 and
 consumer.


 Thank you for the contribution, Maksym. We have a convention to use a
 prefix on the property name to make it pass to encapsulated services.
 See for example, watermark and affine filters. In this case, you would
 use simply mlt_properties_pass() with prefix. or consumer.. How do
 you feel to change your patch to work like that? Or, is there are
 reason you prefer it as you have submitted?


 i reworked a patch to use prefixes producer. and consumer..
 please review

Very smart of you to add a property-changed listener. I applied this
and submitted my own yml update. Thanks

-- 
+-DRD-+

--
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce.
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk
___
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel