]> git.sesse.net Git - mlt/commitdiff
Add mlt_service_filter_count and Mlt::Service::filter_count.
authorDan Dennedy <dan@dennedy.org>
Mon, 4 Mar 2013 02:23:21 +0000 (18:23 -0800)
committerDan Dennedy <dan@dennedy.org>
Mon, 4 Mar 2013 02:23:21 +0000 (18:23 -0800)
src/framework/mlt.vers
src/framework/mlt_service.c
src/framework/mlt_service.h
src/mlt++/MltService.cpp
src/mlt++/MltService.h
src/mlt++/mlt++.vers

index 167ed4855b6d6253254736e640b2148abae9a9cd..7b80f40afda97f0926c0b3a2c103a65bb069f3f9 100644 (file)
@@ -401,3 +401,8 @@ MLT_0.8.8 {
 
   local: *;
 };
+
+MLT_0.9.0 {
+  global:
+    "mlt_service_filter_count";
+} MLT_0.8.8;
index d40a8f3378aa90e979d7099a9441b4b2c8f2bd68..8a02da3af2cc0bafc607fcc294b6227d8bc36710 100644 (file)
@@ -618,7 +618,25 @@ int mlt_service_detach( mlt_service self, mlt_filter filter )
        return error;
 }
 
-/** Retrieve a filter.
+/** Get the number of filters attached.
+ *
+ * \public \memberof mlt_service_s
+ * \param self a service
+ * \return the number of attached filters or -1 if there was an error
+ */
+
+int mlt_service_filter_count( mlt_service self )
+{
+       int result = -1;
+       if ( self )
+       {
+               mlt_service_base *base = self->local;
+               result = base->filter_count;
+       }
+       return result;
+}
+
+/** Retrieve an attached filter.
  *
  * \public \memberof mlt_service_s
  * \param self a service
index 4a799770d7e0f7a877c9d34ff71173a2e0f627a4..1d28ac99ae8cee27f2ba0ed9ecd4c6fd53202e07 100644 (file)
@@ -92,6 +92,7 @@ extern mlt_service mlt_service_producer( mlt_service self );
 extern int mlt_service_attach( mlt_service self, mlt_filter filter );
 extern int mlt_service_detach( mlt_service self, mlt_filter filter );
 extern void mlt_service_apply_filters( mlt_service self, mlt_frame frame, int index );
+extern int mlt_service_filter_count( mlt_service self );
 extern mlt_filter mlt_service_filter( mlt_service self, int index );
 extern mlt_profile mlt_service_profile( mlt_service self );
 extern void mlt_service_set_profile( mlt_service self, mlt_profile profile );
index 7e561664fbc971751ea6e8fde90548aca5adba49..a320f29983a40e0b32914883340d6a01d9ed273f 100644 (file)
@@ -118,6 +118,11 @@ int Service::detach( Filter &filter )
        return mlt_service_detach( get_service( ), filter.get_filter( ) );
 }
 
+int Service::filter_count()
+{
+       return mlt_service_filter_count( get_service() );
+}
+
 Filter *Service::filter( int index )
 {
        mlt_filter result = mlt_service_filter( get_service( ), index );
index 7f79f0406f26d0dfe3370c65f24e2ad9f857dbe9..b755970f3df11048edd1d87267a2bd84ad45b208 100644 (file)
@@ -57,6 +57,7 @@ namespace Mlt
                        mlt_service_type type( );
                        int attach( Filter &filter );
                        int detach( Filter &filter );
+                       int filter_count( );
                        Filter *filter( int index );
                        void set_profile( Profile &profile );
        };
index b9735e4e83febc275f67ca41c9e97a03c4a452ec..c1f11a0e5949c2be8e058461a31f50b61497fc93 100644 (file)
@@ -439,5 +439,6 @@ MLTPP_0.9.0 {
   global:
     extern "C++" {
       "Mlt::Deque::peek(int)";
+      "Mlt::Service::filter_count()";
     };
 } MLTPP_0.8.8;