Re: [Mlt-devel] [PATCH] pass list of properties for encapsulated producer and consumer
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
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
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.
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.
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...
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 ...
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
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