static DecoderPlugin * GetDecoderPlugin(const media_format * format) { server_get_decoder_for_format_request request; server_get_decoder_for_format_reply reply; request.format = *format; status_t result = QueryServer(SERVER_GET_DECODER_FOR_FORMAT, &request, sizeof(request), &reply, sizeof(reply)); if (result != B_OK) { printf("BMediaDecoder::SetTo: can't get decoder for format\n"); return NULL; } MediaPlugin * media_plugin = _plugin_manager.GetPlugin(reply.ref); if (!media_plugin) { printf("BMediaDecoder::SetTo: GetPlugin failed\n"); return NULL; } DecoderPlugin * plugin = dynamic_cast<DecoderPlugin *>(media_plugin); if (!plugin) { printf("BMediaDecoder::SetTo: dynamic_cast failed\n"); return NULL; } return plugin; }