Try to fix segfault (3306947).
[melted] / src / melted / melted_unit_commands.c
index ca94e78..b6d8f34 100644 (file)
@@ -285,7 +285,7 @@ int melted_receive( command_argument cmd_arg, char *doc )
                // Get the consumer's profile
                mlt_consumer consumer = mlt_properties_get_data( unit->properties, "consumer", NULL );
                mlt_profile profile = mlt_service_profile( MLT_CONSUMER_SERVICE( consumer ) );
-               mlt_producer producer = mlt_factory_producer( profile, "westley-xml", doc );
+               mlt_producer producer = mlt_factory_producer( profile, "xml-string", doc );
                if ( producer != NULL )
                {
                        if ( melted_unit_append_service( unit, MLT_PRODUCER_SERVICE( producer ) ) == mvcp_ok )
@@ -343,7 +343,9 @@ int melted_rewind( command_argument cmd_arg )
        melted_unit unit = melted_get_unit(cmd_arg->unit);
        if ( unit == NULL )
                return RESPONSE_INVALID_UNIT;
-       else 
+       else if ( melted_unit_has_terminated( unit ) )
+               melted_unit_change_position( unit, 0, 0 );
+       else
                melted_unit_play( unit, -2000 );
        return RESPONSE_SUCCESS;
 }
@@ -379,7 +381,9 @@ int melted_ff( command_argument cmd_arg )
        melted_unit unit = melted_get_unit(cmd_arg->unit);
        if ( unit == NULL )
                return RESPONSE_INVALID_UNIT;
-       else 
+       else if ( melted_unit_has_terminated( unit ) )
+               melted_unit_change_position( unit, 0, 0 );
+       else
                melted_unit_play( unit, 2000 );
        return RESPONSE_SUCCESS;
 }