SMP/HT fixes
[melted] / src / framework / mlt_frame.c
index 660f3c1..53472db 100644 (file)
@@ -181,6 +181,22 @@ void *mlt_frame_pop_service( mlt_frame this )
        return mlt_deque_pop_back( this->stack_image );
 }
 
+/** Push a service.
+*/
+
+int mlt_frame_push_service_int( mlt_frame this, int that )
+{
+       return mlt_deque_push_back_int( this->stack_image, that );
+}
+
+/** Pop a service.
+*/
+
+int mlt_frame_pop_service_int( mlt_frame this )
+{
+       return mlt_deque_pop_back_int( this->stack_image );
+}
+
 /** Push an audio item on the stack.
 */
 
@@ -246,16 +262,15 @@ int mlt_frame_get_image( mlt_frame this, uint8_t **buffer, mlt_image_format *for
        mlt_properties properties = MLT_FRAME_PROPERTIES( this );
        mlt_get_image get_image = mlt_frame_pop_get_image( this );
        mlt_producer producer = mlt_properties_get_data( properties, "test_card_producer", NULL );
+       int error = 0;
 
        *width = *width >> 1 << 1;
        
        if ( get_image != NULL )
        {
-               int error = 0;
                mlt_position position = mlt_frame_get_position( this );
                error = get_image( this, buffer, format, width, height, writable );
                mlt_frame_set_position( this, position );
-               return error;
        }
        else if ( mlt_properties_get_data( properties, "image", NULL ) != NULL )
        {
@@ -344,7 +359,7 @@ int mlt_frame_get_image( mlt_frame this, uint8_t **buffer, mlt_image_format *for
                mlt_properties_set_int( properties, "test_image", 1 );
        }
 
-       return 0;
+       return error;
 }
 
 uint8_t *mlt_frame_get_alpha_mask( mlt_frame this )