Seems that the pattern
ecto_ros_subscriber<InputType, OutputType, ConverterType>
might be further generalizable... if I'm a JACK audio client then I also register a callback and spin. Maybe better,
AsyncInput<InputType, OutputType, ConverterType, SubscribeAndSpinType>
e.g. something like
AsyncInput<common_msgs::Image, cv::Mat, Img2MatConverter, ROSSubscriber>